public
Description: A bleeding-edge package manager.
Homepage: http://roastbeef.rubyforge.org
Clone URL: git://github.com/technomancy/roast-beef.git
Search Repo:
name age message
folder .gitignore Fri Mar 14 20:15:17 -0700 2008 rearranged lib and updated doco [technomancy]
folder COPYING Wed Mar 12 12:44:06 -0700 2008 first semi-working version [technomancy]
folder History.txt Wed Mar 12 12:44:06 -0700 2008 first semi-working version [technomancy]
folder Manifest.txt Fri Mar 14 23:05:00 -0700 2008 mostly just better comments [technomancy]
folder README.rdoc Thu Jun 05 16:52:16 -0700 2008 move readme so github renders it to HTML [technomancy]
folder Rakefile Thu Jun 05 16:52:16 -0700 2008 move readme so github renders it to HTML [technomancy]
folder bin/ Mon Apr 07 10:58:17 -0700 2008 o hai abort [technomancy]
folder lib/ Thu Apr 10 11:05:49 -0700 2008 added couchdb to the sources [technomancy]
folder sources.yml Thu Jun 05 11:14:26 -0700 2008 conkeror should use xulrunner 1.9 [technomancy]
README.rdoc

Roast Beef

    by Phil Hagelberg (c) 2008
    http://roastbeef.rubyforge.org

so what exactly is the deal here

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 saves you from having to look up the repository locations for all the stuff you want to build from source. it also abstracts away the differences in build processes. say you want the latest version of such a package as gnu emacs. so you grab the source but you know emacs is a little different from other packages and requires "make bootstrap" in between the configure and make step. with roastbeef all the complexity of such things is hidden from you. and if you have a lot of stuff built from source you can keep them all up to date with a single command.

the motivations behind this are made more clear in a blog post: http://technomancy.us/106

man why you even got to do a thing

usage:

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

but say you wanted to install it

  • sudo gem install roastbeef

you can get the source like this

  • git clone git://github.com/technomancy/roastbeef.git
  • cd roastbeef && sudo rake install_gem

or once you have it installed do this

  • roastbeef install roastbeef

ok i admit there is still work to do

  • accept optional configure arguments
  • dont install SCMs until needed
  • allow for rebuilds to be simpler commands than initial builds
  • user-defined source listings
  • support firefox extensions?

these things i am not going to work on but will accept patches for

  • mac os x, gentoo, bsd, fedora support
  • support for hg, darcs, tarballs?
  • add more packages

watch out fellows

the version of rubygems that you get when you run "sudo apt-get install rubygems" on an ubuntu or debian box puts things in inconvenient places. your life will be easier if you do not use it. grab the official build instead and you will save yourself pain: http://rubyforge.org/frs/download.php/29548/rubygems-1.0.1.tgz

according to the debian packagers this brokenness is a feature not a bug (something about LFS compliance) but it means that many many rubygems will just not work without manually modifying your $PATH for every user that wants to take advantage of them. see below:

http://pkg-ruby-extras.alioth.debian.org/rubygems.html http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=448639

why did you pick a name such as roast beef

roast beef is a character in the comic strip known as achewood by chris onstad. it is actually pretty humorous once you get to know it.

http://achewood.com