Christopher Baines <m...@cbaines.net> writes:
> Divan Santana <di...@santanas.co.za> writes:
>> Divan Santana <di...@santanas.co.za> writes:
>>> Is there a simple way of getting these gems installed to use guix system
>>> 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?
> I've been putting up with using bundler and rubygems for a little while
> now, although I'd still like to switch to only using Guix packages one
Yes that would be ideal. One day.
> My current workflow when I use Bundler/Rubygems is to using Guix to
> provide the right version of Ruby, and then Direnv to setup the
> This would be a .envrc file that would work for nokogiri.
> use guix --ad-hoc email@example.com gcc-toolchain pkg-config libxml2 libxslt
> layout ruby
> To use this, you'd need to create a file called .envrc with the above 2
> lines, and then run direnv allow to allow it to be loaded. After it
> loads, assuming you're using bundler, you should run gem install
> bundler. This works better than using the Guix package for bundler, as
> that uses a specific Ruby version, which might not be the one you've
> specified in the environment. After bundler is installed, run bundle
> install. When things break, which they will, I just rm -rf .direnv, and
> start again.
> So, in summary.
> # create the .envrc file
> direnv allow
> gem install bundler
This is really awesome and saved the day for me. It works well! I read
up a bit on the above because wasn't that familiar with some of the
direnv magic above.
use guix --ad-hoc firstname.lastname@example.org gcc-toolchain pkg-config libxml2 libxslt
Thanks a lot! This setup also works nicely with emacs-direnv.
However with an old puppet 3 project using ruby 2.1.10 setup using the below I
get these weird
errors. Any idea?
$ cd ~/src/fnb/puppet-main
direnv: loading .envrc
direnv: using guix --ad-hoc email@example.com gcc-toolchain pkg-config libxml2
direnv: export +BUNDLE_BIN +CPLUS_INCLUDE_PATH +C_INCLUDE_PATH +GEM_HOME
+LIBRARY_PATH +PKG_CONFIG_PATH ~GEM_PATH ~PATH
$ cat .envrc
use guix --ad-hoc firstname.lastname@example.org gcc-toolchain pkg-config libxml2 libxslt
$ which ruby
15:36 admin@laptop 0 29602 ~/src/fnb/puppet-main
$ which gem
15:36 admin@laptop 0 34372 ~/src/fnb/puppet-main
$ which bundle
15:37 admin@laptop 0 39143 ~/src/fnb/puppet-main
$ ruby -v
ruby 2.1.10p492 (2016-04-01 revision 54464) [x86_64-linux]
15:37 admin@laptop 0 48688 ~/src/fnb/puppet-main
$ which irb
15:37 admin@laptop 0 53463 ~/src/fnb/puppet-main
`mkdir': Permission denied @ dir_s_mkdir -
`block (2 levels) in mkdir_p'
Was getting similar issues when running bundle there.