Giter VIP home page Giter VIP logo

Comments (20)

johnl avatar johnl commented on July 19, 2024

I synced to upstream debian packaging for 2.1.1 - looks like some things got broken. Investigating now.

from deb-ruby2.1.

felixbuenemann avatar felixbuenemann commented on July 19, 2024

Thanks, John!

from deb-ruby2.1.

johnl avatar johnl commented on July 19, 2024

Were any other gems removed from /usr/lib/ruby/gems/2.1.0/gems? The ruby 2.1.0 package provided no gems. The ruby 2.1.1 package started including gemspecs for rake, minitest, psych, test-unit, io-console, bigdecimal, json and rdoc - it's possible (though unlikely) that the package upgrade wiped out /usr/lib/ruby/gems/2.1.0 - just trying to figure what happened.

from deb-ruby2.1.

felixbuenemann avatar felixbuenemann commented on July 19, 2024

Hmm, I only specifically looked for bundler. But it's possible that other's were removed too. I'll try to find a system that's still running the 2.1.0 packages. bundler and it's dependencies are the only globally installed gems on our servers, the rest is managed trough bundler in the apps' own bundle directories.

from deb-ruby2.1.

johnl avatar johnl commented on July 19, 2024

Can you get me a dpkg -L libruby2.1 from a system running 2.1.0 too please? I'll have to fiddling around a bit to get a listing myself now, thanks.

from deb-ruby2.1.

felixbuenemann avatar felixbuenemann commented on July 19, 2024

Here's a listing from libruby2.1-2.1.0-1bbox1~precise2:
https://gist.github.com/felixbuenemann/f32bd2a64157dd0fb880

from deb-ruby2.1.

felixbuenemann avatar felixbuenemann commented on July 19, 2024

Changes in libruby2.1-2.1.1-1bbox2~precise1:

diff -u libruby2.1-2.1.0-1bbox1~precise2-contents.txt libruby2.1-2.1.1-1bbox2~precise1-contents.txt
--- libruby2.1-2.1.0-1bbox1~precise2-contents.txt
+++ libruby2.1-2.1.1-1bbox2~precise1-contents.txt
@@ -115,6 +115,33 @@ dpkg -L libruby2.1
 /usr/lib/x86_64-linux-gnu/ruby/2.1.0/rbconfig/sizeof.so
 /usr/lib/x86_64-linux-gnu/ruby/2.1.0/readline.so
 /usr/lib/ruby
+/usr/lib/ruby/gems
+/usr/lib/ruby/gems/2.1.0
+/usr/lib/ruby/gems/2.1.0/gems
+/usr/lib/ruby/gems/2.1.0/gems/rdoc-4.1.0
+/usr/lib/ruby/gems/2.1.0/gems/rdoc-4.1.0/bin
+/usr/lib/ruby/gems/2.1.0/gems/rdoc-4.1.0/bin/ri
+/usr/lib/ruby/gems/2.1.0/gems/rdoc-4.1.0/bin/rdoc
+/usr/lib/ruby/gems/2.1.0/gems/test-unit-2.1.1.0
+/usr/lib/ruby/gems/2.1.0/gems/test-unit-2.1.1.0/bin
+/usr/lib/ruby/gems/2.1.0/gems/test-unit-2.1.1.0/bin/testrb
+/usr/lib/ruby/gems/2.1.0/gems/rake-10.1.0
+/usr/lib/ruby/gems/2.1.0/gems/rake-10.1.0/bin
+/usr/lib/ruby/gems/2.1.0/gems/rake-10.1.0/bin/rake
+/usr/lib/ruby/gems/2.1.0/doc
+/usr/lib/ruby/gems/2.1.0/cache
+/usr/lib/ruby/gems/2.1.0/specifications
+/usr/lib/ruby/gems/2.1.0/specifications/default
+/usr/lib/ruby/gems/2.1.0/specifications/default/json-1.8.1.gemspec
+/usr/lib/ruby/gems/2.1.0/specifications/default/minitest-4.7.5.gemspec
+/usr/lib/ruby/gems/2.1.0/specifications/default/rdoc-4.1.0.gemspec
+/usr/lib/ruby/gems/2.1.0/specifications/default/test-unit-2.1.1.0.gemspec
+/usr/lib/ruby/gems/2.1.0/specifications/default/bigdecimal-1.2.4.gemspec
+/usr/lib/ruby/gems/2.1.0/specifications/default/psych-2.0.3.gemspec
+/usr/lib/ruby/gems/2.1.0/specifications/default/io-console-0.4.2.gemspec
+/usr/lib/ruby/gems/2.1.0/specifications/default/rake-10.1.0.gemspec
+/usr/lib/ruby/gems/2.1.0/build_info
+/usr/lib/ruby/gems/2.1.0/extensions
 /usr/lib/ruby/vendor_ruby
 /usr/lib/ruby/vendor_ruby/2.1.0
 /usr/lib/ruby/2.1.0

from deb-ruby2.1.

