Skip to content

Building Shoes on Linux

Cecil Coupe edited this page Dec 8, 2018 · 7 revisions

Building Shoes on Linux

Please heed these warnings

  • You should not use the Ruby that comes with your Linux distro except for the next step.
  • You should install rvm or a similar ruby manager.
  • You will read the rvm instructions and setup your bashrc or bash profile.
  • If you intend to create a Shoes that you can redistribute or embed (aka Tight Shoes) You must build Ruby from source or have rvm do it. Ruby must be built with the --enable-load-relative setting. It's not that difficult to build Ruby although you may have install other dependencies to get Ruby setup your way so that's kind of annoying.
  • You should build Shoes 3.2 with Ruby 2.1.x although Shoes 3.2 will work with 1.9.3 and up.

This is a long post with 5 sections. You'll be scrolling around.

  • Dependencies
  • Building Loose Shoes
  • Building Tight Shoes
  • Building Ruby
  • Outdated info that might be useful

Dependencies

There's no way to sugar coat this. It's annoying. It's very annoying and you'll probably fail a time or two and you have old instructions from here. That's just going to happen but You can work through it.

Build Loose Shoes

This pretty easy but tedious.

For example I've got a Ubuntu 15.10 Virtual Machine which doesn't have a lot of development stuff installed. Doesn't even have ruby. sudo apt-get install ruby That gets us ruby 2.1.5 which we can use to install rvm these instructions

sudo apt-get install gnupg2
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler"
source /home/ccoupe/.rvm/scripts/rvm
rvm list

Which tell us we don't any Rubies in rvm. We want 2.4 with some options.

rvm install 2.3.7 -C --enable-load-relative

That asks for your sudo password and then apt-get installs all kinds of dependent libraries and then it compiles Ruby - takes 10 minutes to so but it informs you of progress. Lets see what we have

$ ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [x86_64-linux]
$ gem list -l

*** LOCAL GEMS ***

bigdecimal (1.2.6)
bundler-unload (1.0.2)
executable-hooks (1.3.2)
gem-wrappers (1.2.7)
io-console (0.4.3)
json (1.8.1)
minitest (5.4.3)
power_assert (0.2.2)
psych (2.0.8)
rake (10.4.2)
rdoc (4.2.0)
test-unit (3.0.8)

Now we need to get the Shoes dependencies - Gtk3 and cairo and ..... I'm using apt-get so it's going to be different if you are using yum/yast/pacman/... I also installed synaptic sudo apt-get install synaptic but thats optional. On Ubuntu, most of what you need can be isntalled with a sudo apt-get install libgtk-3-dev which drags in Cairo and Pango and many other thing we need. We also need

sudo apt-get install libxml2-dev
sudo apt-get install libxslt1-dev
sudo apt-get install libcroco3-dev
sudo apt-get install librsvg2-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libgif-dev

We might need some more if Shoes fails to compile and link. Speaking of Shoes. Let's try it and see what happens. First a place for Shoes. I created a ~/Projects and cd into it, installed git and cloned Shoes

mkdir ~/Projects; cd ~/Projects
sudo apt-get install git
git clone https://github.com/Shoes3/shoes3.git
cd shoes3

Shoes uses a two step build, similar to './configure' and 'make' in spirit. rake -T lists the tasks. We want rake setup:minlin or rake setup for the minlin target.

Then shoes can be (re)built with a simple rake. Invoke shoes with minlin/shoes because that's where Loose Shoes lives Until you do rake install it and you probably don't want to install this one.

Since Loose Shoes only uses the gems installed in the rvm Ruby you'll probably want to add some gems to that ruby

gem install ffi --no-doc
gem install sqlite3 --no-doc
gem install nokogiri --no-doc
gem install chipmunk --no-doc
gem install byebug --no-doc
gem install yajl-ruby --no-doc
gem install picky --no-doc

Yes nokogiri does take some time to build. Test with a simple minlin/shoes and you should get the splash screen. It it's and empty screen, try alt-/ to get the Shoes console/log which should have some helpful error messages. Quit and test with a minlin/shoes samples/good-cardflip.rb ` We do get a message on the terminal that 'vlc not at standard location' which is Shoes 3.3.1 beta saying you don't have VLC installed. It's optional unless you want Video/Audio widgets in Shoes.

sudo apt-get install vlc

That's the end of that lesson. You can even use gdb minlin/shoes and set breakpoints because Loose Shoes has the symbols.

Build Tight Shoes

This is a Shoes (Linux) that you can package up and distribute to someone else. It's not as easy as a loose Shoes. Have I told you to install rvm and get it working and then rebuild Ruby from source with -C --enable-load-relative? It's essential. Check the rvm build logs to see what's been compiled into your Ruby.

chroot

You need to. Debian's (like Ubuntu) have schroot. You want it.

Building Ruby

Shoes 3.2 uses the Ruby 'dbm' gem to maintain the downloaded image cache. Linux systems usually have something that Ruby can use. If not, you'll have to install gdbm and rebuild Ruby to find it.

old stuff where you might find clues but you should not willy nilly execute.

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.

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 29

The following has been tested on Fedora 29 First get rvm

[ccoupe@localhost ~]$ rvm install 2.3.7 -C --enable-load-relative
Checking requirements for fedora.
Installing requirements for fedora.
Installing required packages: patch, autoconf, automake, bison, gcc-c++, libffi-devel, libtool, libyaml-devel, make, patch, readline-devel, sqlite-devel, zlib-devel, compat-openssl10-devel..ccoupe password required for 'dnf install -y patch autoconf automake bison gcc-c++ libffi-devel libtool libyaml-devel make patch readline-devel sqlite-devel zlib-devel compat-openssl10-devel': 
..........................
Requirements installation successful.
Installing Ruby from source to: /home/ccoupe/.rvm/rubies/ruby-2.3.7, this may take a while depending on your cpu(s)...
ruby-2.3.7 - #downloading ruby-2.3.7, this may take a while depending on your connection...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13.7M  100 13.7M    0     0  1969k      0  0:00:07  0:00:07 --:--:-- 2091k
ruby-2.3.7 - #extracting ruby-2.3.7 to /home/ccoupe/.rvm/src/ruby-2.3.7.....
ruby-2.3.7 - #configuring......................................................-
ruby-2.3.7 - #post-configuration..
ruby-2.3.7 - #compiling........................................................-
ruby-2.3.7 - #installing...............
ruby-2.3.7 - #making binaries executable..
ruby-2.3.7 - #downloading rubygems-2.7.8
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  899k  100  899k    0     0  1555k      0 --:--:-- --:--:-- --:--:-- 1555k
No checksum for downloaded archive, recording checksum in user configuration.
ruby-2.3.7 - #extracting rubygems-2.7.8.........................................
ruby-2.3.7 - #removing old rubygems........
ruby-2.3.7 - #installing rubygems-2.7.8.....................................
ruby-2.3.7 - #gemset created /home/ccoupe/.rvm/gems/ruby-2.3.7@global
ruby-2.3.7 - #importing gemset /home/ccoupe/.rvm/gemsets/global.gems...........|
ruby-2.3.7 - #generating global wrappers.......
ruby-2.3.7 - #gemset created /home/ccoupe/.rvm/gems/ruby-2.3.7
ruby-2.3.7 - #importing gemsetfile /home/ccoupe/.rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.3.7 - #generating default wrappers.......
ruby-2.3.7 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
Install of ruby-2.3.7 - #complete 
Ruby was built without documentation, to build it run: rvm docs generate-ri
[ccoupe@localhost ~]$ 

