Off topic but still helpful…
Like many devs I make use of a variety of open source software, package management tools, etc – all of which need to be updated on a regular basis to stay up-to-date with the most recent releases.
Rather than manage each one individually, a simple alias in your ~/.profile comes in very handy:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
alias getuptodate='sudo port selfupdate; sudo port upgrade outdated; sudo port uninstall inactive; sudo gem update –system; sudo gem update; sudo npm update uglify-js -g; sudo pip freeze –local | grep -v '^\-e' | cut -d = -f 1 | xargs sudo pip install -U;' |
Notes:
- I haven’t been able to find a command to update all installed Node packages at once so I’m listing them individually for now.
- This assumes that npm is installed via MacPorts.
- Unfortunately this fails when pip freeze lists a package that can’t be installed from PyPI anymore.
Then you can simply invoke it like so…
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ getuptodate | |
Password: | |
—> Updating MacPorts base sources using rsync | |
MacPorts base version 2.1.2 installed, | |
MacPorts base version 2.1.2 downloaded. | |
—> Updating the ports tree |
Of course if you need to handle specific versions of a port or gem individually, this won’t work for you. But if you just want to be current on everything, this will do the trick.