felixbuenemann avatar felixbuenemann commented on July 19, 2024

I think the problem is that the gem home has changed from 2.1.0:

ruby2.1 -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux-gnu]
gem2.1 which bundler
/var/lib/gems/2.1.0/gems/bundler-1.5.3/lib/bundler.rb

vs. 2.1.1:

ruby2.1 -v
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux-gnu]
gem2.1 which bundler
/usr/lib/ruby/gems/2.1.0/gems/bundler-1.5.3/lib/bundler.rb

from deb-ruby2.1.

felixbuenemann avatar felixbuenemann commented on July 19, 2024

I've noticed another difference in 2.1.1: gem binstubs no longer get installed into /usr/local/bin but into /usr/bin.

from deb-ruby2.1.

johnl avatar johnl commented on July 19, 2024

I'm wondering how best to deal with these problems. One time I had a post-install script handle migrating the gems to the new location, but it's problematic in many ways.

Am looking into how to configure rubygems to use the two paths as sources for gems, if it's possible.

Is intalling into /usr/bin a problem though? the old binaries will still work and the new ones should take precedence (and presumably it's new Debian policy and not a bug - will investigate)

from deb-ruby2.1.

felixbuenemann avatar felixbuenemann commented on July 19, 2024

Having gem binaries in both places can cause unintended problems. Eg. you might get a wrapper that still points to another ruby version, if /usr/local/bin happens to be before /usr/bin in your path.

Have newer ubuntu versions adopted the new package layout? – I'm wondering if the gains you get from using the upstream package source is worth the trouble.

I think PPAs should mirror the distribution packages' directory and config file layout as close as possible, to keep upgrade pains to a minimum.

One potential caveat could be, that if you change the directory layout now and at a later point an upgrade to a newer ubuntu version is done, which might ship with a newer ruby than provided by the ppa, it would break in similar ways if it doesn't follow the layout from the upstream debian packages.

from deb-ruby2.1.

johnl avatar johnl commented on July 19, 2024

"I think PPAs should mirror the distribution packages' directory and config file layout as close as possible" - ok, yes, agreed. Good policy. Thanks for the sanity check.

I'll check how it's done in Trusty - they might be using the new layout already, but I'll revert the behaviour for these existing packages.

from deb-ruby2.1.

johnl avatar johnl commented on July 19, 2024

actually, I think I've figured out a better solution. The configs for /var/lib/gems and /usr/local/bin were moved to another package named rubygems-integration, which I'm now doing a test build for Precise. Could you try installing it @felixbuenemann when it becomes available (launchpad says an hour to build). I'll be back in the morning to test myself anyway.

from deb-ruby2.1.

felixbuenemann avatar felixbuenemann commented on July 19, 2024

I'm off to bed myself, but I'll check it in the morning.

from deb-ruby2.1.

johnl avatar johnl commented on July 19, 2024

rubygems-integration does fix the gem install path (though it switches it back to /var/lib so the gems in /usr/lib disappear, but these are experimental packages after all). I'll make ruby2.1 packages depend on rubygems-integration.

I can't reproduce the problem of binaries going in /usr/bin - my bundle bin went in /usr/local/bin using 2.1.1-1bbox2~precise1 (and still do so with the rubygems-integration package).

from deb-ruby2.1.

felixbuenemann avatar felixbuenemann commented on July 19, 2024

The rubygems-integration package seems to do the trick. Both the gem and bin path are back to normal.

I also tried the latest daily build of Trusty Tahr server, which ships with ruby1.9.1 and ruby2.0. Strangely the 14.04 ruby package, which is also a dependency of ruby2.0, depends on ruby1.9.1, so installing ruby2.0 also installs ruby1.9.1. I guess that's the same problem you ran into with the ruby dependency.

from deb-ruby2.1.

felixbuenemann avatar felixbuenemann commented on July 19, 2024

Btw. if you didn't notice the path problem: Maybe you didn't uninstall the old /usr/local/bin stubs and had /usr/local/bin before /usr/bin in your path? I tried uninstalling bundler, than rubygems-integration and reinstalled bundler and it was back to /usr/bin, while with the rubygems-integration package installed it was using /usr/local/bin.

from deb-ruby2.1.

johnl avatar johnl commented on July 19, 2024

Nah, I tested it on a completely fresh Ubuntu precise install, and I looked in /usr/local/bin to check.

The rubygems-integration package does explicitly list /usr/local/bin as a binaries install path now, so whatever happened for you the first time around shouldn't happen again now.

from deb-ruby2.1.

johnl avatar johnl commented on July 19, 2024

Should be fixed in ruby2.1 2.1.1-2bbox3 (which depends on rubygems-integration, which is available for all releases now). Could you please test and confirm? Thanks.

from deb-ruby2.1.

felixbuenemann avatar felixbuenemann commented on July 19, 2024

Looks good to me. Tested on two servers and the old paths are properly picked up.

from deb-ruby2.1.

Related Issues (12)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.