We also need to install some development packages.

[ccoupe@localhost ~]$ sudo dnf install giflib-devel cairo-devel libpixman-devel
[sudo] password for ccoupe: 
Last metadata expiration check: 0:35:19 ago on Fri 07 Dec 2018 08:46:23 PM MST.
No match for argument: libpixman-devel
Error: Unable to find a match
[ccoupe@localhost ~]$ sudo dnf install giflib-devel cairo-devel gtk3-devel
Last metadata expiration check: 0:35:50 ago on Fri 07 Dec 2018 08:46:23 PM MST.
Dependencies resolved.
================================================================================
 Package                     Arch       Version               Repository   Size
================================================================================
Installing:
 cairo-devel                 x86_64     1.16.0-1.fc29         updates     271 k
 giflib-devel                x86_64     5.1.4-2.fc29          fedora      180 k
 gtk3-devel                  x86_64     3.24.1-1.fc29         fedora      4.5 M
Upgrading:
 cairo                       x86_64     1.16.0-1.fc29         updates     676 k
 cairo-gobject               x86_64     1.16.0-1.fc29         updates      18 k
Installing dependencies:
 cairo-gobject-devel         x86_64     1.16.0-1.fc29         updates      11 k
 at-spi2-atk-devel           x86_64     2.30.0-1.fc29         fedora      9.6 k
 at-spi2-core-devel          x86_64     2.30.0-2.fc29         fedora      134 k
 atk-devel                   x86_64     2.30.0-1.fc29         fedora      179 k
 bzip2-devel                 x86_64     1.0.6-28.fc29         fedora      215 k
 cmake-filesystem            x86_64     3.12.1-1.fc29         fedora       16 k
 dbus-devel                  x86_64     1:1.12.10-1.fc29      fedora       36 k
 expat-devel                 x86_64     2.2.6-1.fc29          fedora       49 k
 fontconfig-devel            x86_64     2.13.1-1.fc29         fedora      127 k
 freetype-devel              x86_64     2.9.1-2.fc29          fedora      441 k
 fribidi-devel               x86_64     1.0.5-1.fc29          fedora       58 k
 gdk-pixbuf2-devel           x86_64     2.38.0-4.fc29         fedora      215 k
 glib2-devel                 x86_64     2.58.1-1.fc29         fedora      465 k
 graphite2-devel             x86_64     1.3.10-6.fc29         fedora       41 k
 harfbuzz-devel              x86_64     1.8.7-1.fc29          fedora      178 k
 libX11-devel                x86_64     1.6.6-1.fc29          fedora      974 k
 libXau-devel                x86_64     1.0.8-14.fc29         fedora       14 k
 libXcomposite-devel         x86_64     0.4.4-15.fc29         fedora       16 k
 libXcursor-devel            x86_64     1.1.15-4.fc29         fedora       22 k
 libXdamage-devel            x86_64     1.1.4-15.fc29         fedora      9.4 k
 libXext-devel               x86_64     1.3.3-10.fc29         fedora       73 k
 libXfixes-devel             x86_64     5.0.3-8.fc29          fedora       12 k
 libXft-devel                x86_64     2.3.2-11.fc29         fedora       18 k
 libXi-devel                 x86_64     1.7.9-8.fc29          fedora      101 k
 libXinerama-devel           x86_64     1.1.4-2.fc29          fedora       13 k
 libXrandr-devel             x86_64     1.5.1-8.fc29          fedora       19 k
 libXrender-devel            x86_64     0.9.10-8.fc29         fedora       16 k
 libXxf86vm-devel            x86_64     1.1.4-10.fc29         fedora       18 k
 libdrm-devel                x86_64     2.4.95-1.fc29         fedora      144 k
 libepoxy-devel              x86_64     1.5.3-1.fc29          fedora      140 k
 libglvnd-core-devel         x86_64     1:1.1.0-2.fc29        fedora       22 k
 libglvnd-devel              x86_64     1:1.1.0-2.fc29        fedora       13 k
 libglvnd-opengl             x86_64     1:1.1.0-2.fc29        fedora       39 k
 libicu-devel                x86_64     62.1-2.fc29           fedora      917 k
 libpng-devel                x86_64     2:1.6.34-6.fc29       fedora      310 k
 libtiff-devel               x86_64     4.0.9-11.fc29         fedora      496 k
 libuuid-devel               x86_64     2.32.1-1.fc29         fedora       29 k
 libxcb-devel                x86_64     1.13.1-1.fc29         fedora      1.1 M
 libxkbcommon-devel          x86_64     0.8.2-1.fc29          fedora       56 k
 mesa-libEGL-devel           x86_64     18.2.2-1.fc29         fedora       34 k
 mesa-libGL-devel            x86_64     18.2.2-1.fc29         fedora      160 k
 pango-devel                 x86_64     1.42.4-1.fc29         fedora      294 k
 pcre-cpp                    x86_64     8.42-4.fc29           fedora       27 k
 pcre-devel                  x86_64     8.42-4.fc29           fedora      533 k
 pcre-utf16                  x86_64     8.42-4.fc29           fedora      173 k
 pcre-utf32                  x86_64     8.42-4.fc29           fedora      164 k
 pixman-devel                x86_64     0.34.0-10.fc29        fedora       17 k
 wayland-devel               x86_64     1.16.0-1.fc29         fedora      138 k
 wayland-protocols-devel     noarch     1.16-1.fc29           fedora       74 k
 xorg-x11-proto-devel        noarch     2018.4-2.fc29         fedora      280 k

Transaction Summary
================================================================================
Install  53 Packages
Upgrade   2 Packages

Total download size: 14 M
Is this ok [y/N]: y
Downloading Packages:
(1/55): at-spi2-atk-devel-2.30.0-1.fc29.x86_64. 8.4 kB/s | 9.6 kB     00:01    
(2/55): cairo-gobject-devel-1.16.0-1.fc29.x86_6 9.2 kB/s |  11 kB     00:01    
(3/55): cairo-devel-1.16.0-1.fc29.x86_64.rpm    187 kB/s | 271 kB     00:01    
(4/55): at-spi2-core-devel-2.30.0-2.fc29.x86_64 363 kB/s | 134 kB     00:00    
(5/55): cmake-filesystem-3.12.1-1.fc29.x86_64.r 213 kB/s |  16 kB     00:00    
(6/55): dbus-devel-1.12.10-1.fc29.x86_64.rpm    459 kB/s |  36 kB     00:00    
(7/55): expat-devel-2.2.6-1.fc29.x86_64.rpm     453 kB/s |  49 kB     00:00    
(8/55): atk-devel-2.30.0-1.fc29.x86_64.rpm      309 kB/s | 179 kB     00:00    
(9/55): fontconfig-devel-2.13.1-1.fc29.x86_64.r 665 kB/s | 127 kB     00:00    
(10/55): fribidi-devel-1.0.5-1.fc29.x86_64.rpm  588 kB/s |  58 kB     00:00    
(11/55): bzip2-devel-1.0.6-28.fc29.x86_64.rpm   331 kB/s | 215 kB     00:00    
(12/55): gdk-pixbuf2-devel-2.38.0-4.fc29.x86_64 776 kB/s | 215 kB     00:00    
(13/55): freetype-devel-2.9.1-2.fc29.x86_64.rpm 754 kB/s | 441 kB     00:00    
(14/55): giflib-devel-5.1.4-2.fc29.x86_64.rpm   475 kB/s | 180 kB     00:00    
(15/55): graphite2-devel-1.3.10-6.fc29.x86_64.r 301 kB/s |  41 kB     00:00    
(16/55): harfbuzz-devel-1.8.7-1.fc29.x86_64.rpm 780 kB/s | 178 kB     00:00    
(17/55): glib2-devel-2.58.1-1.fc29.x86_64.rpm   1.0 MB/s | 465 kB     00:00    
(18/55): libXau-devel-1.0.8-14.fc29.x86_64.rpm   83 kB/s |  14 kB     00:00    
(19/55): libXcomposite-devel-0.4.4-15.fc29.x86_  70 kB/s |  16 kB     00:00    
(20/55): libXcursor-devel-1.1.15-4.fc29.x86_64.  99 kB/s |  22 kB     00:00    
(21/55): libX11-devel-1.6.6-1.fc29.x86_64.rpm   1.2 MB/s | 974 kB     00:00    
(22/55): libXdamage-devel-1.1.4-15.fc29.x86_64.  42 kB/s | 9.4 kB     00:00    
(23/55): libXext-devel-1.3.3-10.fc29.x86_64.rpm 444 kB/s |  73 kB     00:00    
(24/55): libXfixes-devel-5.0.3-8.fc29.x86_64.rp  59 kB/s |  12 kB     00:00    
(25/55): libXft-devel-2.3.2-11.fc29.x86_64.rpm  103 kB/s |  18 kB     00:00    
(26/55): libXi-devel-1.7.9-8.fc29.x86_64.rpm    379 kB/s | 101 kB     00:00    
(27/55): libXinerama-devel-1.1.4-2.fc29.x86_64.  49 kB/s |  13 kB     00:00    
(28/55): libXrandr-devel-1.5.1-8.fc29.x86_64.rp  71 kB/s |  19 kB     00:00    
(29/55): libXrender-devel-0.9.10-8.fc29.x86_64.  59 kB/s |  16 kB     00:00    
(30/55): libXxf86vm-devel-1.1.4-10.fc29.x86_64.  52 kB/s |  18 kB     00:00    
(31/55): libdrm-devel-2.4.95-1.fc29.x86_64.rpm  360 kB/s | 144 kB     00:00    
(32/55): libepoxy-devel-1.5.3-1.fc29.x86_64.rpm 265 kB/s | 140 kB     00:00    
(33/55): libglvnd-core-devel-1.1.0-2.fc29.x86_6  46 kB/s |  22 kB     00:00    
(34/55): gtk3-devel-3.24.1-1.fc29.x86_64.rpm    1.4 MB/s | 4.5 MB     00:03    
(35/55): libglvnd-devel-1.1.0-2.fc29.x86_64.rpm  29 kB/s |  13 kB     00:00    
(36/55): libglvnd-opengl-1.1.0-2.fc29.x86_64.rp  74 kB/s |  39 kB     00:00    
(37/55): libpng-devel-1.6.34-6.fc29.x86_64.rpm  1.4 MB/s | 310 kB     00:00    
(38/55): libuuid-devel-2.32.1-1.fc29.x86_64.rpm  95 kB/s |  29 kB     00:00    
(39/55): libtiff-devel-4.0.9-11.fc29.x86_64.rpm 799 kB/s | 496 kB     00:00    
(40/55): libxcb-devel-1.13.1-1.fc29.x86_64.rpm  1.5 MB/s | 1.1 MB     00:00    
(41/55): libxkbcommon-devel-0.8.2-1.fc29.x86_64  81 kB/s |  56 kB     00:00    
(42/55): mesa-libEGL-devel-18.2.2-1.fc29.x86_64 179 kB/s |  34 kB     00:00    
(43/55): libicu-devel-62.1-2.fc29.x86_64.rpm    620 kB/s | 917 kB     00:01    
(44/55): pango-devel-1.42.4-1.fc29.x86_64.rpm   1.4 MB/s | 294 kB     00:00    
(45/55): pcre-cpp-8.42-4.fc29.x86_64.rpm        174 kB/s |  27 kB     00:00    
(46/55): mesa-libGL-devel-18.2.2-1.fc29.x86_64. 519 kB/s | 160 kB     00:00    
(47/55): pcre-devel-8.42-4.fc29.x86_64.rpm      1.5 MB/s | 533 kB     00:00    
(48/55): pcre-utf16-8.42-4.fc29.x86_64.rpm      425 kB/s | 173 kB     00:00    
(49/55): pcre-utf32-8.42-4.fc29.x86_64.rpm      396 kB/s | 164 kB     00:00    
(50/55): pixman-devel-0.34.0-10.fc29.x86_64.rpm 102 kB/s |  17 kB     00:00    
(51/55): wayland-devel-1.16.0-1.fc29.x86_64.rpm 910 kB/s | 138 kB     00:00    
(52/55): wayland-protocols-devel-1.16-1.fc29.no 678 kB/s |  74 kB     00:00    
(53/55): xorg-x11-proto-devel-2018.4-2.fc29.noa 1.2 MB/s | 280 kB     00:00    
(54/55): cairo-gobject-1.16.0-1.fc29.x86_64.rpm  91 kB/s |  18 kB     00:00    
(55/55): cairo-1.16.0-1.fc29.x86_64.rpm         1.1 MB/s | 676 kB     00:00    
--------------------------------------------------------------------------------
Total                                           1.3 MB/s |  14 MB     00:10     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
Installed: xorg-x11-proto-devel-2018.4-2.fc29.noarch
  Installing       : xorg-x11-proto-devel-2018.4-2.fc29.noarch             1/57 
