Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I am researching how to install Ruby 1.9.1 in Xubuntu 10.04 and I came across the command build-essential and build-dep multiple times. Sometimes it is followed by packages and sometimes it is both preceded and post-ceded by packages.

The 2 examples I am looking at are:

sudo apt-get install build-essential zlib1g zlib1g-dev zlibc libruby1.9 libxml2 libxml2-dev libxslt-dev

sudo apt-get build-dep ruby1.9

and

sudo apt-get install ruby irb ri rdoc ruby1.8-dev libzlib-ruby libyaml-ruby libreadline-ruby libncurses-ruby libcurses-ruby libruby libruby-extras libfcgi-ruby1.8 build-essential libopenssl-ruby libdbm-ruby libdbi-ruby libdbd-sqlite3-ruby sqlite3 libsqlite3-dev libsqlite3-ruby libxml-ruby libxml2-dev

share|improve this question

migrated from stackoverflow.com Jun 11 '10 at 19:20

This question came from our site for professional and enthusiast programmers.

2  
Note that it's not a command, but a package in the Debian package system (APT). You could also acquire the package using GUI tools. –  harms Jun 10 '10 at 21:14
    
Thanks. How does it relate to Ruby though? I assume Ruby needs it to run but maybe I am wrong. –  classer Jun 10 '10 at 22:01
add comment

3 Answers 3

up vote 11 down vote accepted

The build-essentials is a reference for all the packages needed to compile a debian package. It generally includes the gcc/g++ compilers an libraries and some other utils. Check the documentation: Here!

share|improve this answer
    
Ok but that still does not answer my question fully. I understand that 'build-essential' contains an informational list of packages which are essential for creating Debian packages. But what is considered a Debian package? Ruby? gcc/g++ compilers? And how does Debian packages and 'build-essential" relate to Ruby? Is Ruby built on top of the Debian package? Put another way, does Ruby need the build-essential package to run? I really wish to see a visual representation of the relationships between all these parts. –  classer Jun 10 '10 at 22:00
1  
To put it simply, if you ( or some other package you want to install ) need a C/C++ compiler, you need to install build-essential. Usually it's the first thing I install in a new Ubuntu installation :-) –  Ismael Jun 10 '10 at 23:13
    
@Adam Since Ruby is an interpreted language, the interpreter needs the C or C++ compiler to build itself to run on your machine. build-essential is a metapackage (a package that installs many other packages, like g++ and gcc: the GNU C & C++ compilers). It's required if you want to compile anything from source, and if you want to work with almost any programming language. HTH! –  squircle Jun 11 '10 at 20:03
    
@Ismael @thepurplepixel great information, thanks –  classer Jun 11 '10 at 23:44
add comment

The command sudo apt-get build-dep packagename means "As root, install all dependencies for 'packagename' so that I can build it". So build-dep is an apt-get command just like install, remove, update, etc.

build-essential is a package which contains references to numerous packages needed for building software in general.

share|improve this answer
    
Thanks for explaining the 'build-dep' command. So as I understand it, in this case Ruby1.9 has a dependency list attached to it that Linux looks to as a 'To Do/Build List' and one by one builds each of those items. The final infrastructure that gets built allows Ruby1.9 to function properly. What I do not understand is why 'build-essential' ,or all of the other packages in the top line( zlib1g zlib1g-dev zlibc libruby1.9 etc. etc.), would not be included in the 'To Do/Build List' attached to Ruby1.9. Wouldn't it be simpler if there was just one command? –  classer Jun 10 '10 at 22:11
add comment

"build-essential" contains tools (like the gcc compiler, make tool, etc) for compiling/building software from source. So you start with (usually C) source files and create executables from them.

If you are just trying to get Ruby installed, I would highly recommend just using RVM (Ruby Version Manager):

Follow the instructions under "Github Repository (recommended)"

Note that you will need the Git version control software installed first. Use apt-get install git-core if you don't have that yet.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.