Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Building Shoes on Linux

FarmerMark edited this page Oct 15, 2013 · 41 revisions

Building Shoes on Linux

Note on Ruby versions

You should build Shoes with 1.9.3.

Some other details

One should note that in the following, ${SHOES_DIR} is just wherever you want to install your shoes installation to. If you are unsure what to use, just use ~/shoes here. You can make this file hidden (to keep your filesystem navigator from getting cluttered) by using "~/.shoes" instead.

Another option for $SHOES_DIR} is to not clutter ~/.shoes with additional cruft and create a directory in your user account for the shoes source code and building.

Linux users should install dependencies through the distro’s package manager (these are the yum, apt-get and so on commands you will see below).

Building on Fedora

The following has been tested on Fedora 7, but should work on Fedora 6, CentOS v5 and RHEL5 as well:

git clone git://github.com/shoes/shoes.git ${SHOES_DIR}
cd ${SHOES_DIR} 
gem install bundler
sudo yum install -y giflib-devel cairo-devel libpixman-devel pango-devel libjpeg-devel gtk2-devel libcurl-devel ruby-devel portaudio-devel gcc libxml2 libxml2-devel libxslt libxslt-devel sqlite-devel sqlite
bundle install
rake

Building on Debian

git clone git://github.com/shoes/shoes.git ${SHOES_DIR} 
cd ${SHOES_DIR} 
gem install bundler
sudo apt-get install libcairo2-dev libpixman-1-dev libpango1.0-dev libungif4-dev libjpeg62-dev libgtk2.0-dev libsqlite3-dev libcurl4-openssl-dev portaudio19-dev ruby1.9.1-full rake 
bundle install
rake

Building on OpenSUSE

git clone git://github.com/shoes/shoes.git ${SHOES_DIR} 
cd ${SHOES_DIR} 
gem install bundler
sudo zypper in giflib-devel cairo-devel libpixman-devel pango-devel libjpeg-devel gtk2-devel libcurl-devel ruby-devel portaudio-devel gcc libxml2 libxml2-devel libxslt libxslt-devel sqlite-devel sqlite
bundle install
rake

Building on Ubuntu

Have a look at https://gist.github.com/plexus/4194d8c47e9493019e04 first, it's a bash script that tries to be relatively robust, and does as much as possible under a sandbox directory so it doesn't clutter up your system. It uses ruby-build and chruby instead of RVM.

These are older instructions but might still work:

# Install dependencies
sudo apt-get install git-core libcairo2-dev libpixman-1-dev libpango1.0-dev libgif-dev libjpeg-dev libgtk2.0-dev vlc libvlc-dev portaudio19-dev libsqlite3-dev libcurl4-openssl-dev libxslt1-dev makeself curl libxslt-dev libxml2-dev libcurl4-openssl-dev libungif4-dev  ruby1.9.1-full 


# Install RVM (see https://rvm.beginrescueend.com/rvm/install/ for detailed instruction) 
sudo apt-get install ruby-rvm
echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
source ~/.bash_profile

# Test RVM install (should output 'rvm is a function')
type rvm | head -1

# Install ruby and required gems
rvm install ruby-1.9.3
rvm use 1.9.3
gem install bundler

# Clone Shoes source and build
git clone git://github.com/shoes/shoes.git ${SHOES_DIR}
cd ${SHOES_DIR}
rvm use 1.9.3
bundle install
rake

Ubuntu notes

  • Older Ubuntus may get apt-get errors with portaudio19-dev, which was previously known as libportaudio19-dev.

  • The above steps work on ARM Ubuntu - however you will need to edit the following file to include the library path for the ARM distribution:

./shoes/make/linux/tasks.rb

and add the following path to the list of lib paths for the function find_and_copy()

"/usr/lib/arm-linux-gnueabihf/#{thelib}"

Notes from building on 13.04 with chruby instead of rvm

  • portaudio19-dev caused some package conflicts, use aptitude (sudo apt-get install aptitude) in stead of apt-get and it will propose a solution
  • if you get the error that ld: can't find -lruby or something to that effect, it means the linker (ld) is unable to find the shared library (so file) of Ruby to link against. As a quick fix try sudo ln -s /usr/lib/libruby-1.9.1.so /usr/lib/libruby.so and run rake again.
  • Now it will get further along, but possibly complain later of 'No such file or directory - /path/to/ruby/ruby-1.9.3-p392/lib/libruby.so'. In that case do a ln -s /usr/lib/libruby.so /path/to/ruby/ruby-1.9.3-p392/lib/libruby.so, using the exact path from the error messages.

Generically:

git clone git://github.com/shoes/shoes.git 
cd shoes 
gem install bundler
bundle install
rake

Building on Arch Linux

There is a package available in AUR. If you have yaourt installed, just

$ yaourt -S shoes-git

Otherwise, build it like any other package from the AUR.

How to Run

Once installed (wherever you set #{SHOES_DIR} to), you can run shoes by entering the command #{SHOES_DIR}/dist/shoes.

If you would prefer a desktop link that will start shoes for you, you can create a custom application launcher which points to this command. In Ubuntu, you can do this by right clicking on the desktop and selecting "Create Launcher" from the drop-down. Enter in "Shoes" for the name and the command #{SHOES_DIR}/dist/shoes into the "command" section. Note though that if you use a ~ in #{SHOES_DIR}, you must replace that with the actual location of your home folder. If your username is bob on the computer, then you would replace ~ with /home/bob/ in the command you enter into this field. Once you click "OK" you should be able to run shoes straight from your desktop. (You can also go through a similar process in order to make the application launchable from you Applications Menu).