Installed: xorg-x11-proto-devel-2018.4-2.fc29.noarch
Upgrade: cairo-1.16.0-1.fc29.x86_64
  Upgrading        : cairo-1.16.0-1.fc29.x86_64                            2/57 
Upgrade: cairo-1.16.0-1.fc29.x86_64
Installed: libpng-devel-2:1.6.34-6.fc29.x86_64
  Installing       : libpng-devel-2:1.6.34-6.fc29.x86_64                   3/57 
Installed: libpng-devel-2:1.6.34-6.fc29.x86_64
Upgrade: cairo-gobject-1.16.0-1.fc29.x86_64
  Upgrading        : cairo-gobject-1.16.0-1.fc29.x86_64                    4/57 
Upgrade: cairo-gobject-1.16.0-1.fc29.x86_64
Installed: libdrm-devel-2.4.95-1.fc29.x86_64
  Installing       : libdrm-devel-2.4.95-1.fc29.x86_64                     5/57 
Installed: libdrm-devel-2.4.95-1.fc29.x86_64
Installed: libXau-devel-1.0.8-14.fc29.x86_64
  Installing       : libXau-devel-1.0.8-14.fc29.x86_64                     6/57 
Installed: libXau-devel-1.0.8-14.fc29.x86_64
Installed: libxcb-devel-1.13.1-1.fc29.x86_64
  Installing       : libxcb-devel-1.13.1-1.fc29.x86_64                     7/57 
Installed: libxcb-devel-1.13.1-1.fc29.x86_64
Installed: libX11-devel-1.6.6-1.fc29.x86_64
  Installing       : libX11-devel-1.6.6-1.fc29.x86_64                      8/57 
Installed: libX11-devel-1.6.6-1.fc29.x86_64
Installed: libXext-devel-1.3.3-10.fc29.x86_64
  Installing       : libXext-devel-1.3.3-10.fc29.x86_64                    9/57 
Installed: libXext-devel-1.3.3-10.fc29.x86_64
Installed: libXfixes-devel-5.0.3-8.fc29.x86_64
  Installing       : libXfixes-devel-5.0.3-8.fc29.x86_64                  10/57 
Installed: libXfixes-devel-5.0.3-8.fc29.x86_64
Installed: libXrender-devel-0.9.10-8.fc29.x86_64
  Installing       : libXrender-devel-0.9.10-8.fc29.x86_64                11/57 
Installed: libXrender-devel-0.9.10-8.fc29.x86_64
Installed: libXdamage-devel-1.1.4-15.fc29.x86_64
  Installing       : libXdamage-devel-1.1.4-15.fc29.x86_64                12/57 
Installed: libXdamage-devel-1.1.4-15.fc29.x86_64
Installed: libXxf86vm-devel-1.1.4-10.fc29.x86_64
  Installing       : libXxf86vm-devel-1.1.4-10.fc29.x86_64                13/57 
Installed: libXxf86vm-devel-1.1.4-10.fc29.x86_64
Installed: libXcursor-devel-1.1.15-4.fc29.x86_64
  Installing       : libXcursor-devel-1.1.15-4.fc29.x86_64                14/57 
Installed: libXcursor-devel-1.1.15-4.fc29.x86_64
Installed: libXrandr-devel-1.5.1-8.fc29.x86_64
  Installing       : libXrandr-devel-1.5.1-8.fc29.x86_64                  15/57 
Installed: libXrandr-devel-1.5.1-8.fc29.x86_64
Installed: libXcomposite-devel-0.4.4-15.fc29.x86_64
  Installing       : libXcomposite-devel-0.4.4-15.fc29.x86_64             16/57 
Installed: libXcomposite-devel-0.4.4-15.fc29.x86_64
Installed: libXi-devel-1.7.9-8.fc29.x86_64
  Installing       : libXi-devel-1.7.9-8.fc29.x86_64                      17/57 
Installed: libXi-devel-1.7.9-8.fc29.x86_64
Installed: libXinerama-devel-1.1.4-2.fc29.x86_64
  Installing       : libXinerama-devel-1.1.4-2.fc29.x86_64                18/57 
Installed: libXinerama-devel-1.1.4-2.fc29.x86_64
Installed: wayland-protocols-devel-1.16-1.fc29.noarch
  Installing       : wayland-protocols-devel-1.16-1.fc29.noarch           19/57 
Installed: wayland-protocols-devel-1.16-1.fc29.noarch
Installed: wayland-devel-1.16.0-1.fc29.x86_64
  Installing       : wayland-devel-1.16.0-1.fc29.x86_64                   20/57 
Installed: wayland-devel-1.16.0-1.fc29.x86_64
Installed: pixman-devel-0.34.0-10.fc29.x86_64
  Installing       : pixman-devel-0.34.0-10.fc29.x86_64                   21/57 
Installed: pixman-devel-0.34.0-10.fc29.x86_64
Installed: pcre-utf32-8.42-4.fc29.x86_64
  Installing       : pcre-utf32-8.42-4.fc29.x86_64                        22/57 
Installed: pcre-utf32-8.42-4.fc29.x86_64
Installed: pcre-utf16-8.42-4.fc29.x86_64
  Installing       : pcre-utf16-8.42-4.fc29.x86_64                        23/57 
Installed: pcre-utf16-8.42-4.fc29.x86_64
Installed: pcre-cpp-8.42-4.fc29.x86_64
  Installing       : pcre-cpp-8.42-4.fc29.x86_64                          24/57 
Installed: pcre-cpp-8.42-4.fc29.x86_64
Installed: pcre-devel-8.42-4.fc29.x86_64
  Installing       : pcre-devel-8.42-4.fc29.x86_64                        25/57 
Installed: pcre-devel-8.42-4.fc29.x86_64
Installed: glib2-devel-2.58.1-1.fc29.x86_64
  Installing       : glib2-devel-2.58.1-1.fc29.x86_64                     26/57 
Installed: glib2-devel-2.58.1-1.fc29.x86_64
Installed: atk-devel-2.30.0-1.fc29.x86_64
  Installing       : atk-devel-2.30.0-1.fc29.x86_64                       27/57 
Installed: atk-devel-2.30.0-1.fc29.x86_64
Installed: libxkbcommon-devel-0.8.2-1.fc29.x86_64
  Installing       : libxkbcommon-devel-0.8.2-1.fc29.x86_64               28/57 
Installed: libxkbcommon-devel-0.8.2-1.fc29.x86_64
Installed: libuuid-devel-2.32.1-1.fc29.x86_64
  Installing       : libuuid-devel-2.32.1-1.fc29.x86_64                   29/57 
