7

in which a newly shaven yak is presented

 3 years ago
source link: https://technomancy.us/106
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Update: Not really sure what I was thinking here. Sorry.

So it turns out I find myself installing on fresh systems an awful lot. I'm tempted by Alpha Ubuntu releases even when I know I should probably just wait an extra month for the final release. With these releases happening every six months, I've got the reinstall process down to an exact science. Some of it is pretty obvious—I've been keeping my dotfiles in version control since 2005, which mitigates a lot of pain. Then there's the init scripts I've written for getting my regular set of apt-get and gem packages installed.

This was pretty handy for as much as it did. I could get a decent system up and running with about seven commands from a fresh install. But it left a bit to be desired for a few programs. For instance, I've basically got to have the latest version of GNU Emacs. Call it an addiction, but packaged versions get old quickly. The version of git that comes with Ubuntu 7.10 is a bit old and doesn't have the stash command, which is six kinds of useful. The latest GNU Screen from CVS has an excellent vertical-split feature that Emacs has gotten me so accustomed to. And what setup is complete without Rubinius, which hasn't even made it into any package management system? The list goes on...

roast beef

So here we have a bit of a situation. I could add lines to my init script that check out each individual source tree. But each one has a slightly different installation process. GNU Emacs has you run make bootstrap in between the configure and make commands. Screen makes you cd into a src directory before you can configure. Who has time to remember all this? And then the biggest problem with installing stuff from source is that there's no automated way to get the latest version of the programs you have installed.

So I know it wasn't really a burning need, but I put together a tool to help the situation.

uh ok so roast beef is some kind of package manager that is for bleeding-edge programs. so basically it does not have its own repositories. instead it just will download source from the upstream repository and will do all the necessary steps to install. you get things that are as fresh as possible. i am talking about really fresh like your eggs and milk.

Roast Beef is named after a character in the splendid Achewood comic strip. All documentation, comments, and output text is written in his voice. He also has a blog.

To get started: sudo gem install roastbeef.

Usage:

  • roastbeef install package
  • roastbeef update
  • roastbeef upgrade
  • roastbeef remove package
  • roastbeef show package
  • roastbeef search term

Caveats:

  • We're talking about code that installs bleeding-edge software, so expect breakage. I haven't figured out a good way to run automated tests for it, so I'm not as confident about the reliability of the code, even though it is fairly few lines of code. (currently around 170 with a flog score of 245.)
  • Some packages have a hefty amount of prerequisites. Right now these get installed via apt-get if the sources list gives enough details about them. I would like to have it use macports, portage, yum, and other dependency tracking systems on other OSes, but I don't have the resources or inclination to do this. Patches welcome.
  • There aren't many packages in the source listing yet. Feel free to contribute metadata about your favourite programs that you like to install from source.
  • A lot of packages don't have any automatic removal process when they get installed from source. Right now roastbeef will warn you about such packages, but it's no fun to have to have to remove a program by hand.
  • It's entirely possible this kind of tool is useful only to me; not everyone installs as much crazy crap as I do. If that's the case please ignore this; I'm really OK with that.

If it sounds interesting to you, fork it on github. I've still got some invites if anyone wants to contribute.

« older | 2008-03-14T22:04:56Z | newer »

All posts | Résumé | Projects | Talks | Colophon | Technomancy is © 2004 – 2020 Phil Hagelberg


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK