From mboxrd@z Thu Jan 1 00:00:00 1970 From: Divan Santana Subject: Re: using guix for ruby development Date: Thu, 15 Feb 2018 14:54:15 +0200 Message-ID: <877eretnuw.fsf@santanas.co.za> References: <87a7wato8i.fsf@santanas.co.za> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:39347) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1emJO3-0006dS-Rh for help-guix@gnu.org; Thu, 15 Feb 2018 08:15:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1emJO1-00016G-4a for help-guix@gnu.org; Thu, 15 Feb 2018 08:15:43 -0500 Received: from outmail148112.authsmtp.co.uk ([62.13.148.112]:63375) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1emJO0-00014M-Ju for help-guix@gnu.org; Thu, 15 Feb 2018 08:15:41 -0500 Received: from mail-c245.authsmtp.com (mail-c245.authsmtp.com [62.13.128.245]) by punt24.authsmtp.com. (8.15.2/8.15.2) with ESMTP id w1FCspcI079936 for ; Thu, 15 Feb 2018 12:54:51 GMT (envelope-from divan@santanas.co.za) Received: from mail.santanas.co.za ([156.0.193.126]) (authenticated bits=0) by mail.authsmtp.com (8.15.2/8.15.2) with ESMTPSA id w1FCsSoh042305 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Thu, 15 Feb 2018 12:54:50 GMT (envelope-from divan@santanas.co.za) Received: from authenticated-user (mail.santanas.co.za [156.0.193.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.santanas.co.za (Postfix) with ESMTPSA id 201F420689 for ; Thu, 15 Feb 2018 14:54:24 +0200 (SAST) In-reply-to: <87a7wato8i.fsf@santanas.co.za> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: help-guix@gnu.org Divan Santana writes: > Hi all, > > So I'm *trying* to use guix on Parabola Linux to provide the rubies and > replace some other functionality of like chruby for instance. > > I'm a bit of a noob with guix and even ruby, so it's a bit of a > challenge. > > I've read through these nice notes[1] by Pjotr. The answers I'm looking > for, may well be in there but I might have missed it. > > [1]: > - https://gitlab.com/pjotrp/guix-notes/blob/master/RUBY.org > - https://gitlab.com/pjotrp/guix-notes/blob/master/RUBYGEMS-Nokogir= i.org > > I've also used the linked in script[2] which helps. > > [2]: https://gitlab.com/pjotrp/guix-notes/blob/master/scripts/ruby-guix= -env > > Anyway the issue: > > $ gem env > RubyGems Environment: > - RUBYGEMS VERSION: 2.6.14 > - RUBY VERSION: 2.4.3 (2017-12-14 patchlevel 205) [x86_64-linux] > - INSTALLATION DIRECTORY: /home/admin/.gem/sx7ih0vgp7q8zj7k58xjvnp3= yghig0ll-ruby-2.4.3/2.4.0 > - USER INSTALLATION DIRECTORY: /home/admin/.gem/ruby/2.4.0 > - RUBY EXECUTABLE: /gnu/store/sx7ih0vgp7q8zj7k58xjvnp3yghig0ll-ruby= -2.4.3/bin/ruby > - EXECUTABLE DIRECTORY: /home/admin/.gem/sx7ih0vgp7q8zj7k58xjvnp3yg= hig0ll-ruby-2.4.3/2.4.0/bin > - SPEC CACHE DIRECTORY: /home/admin/.gem/sx7ih0vgp7q8zj7k58xjvnp3yg= hig0ll-ruby-2.4.3/specs > - SYSTEM CONFIGURATION DIRECTORY: /gnu/store/sx7ih0vgp7q8zj7k58xjvn= p3yghig0ll-ruby-2.4.3/etc > - RUBYGEMS PLATFORMS: > - ruby > - x86_64-linux > - GEM PATHS: > - /home/admin/.gem/sx7ih0vgp7q8zj7k58xjvnp3yghig0ll-ruby-2.4.3/2= .4.0 > - /home/admin/.guix-profile/lib/ruby/vendor_ruby > - /home/admin/.guix-profile/lib/ruby/gems/2.4.0/ > - GEM CONFIGURATION: > - :update_sources =3D> true > - :verbose =3D> true > - :backtrace =3D> false > - :bulk_threshold =3D> 1000 > - "gem" =3D> "--no-rdoc" > - REMOTE SOURCES: > - https://rubygems.org/ > - SHELL PATH: > - /home/admin/.gem/sx7ih0vgp7q8zj7k58xjvnp3yghig0ll-ruby-2.4.3/2= .4.0/bin > - /home/admin/src/ds-config/guile/scripts > - /home/admin/src/ds-config/bin > - /home/admin/.node_modules/node_modules/.bin > - /home/admin/.guix-profile/bin > - /home/admin/src/ds-config/guile/scripts > - /home/admin/src/ds-config/bin > - /home/admin/.node_modules/node_modules/.bin > - /home/admin/.guix-profile/bin > - /usr/local/sbin > - /usr/local/bin > - /usr/bin > - /usr/lib/jvm/default/bin > - /usr/bin/site_perl > - /usr/bin/vendor_perl > - /usr/bin/core_perl > > So I'm in a ruby project. I type `bundle install` to install the gems. > > It goes and fetches the missing gems and installs them in /home/admin/.= gem/sx7ih0vgp7q8zj7k58xjvnp3yghig0ll-ruby-2.4.3/2.4.0/gems/ > > That's great. I fire up the project[3] with: > > [3]: https://gitlab.com/gitlab-com/gitlab-docs (using an older commit > because ruby25 is not yet in guix repos. > > $ bundle exec nanoc live > > Captain! We=E2=80=99ve been hit! > > LoadError: liblzma.so.5: cannot open shared object file: No such file= or directory - /home/admin/.gem/sx7ih0vgp7q8zj7k58xjvnp3yghig0ll-ruby-2.= 4.3/2.4.0/gems/nokogiri-1.7.2/lib/nokogiri/nokogiri.so > > $ ldd /home/admin/.gem/sx7ih0vgp7q8zj7k58xjvnp3yghig0ll-ruby-2.4.3/2.= 4.0/gems/nokogiri-1.7.2/lib/nokogiri/nokogiri.so > linux-vdso.so.1 (0x00007ffff6b10000) > libm.so.6 =3D> /usr/lib/libm.so.6 (0x00007f469080f000) > libdl.so.2 =3D> /usr/lib/libdl.so.2 (0x00007f469060b000) > liblzma.so.5 =3D> /usr/lib/liblzma.so.5 (0x00007f46903e5000) > libz.so.1 =3D> /usr/lib/libz.so.1 (0x00007f46901ce000) > libpthread.so.0 =3D> /usr/lib/libpthread.so.0 (0x00007f468ffb= 0000) > libcrypt.so.1 =3D> /usr/lib/libcrypt.so.1 (0x00007f468fd78000= ) > libc.so.6 =3D> /usr/lib/libc.so.6 (0x00007f468f9c1000) > /usr/lib64/ld-linux-x86-64.so.2 (0x00007f4690f97000) > > Guessing the reason is because it seems to compile against the OS syste= m > and not the "guix system". And that could cause problems? > > Other gems also are like this. > > $ ldd /home/admin/.gem/sx7ih0vgp7q8zj7k58xjvnp3yghig0ll-ruby-2.4.3/2.= 4.0/gems/ffi-1.9.18/lib/ffi_c.so > linux-vdso.so.1 (0x00007ffd1bdf1000) > libffi.so.6 =3D> /usr/lib/libffi.so.6 (0x00007f6af531e000) > libpthread.so.0 =3D> /usr/lib/libpthread.so.0 (0x00007f6af510= 0000) > libdl.so.2 =3D> /usr/lib/libdl.so.2 (0x00007f6af4efc000) > libcrypt.so.1 =3D> /usr/lib/libcrypt.so.1 (0x00007f6af4cc4000= ) > libm.so.6 =3D> /usr/lib/libm.so.6 (0x00007f6af4978000) > libc.so.6 =3D> /usr/lib/libc.so.6 (0x00007f6af45c1000) > /usr/lib64/ld-linux-x86-64.so.2 (0x00007f6af574c000) > > I could install ruby-nokogiri via guix but that provides 1.8 and I need > 1.7. :( > > Is there a simple way of getting these gems installed to use guix syste= m > libs so things don't break? So for this particular project I managed to get it working via changing the Gemfile to up the version on nokogiri to 1.8 so I can use the nokogiri from guix. Did the same with ffi which had similar issue. That's not ideal as one may need a diff version or the gem may not be packaged yet. Any thoughts? -- Divan