Installed: libuuid-devel-2.32.1-1.fc29.x86_64
Installed: libtiff-devel-4.0.9-11.fc29.x86_64
  Installing       : libtiff-devel-4.0.9-11.fc29.x86_64                   30/57 
Installed: libtiff-devel-4.0.9-11.fc29.x86_64
Installed: gdk-pixbuf2-devel-2.38.0-4.fc29.x86_64
  Installing       : gdk-pixbuf2-devel-2.38.0-4.fc29.x86_64               31/57 
Installed: gdk-pixbuf2-devel-2.38.0-4.fc29.x86_64
Installed: libicu-devel-62.1-2.fc29.x86_64
  Installing       : libicu-devel-62.1-2.fc29.x86_64                      32/57 
Installed: libicu-devel-62.1-2.fc29.x86_64
Installed: libglvnd-opengl-1:1.1.0-2.fc29.x86_64
  Installing       : libglvnd-opengl-1:1.1.0-2.fc29.x86_64                33/57 
Installed: libglvnd-opengl-1:1.1.0-2.fc29.x86_64
Installed: libglvnd-core-devel-1:1.1.0-2.fc29.x86_64
  Installing       : libglvnd-core-devel-1:1.1.0-2.fc29.x86_64            34/57 
Installed: libglvnd-core-devel-1:1.1.0-2.fc29.x86_64
Installed: libglvnd-devel-1:1.1.0-2.fc29.x86_64
  Installing       : libglvnd-devel-1:1.1.0-2.fc29.x86_64                 35/57 
Installed: libglvnd-devel-1:1.1.0-2.fc29.x86_64
Installed: mesa-libEGL-devel-18.2.2-1.fc29.x86_64
  Installing       : mesa-libEGL-devel-18.2.2-1.fc29.x86_64               36/57 
Installed: mesa-libEGL-devel-18.2.2-1.fc29.x86_64
Installed: mesa-libGL-devel-18.2.2-1.fc29.x86_64
  Installing       : mesa-libGL-devel-18.2.2-1.fc29.x86_64                37/57 
Installed: mesa-libGL-devel-18.2.2-1.fc29.x86_64
Installed: libepoxy-devel-1.5.3-1.fc29.x86_64
  Installing       : libepoxy-devel-1.5.3-1.fc29.x86_64                   38/57 
Installed: libepoxy-devel-1.5.3-1.fc29.x86_64
Installed: graphite2-devel-1.3.10-6.fc29.x86_64
  Installing       : graphite2-devel-1.3.10-6.fc29.x86_64                 39/57 
Installed: graphite2-devel-1.3.10-6.fc29.x86_64
Installed: harfbuzz-devel-1.8.7-1.fc29.x86_64
  Installing       : harfbuzz-devel-1.8.7-1.fc29.x86_64                   40/57 
Installed: harfbuzz-devel-1.8.7-1.fc29.x86_64
Installed: fribidi-devel-1.0.5-1.fc29.x86_64
  Installing       : fribidi-devel-1.0.5-1.fc29.x86_64                    41/57 
Installed: fribidi-devel-1.0.5-1.fc29.x86_64
Installed: expat-devel-2.2.6-1.fc29.x86_64
  Installing       : expat-devel-2.2.6-1.fc29.x86_64                      42/57 
Installed: expat-devel-2.2.6-1.fc29.x86_64
Installed: cmake-filesystem-3.12.1-1.fc29.x86_64
  Installing       : cmake-filesystem-3.12.1-1.fc29.x86_64                43/57 
Installed: cmake-filesystem-3.12.1-1.fc29.x86_64
Installed: dbus-devel-1:1.12.10-1.fc29.x86_64
  Installing       : dbus-devel-1:1.12.10-1.fc29.x86_64                   44/57 
Installed: dbus-devel-1:1.12.10-1.fc29.x86_64
Installed: at-spi2-core-devel-2.30.0-2.fc29.x86_64
  Installing       : at-spi2-core-devel-2.30.0-2.fc29.x86_64              45/57 
Installed: at-spi2-core-devel-2.30.0-2.fc29.x86_64
Installed: at-spi2-atk-devel-2.30.0-1.fc29.x86_64
  Installing       : at-spi2-atk-devel-2.30.0-1.fc29.x86_64               46/57 
Installed: at-spi2-atk-devel-2.30.0-1.fc29.x86_64
Installed: bzip2-devel-1.0.6-28.fc29.x86_64
  Installing       : bzip2-devel-1.0.6-28.fc29.x86_64                     47/57 
Installed: bzip2-devel-1.0.6-28.fc29.x86_64
Installed: freetype-devel-2.9.1-2.fc29.x86_64
  Installing       : freetype-devel-2.9.1-2.fc29.x86_64                   48/57 
Installed: freetype-devel-2.9.1-2.fc29.x86_64
Installed: fontconfig-devel-2.13.1-1.fc29.x86_64
  Installing       : fontconfig-devel-2.13.1-1.fc29.x86_64                49/57 
Installed: fontconfig-devel-2.13.1-1.fc29.x86_64
Installed: cairo-devel-1.16.0-1.fc29.x86_64
  Installing       : cairo-devel-1.16.0-1.fc29.x86_64                     50/57 
Installed: cairo-devel-1.16.0-1.fc29.x86_64
Installed: cairo-gobject-devel-1.16.0-1.fc29.x86_64
  Installing       : cairo-gobject-devel-1.16.0-1.fc29.x86_64             51/57 
Installed: cairo-gobject-devel-1.16.0-1.fc29.x86_64
Installed: libXft-devel-2.3.2-11.fc29.x86_64
  Installing       : libXft-devel-2.3.2-11.fc29.x86_64                    52/57 
Installed: libXft-devel-2.3.2-11.fc29.x86_64
Installed: pango-devel-1.42.4-1.fc29.x86_64
  Installing       : pango-devel-1.42.4-1.fc29.x86_64                     53/57 
Installed: pango-devel-1.42.4-1.fc29.x86_64
Installed: gtk3-devel-3.24.1-1.fc29.x86_64
  Installing       : gtk3-devel-3.24.1-1.fc29.x86_64                      54/57 
Installed: gtk3-devel-3.24.1-1.fc29.x86_64
Installed: giflib-devel-5.1.4-2.fc29.x86_64
  Installing       : giflib-devel-5.1.4-2.fc29.x86_64                     55/57 
Installed: giflib-devel-5.1.4-2.fc29.x86_64
Upgraded: cairo-gobject-1.15.14-1.fc29.x86_64
  Cleanup          : cairo-gobject-1.15.14-1.fc29.x86_64                  56/57 
Upgraded: cairo-gobject-1.15.14-1.fc29.x86_64
Upgraded: cairo-1.15.14-1.fc29.x86_64
  Cleanup          : cairo-1.15.14-1.fc29.x86_64                          57/57 
Upgraded: cairo-1.15.14-1.fc29.x86_64
  Running scriptlet: cairo-1.15.14-1.fc29.x86_64                          57/57 
  Verifying        : cairo-devel-1.16.0-1.fc29.x86_64                      1/57 
  Verifying        : cairo-gobject-devel-1.16.0-1.fc29.x86_64              2/57 
  Verifying        : at-spi2-atk-devel-2.30.0-1.fc29.x86_64                3/57 
  Verifying        : at-spi2-core-devel-2.30.0-2.fc29.x86_64               4/57 
  Verifying        : atk-devel-2.30.0-1.fc29.x86_64                        5/57 
  Verifying        : bzip2-devel-1.0.6-28.fc29.x86_64                      6/57 
  Verifying        : cmake-filesystem-3.12.1-1.fc29.x86_64                 7/57 
  Verifying        : dbus-devel-1:1.12.10-1.fc29.x86_64                    8/57 
  Verifying        : expat-devel-2.2.6-1.fc29.x86_64                       9/57 
  Verifying        : fontconfig-devel-2.13.1-1.fc29.x86_64                10/57 
  Verifying        : freetype-devel-2.9.1-2.fc29.x86_64                   11/57 
  Verifying        : fribidi-devel-1.0.5-1.fc29.x86_64                    12/57 
  Verifying        : gdk-pixbuf2-devel-2.38.0-4.fc29.x86_64               13/57 
  Verifying        : giflib-devel-5.1.4-2.fc29.x86_64                     14/57 
  Verifying        : glib2-devel-2.58.1-1.fc29.x86_64                     15/57 
  Verifying        : graphite2-devel-1.3.10-6.fc29.x86_64                 16/57 
  Verifying        : gtk3-devel-3.24.1-1.fc29.x86_64                      17/57 
  Verifying        : harfbuzz-devel-1.8.7-1.fc29.x86_64                   18/57 
  Verifying        : libX11-devel-1.6.6-1.fc29.x86_64                     19/57 
  Verifying        : libXau-devel-1.0.8-14.fc29.x86_64                    20/57 
  Verifying        : libXcomposite-devel-0.4.4-15.fc29.x86_64             21/57 
  Verifying        : libXcursor-devel-1.1.15-4.fc29.x86_64                22/57 
  Verifying        : libXdamage-devel-1.1.4-15.fc29.x86_64                23/57 
  Verifying        : libXext-devel-1.3.3-10.fc29.x86_64                   24/57 
  Verifying        : libXfixes-devel-5.0.3-8.fc29.x86_64                  25/57 
  Verifying        : libXft-devel-2.3.2-11.fc29.x86_64                    26/57 
  Verifying        : libXi-devel-1.7.9-8.fc29.x86_64                      27/57 
  Verifying        : libXinerama-devel-1.1.4-2.fc29.x86_64                28/57 
  Verifying        : libXrandr-devel-1.5.1-8.fc29.x86_64                  29/57 
  Verifying        : libXrender-devel-0.9.10-8.fc29.x86_64                30/57 
  Verifying        : libXxf86vm-devel-1.1.4-10.fc29.x86_64                31/57 
  Verifying        : libdrm-devel-2.4.95-1.fc29.x86_64                    32/57 
  Verifying        : libepoxy-devel-1.5.3-1.fc29.x86_64                   33/57 
  Verifying        : libglvnd-core-devel-1:1.1.0-2.fc29.x86_64            34/57 
  Verifying        : libglvnd-devel-1:1.1.0-2.fc29.x86_64                 35/57 
  Verifying        : libglvnd-opengl-1:1.1.0-2.fc29.x86_64                36/57 
  Verifying        : libicu-devel-62.1-2.fc29.x86_64                      37/57 
  Verifying        : libpng-devel-2:1.6.34-6.fc29.x86_64                  38/57 
  Verifying        : libtiff-devel-4.0.9-11.fc29.x86_64                   39/57 
  Verifying        : libuuid-devel-2.32.1-1.fc29.x86_64                   40/57 
  Verifying        : libxcb-devel-1.13.1-1.fc29.x86_64                    41/57 
  Verifying        : libxkbcommon-devel-0.8.2-1.fc29.x86_64               42/57 
  Verifying        : mesa-libEGL-devel-18.2.2-1.fc29.x86_64               43/57 
  Verifying        : mesa-libGL-devel-18.2.2-1.fc29.x86_64                44/57 
  Verifying        : pango-devel-1.42.4-1.fc29.x86_64                     45/57 
  Verifying        : pcre-cpp-8.42-4.fc29.x86_64                          46/57 
  Verifying        : pcre-devel-8.42-4.fc29.x86_64                        47/57 
  Verifying        : pcre-utf16-8.42-4.fc29.x86_64                        48/57 
  Verifying        : pcre-utf32-8.42-4.fc29.x86_64                        49/57 
  Verifying        : pixman-devel-0.34.0-10.fc29.x86_64                   50/57 
  Verifying        : wayland-devel-1.16.0-1.fc29.x86_64                   51/57 
  Verifying        : wayland-protocols-devel-1.16-1.fc29.noarch           52/57 
  Verifying        : xorg-x11-proto-devel-2018.4-2.fc29.noarch            53/57 
  Verifying        : cairo-1.16.0-1.fc29.x86_64                           54/57 
  Verifying        : cairo-1.15.14-1.fc29.x86_64                          55/57 
  Verifying        : cairo-gobject-1.16.0-1.fc29.x86_64                   56/57 
  Verifying        : cairo-gobject-1.15.14-1.fc29.x86_64                  57/57 

Upgraded:
  cairo-1.16.0-1.fc29.x86_64         cairo-gobject-1.16.0-1.fc29.x86_64        

Installed:
  cairo-devel-1.16.0-1.fc29.x86_64                                              
  giflib-devel-5.1.4-2.fc29.x86_64                                              
  gtk3-devel-3.24.1-1.fc29.x86_64                                               
  cairo-gobject-devel-1.16.0-1.fc29.x86_64                                      
  at-spi2-atk-devel-2.30.0-1.fc29.x86_64                                        
  at-spi2-core-devel-2.30.0-2.fc29.x86_64                                       
  atk-devel-2.30.0-1.fc29.x86_64                                                
  bzip2-devel-1.0.6-28.fc29.x86_64                                              
  cmake-filesystem-3.12.1-1.fc29.x86_64                                         
  dbus-devel-1:1.12.10-1.fc29.x86_64                                            
  expat-devel-2.2.6-1.fc29.x86_64                                               
  fontconfig-devel-2.13.1-1.fc29.x86_64                                         
  freetype-devel-2.9.1-2.fc29.x86_64                                            
  fribidi-devel-1.0.5-1.fc29.x86_64                                             
  gdk-pixbuf2-devel-2.38.0-4.fc29.x86_64                                        
  glib2-devel-2.58.1-1.fc29.x86_64                                              
  graphite2-devel-1.3.10-6.fc29.x86_64                                          
  harfbuzz-devel-1.8.7-1.fc29.x86_64                                            
  libX11-devel-1.6.6-1.fc29.x86_64                                              
  libXau-devel-1.0.8-14.fc29.x86_64                                             
  libXcomposite-devel-0.4.4-15.fc29.x86_64                                      
  libXcursor-devel-1.1.15-4.fc29.x86_64                                         
  libXdamage-devel-1.1.4-15.fc29.x86_64                                         
  libXext-devel-1.3.3-10.fc29.x86_64                                            
  libXfixes-devel-5.0.3-8.fc29.x86_64                                           
  libXft-devel-2.3.2-11.fc29.x86_64                                             
  libXi-devel-1.7.9-8.fc29.x86_64                                               
  libXinerama-devel-1.1.4-2.fc29.x86_64                                         
  libXrandr-devel-1.5.1-8.fc29.x86_64                                           
  libXrender-devel-0.9.10-8.fc29.x86_64                                         
  libXxf86vm-devel-1.1.4-10.fc29.x86_64                                         
  libdrm-devel-2.4.95-1.fc29.x86_64                                             
  libepoxy-devel-1.5.3-1.fc29.x86_64                                            
  libglvnd-core-devel-1:1.1.0-2.fc29.x86_64                                     
  libglvnd-devel-1:1.1.0-2.fc29.x86_64                                          
  libglvnd-opengl-1:1.1.0-2.fc29.x86_64                                         
  libicu-devel-62.1-2.fc29.x86_64                                               
  libpng-devel-2:1.6.34-6.fc29.x86_64                                           
  libtiff-devel-4.0.9-11.fc29.x86_64                                            
  libuuid-devel-2.32.1-1.fc29.x86_64                                            
  libxcb-devel-1.13.1-1.fc29.x86_64                                             
  libxkbcommon-devel-0.8.2-1.fc29.x86_64                                        
  mesa-libEGL-devel-18.2.2-1.fc29.x86_64                                        
  mesa-libGL-devel-18.2.2-1.fc29.x86_64                                         
  pango-devel-1.42.4-1.fc29.x86_64                                              
  pcre-cpp-8.42-4.fc29.x86_64                                                   
  pcre-devel-8.42-4.fc29.x86_64                                                 
  pcre-utf16-8.42-4.fc29.x86_64                                                 
  pcre-utf32-8.42-4.fc29.x86_64                                                 
  pixman-devel-0.34.0-10.fc29.x86_64                                            
  wayland-devel-1.16.0-1.fc29.x86_64                                            
  wayland-protocols-devel-1.16-1.fc29.noarch                                    
  xorg-x11-proto-devel-2018.4-2.fc29.noarch                                     

Complete!
[ccoupe@localhost ~]$ 

And a couple more

[ccoupe@localhost ~]$ sudo dnf install pango-devel libjpeg-devel librsvg-devel
Last metadata expiration check: 0:40:10 ago on Fri 07 Dec 2018 08:46:23 PM MST.
Package pango-devel-1.42.4-1.fc29.x86_64 is already installed.
No match for argument: librsvg-devel
Error: Unable to find a match
[ccoupe@localhost ~]$ sudo dnf install pango-devel libjpeg-devel librsvg2-devel
Last metadata expiration check: 0:40:19 ago on Fri 07 Dec 2018 08:46:23 PM MST.
Package pango-devel-1.42.4-1.fc29.x86_64 is already installed.
Dependencies resolved.
================================================================================
 Package                   Arch         Version             Repository     Size
================================================================================
Installing:
 librsvg2-devel            x86_64       2.44.9-1.fc29       updates        41 k
 libjpeg-turbo-devel       x86_64       2.0.0-1.fc29        fedora        103 k
Upgrading:
 librsvg2                  x86_64       2.44.9-1.fc29       updates       1.3 M

Transaction Summary
================================================================================
Install  2 Packages
Upgrade  1 Package

Total download size: 1.5 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): librsvg2-devel-2.44.9-1.fc29.x86_64.rpm   31 kB/s |  41 kB     00:01    
(2/3): libjpeg-turbo-devel-2.0.0-1.fc29.x86_64.  64 kB/s | 103 kB     00:01    
(3/3): librsvg2-2.44.9-1.fc29.x86_64.rpm        625 kB/s | 1.3 MB     00:02    
--------------------------------------------------------------------------------
Total                                           315 kB/s | 1.5 MB     00:04     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
Upgrade: librsvg2-2.44.9-1.fc29.x86_64
  Upgrading        : librsvg2-2.44.9-1.fc29.x86_64                          1/4 
Upgrade: librsvg2-2.44.9-1.fc29.x86_64
Installed: librsvg2-devel-2.44.9-1.fc29.x86_64
  Installing       : librsvg2-devel-2.44.9-1.fc29.x86_64                    2/4 
Installed: librsvg2-devel-2.44.9-1.fc29.x86_64
Installed: libjpeg-turbo-devel-2.0.0-1.fc29.x86_64
  Installing       : libjpeg-turbo-devel-2.0.0-1.fc29.x86_64                3/4 
Installed: libjpeg-turbo-devel-2.0.0-1.fc29.x86_64
Upgraded: librsvg2-2.44.6-1.fc29.x86_64
  Cleanup          : librsvg2-2.44.6-1.fc29.x86_64                          4/4 
Upgraded: librsvg2-2.44.6-1.fc29.x86_64
  Running scriptlet: librsvg2-2.44.6-1.fc29.x86_64                          4/4 
  Verifying        : librsvg2-devel-2.44.9-1.fc29.x86_64                    1/4 
  Verifying        : libjpeg-turbo-devel-2.0.0-1.fc29.x86_64                2/4 
  Verifying        : librsvg2-2.44.9-1.fc29.x86_64                          3/4 
  Verifying        : librsvg2-2.44.6-1.fc29.x86_64                          4/4 

Upgraded:
  librsvg2-2.44.9-1.fc29.x86_64                                                 

Installed:
  librsvg2-devel-2.44.9-1.fc29.x86_64  libjpeg-turbo-devel-2.0.0-1.fc29.x86_64 

Complete!
[ccoupe@localhost ~]$ 

Now get some gems.

[ccoupe@localhost ~]$ sudo dnf install pango-devel libjpeg-devel librsvg-devel
Last metadata expiration check: 0:40:10 ago on Fri 07 Dec 2018 08:46:23 PM MST.
Package pango-devel-1.42.4-1.fc29.x86_64 is already installed.
No match for argument: librsvg-devel
Error: Unable to find a match
[ccoupe@localhost ~]$ sudo dnf install pango-devel libjpeg-devel librsvg2-devel
Last metadata expiration check: 0:40:19 ago on Fri 07 Dec 2018 08:46:23 PM MST.
Package pango-devel-1.42.4-1.fc29.x86_64 is already installed.
Dependencies resolved.
================================================================================
 Package                   Arch         Version             Repository     Size
================================================================================
Installing:
 librsvg2-devel            x86_64       2.44.9-1.fc29       updates        41 k
 libjpeg-turbo-devel       x86_64       2.0.0-1.fc29        fedora        103 k
Upgrading:
 librsvg2                  x86_64       2.44.9-1.fc29       updates       1.3 M

Transaction Summary
================================================================================
Install  2 Packages
Upgrade  1 Package

Total download size: 1.5 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): librsvg2-devel-2.44.9-1.fc29.x86_64.rpm   31 kB/s |  41 kB     00:01    
(2/3): libjpeg-turbo-devel-2.0.0-1.fc29.x86_64.  64 kB/s | 103 kB     00:01    
(3/3): librsvg2-2.44.9-1.fc29.x86_64.rpm        625 kB/s | 1.3 MB     00:02    
--------------------------------------------------------------------------------
Total                                           315 kB/s | 1.5 MB     00:04     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
Upgrade: librsvg2-2.44.9-1.fc29.x86_64
  Upgrading        : librsvg2-2.44.9-1.fc29.x86_64                          1/4 
Upgrade: librsvg2-2.44.9-1.fc29.x86_64
Installed: librsvg2-devel-2.44.9-1.fc29.x86_64
  Installing       : librsvg2-devel-2.44.9-1.fc29.x86_64                    2/4 
Installed: librsvg2-devel-2.44.9-1.fc29.x86_64
Installed: libjpeg-turbo-devel-2.0.0-1.fc29.x86_64
  Installing       : libjpeg-turbo-devel-2.0.0-1.fc29.x86_64                3/4 
Installed: libjpeg-turbo-devel-2.0.0-1.fc29.x86_64
Upgraded: librsvg2-2.44.6-1.fc29.x86_64
  Cleanup          : librsvg2-2.44.6-1.fc29.x86_64                          4/4 
Upgraded: librsvg2-2.44.6-1.fc29.x86_64
  Running scriptlet: librsvg2-2.44.6-1.fc29.x86_64                          4/4 
  Verifying        : librsvg2-devel-2.44.9-1.fc29.x86_64                    1/4 
  Verifying        : libjpeg-turbo-devel-2.0.0-1.fc29.x86_64                2/4 
  Verifying        : librsvg2-2.44.9-1.fc29.x86_64                          3/4 
  Verifying        : librsvg2-2.44.6-1.fc29.x86_64                          4/4 

Upgraded:
  librsvg2-2.44.9-1.fc29.x86_64                                                 

Installed:
  librsvg2-devel-2.44.9-1.fc29.x86_64  libjpeg-turbo-devel-2.0.0-1.fc29.x86_64 

Complete!
[ccoupe@localhost ~]$ ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [x86_64-linux]
[ccoupe@localhost ~]$ ^C
[ccoupe@localhost ~]$ gem list -l

*** LOCAL GEMS ***

bigdecimal (default: 1.2.8)
bundler (default: 1.16.6)
bundler-unload (1.0.2)
did_you_mean (1.0.0)
executable-hooks (1.6.0)
gem-wrappers (1.4.0)
io-console (default: 0.4.5)
json (default: 1.8.3.1)
minitest (5.8.5)
net-telnet (0.1.1)
power_assert (0.2.6)
psych (default: 2.1.0.1)
rake (10.4.2)
rdoc (default: 4.2.1)
rubygems-bundler (1.4.5)
rvm (1.11.3.9)
test-unit (3.1.5)
[ccoupe@localhost ~]$ gem install ffi --no-doc
Fetching: ffi-1.9.25.gem (100%)
Building native extensions. This could take a while...
Successfully installed ffi-1.9.25
1 gem installed
[ccoupe@localhost ~]$ gem install sqlite3 chipmunk byebug --no-doc
Fetching: sqlite3-1.3.13.gem (100%)
Building native extensions. This could take a while...
Successfully installed sqlite3-1.3.13
Fetching: chipmunk-6.1.3.4.gem (100%)
Building native extensions. This could take a while...
Successfully installed chipmunk-6.1.3.4
Fetching: byebug-10.0.2.gem (100%)
Building native extensions. This could take a while...
Successfully installed byebug-10.0.2
3 gems installed
[ccoupe@localhost ~]$ gem install yajl-ruby nokogiri picky --no-doc
Fetching: yajl-ruby-1.4.1.gem (100%)
Building native extensions. This could take a while...
Successfully installed yajl-ruby-1.4.1
Fetching: mini_portile2-2.3.0.gem (100%)
Successfully installed mini_portile2-2.3.0
Fetching: nokogiri-1.8.5.gem (100%)
Building native extensions. This could take a while...
Successfully installed nokogiri-1.8.5
Fetching: concurrent-ruby-1.1.3.gem (100%)
Successfully installed concurrent-ruby-1.1.3
Fetching: i18n-1.1.1.gem (100%)
Successfully installed i18n-1.1.1
Fetching: thread_safe-0.3.6.gem (100%)
Successfully installed thread_safe-0.3.6
Fetching: tzinfo-1.2.5.gem (100%)
Successfully installed tzinfo-1.2.5
Fetching: activesupport-5.2.2.gem (100%)
Successfully installed activesupport-5.2.2
Fetching: multi_json-1.13.1.gem (100%)
Successfully installed multi_json-1.13.1
Fetching: url_escape-2009.06.24.gem (100%)
Building native extensions. This could take a while...
Successfully installed url_escape-2009.06.24
Fetching: rack_fast_escape-2009.06.24.gem (100%)
============================================================

Thank you for installing RackFastEscape!

============================================================
Successfully installed rack_fast_escape-2009.06.24
Fetching: picky-4.31.3.gem (100%)
Building native extensions. This could take a while...
Successfully installed picky-4.31.3
12 gems installed
[ccoupe@localhost ~]$ 

Building on Debian - out of date

git clone git://github.com/shoes3/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 Ubuntu

# Install dependencies
sudo apt-get install git-core libcairo2-dev libpixman-1-dev libpango1.0-dev libgif-dev libjpeg-dev libgtk2.0-dev libsqlite3-dev libxslt1-dev makeself libxslt-dev libxml2-dev

# Install RVM (see https://rvm.beginrescueend.com/rvm/install/ for detailed instruction) 
bash < <(curl -s https://rvm.beginrescueend.com/install/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 2.1.5
rvm use 1.9.2
gem install bundler

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

Ubuntu notes

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

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).

Clone this wiki locally