-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ruby 2.4.0 #403
Comments
+1 Sure. Why not. (Despite all appearances that AWS has abandoned support for OpsWorks improvements on the old stack.) |
Hi, I would like to know if it is possible to have apps that use different Ruby versions in the same stack. I would like to deploy two apps. One uses Ruby 2.1.8 and the other one Ruby 2.4.0 Thanks. |
@interpegasus I don't see a clean way to pull that off. The Ruby version is a setting on a layer, and there's no way to override that per app. To be honest, I don't even see a dirty way to pull that off. |
@githuesch Thanks for the fast reply. http://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-ruby.html |
@githuesch Any word on this? How can the community help out with this going forward to ensure we're not lagging behind :) |
@voxxit The only thing the community can really do is to express the need for Ruby 2.4 with +1's in this thread. This helps us prioritize this task against others. |
Well, this is a +1 with a bump. |
+1 it is then. |
+1 |
2 similar comments
+1 |
+1 |
+1, just updated my app to run on 2.4.1, but just realized i can't run it on my opsworks setup. |
+1 |
1 similar comment
👍 |
(Note: This is only for Ubuntu 14.04. Other OSes are on your own...) I was able to get this to work on my own. I had to do a few things. First, you need a .deb for Ruby 2.4.1. In order to figure this out, I downloaded the Ruby 2.3.4 .deb, extracted it (.debs are .ar files with a control.tar.gz and data.tar.gz inside), and opened up the apt-get install gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.1.tar.gz
tar zxfv ruby-2.4.1.tar.gz
cd ruby-2.4.1/
./configure --prefix=/usr/local --enable-shared --disable-rpath --disable-install-doc
make I noticed the deb was built with fpm, so I installed that to do my eventual packaging: apt-get install ruby ruby-dev
gem install --no-ri --no-rdoc fpm One last thing I needed to duplicate the build was to get the right post-install script. I created a #! /usr/bin/env sh
/sbin/ldconfig OK, so now we're ready to package things up. make install DESTDIR=/tmp/installdir/
fpm -s dir -t deb -n opsworks-ruby2.4 -v 2.4.1-1 -C /tmp/installdir --after-install=./postinstall Out pops a opsworks-ruby2.4_2.4.1-1_amd64.deb file for you to use. You can use https://www.dropbox.com/s/1hjlnj6x0lco0d6/opsworks-ruby2.4_2.4.1-1_amd64.deb?dl=0 To actually use this, you need to get OpsWorks to download from a URL you control. The default URL can be overridden via stack JSON. So, create an S3 bucket and upload the .deb under a "opsworks_commons": {
"assets_url": "https://my-opsworks-bucket-o-stuff.s3.amazonaws.com"
}, To ensure you don't break things if you don't update the ruby version right away, you can also place the other .debs that OpsWorks pre-built into that bucket at that path. They're available at https://opsworks-instance-assets.s3.amazonaws.com/packages/ubuntu/14.04/opsworks-ruby2.3_2.3.4-1_amd64.deb and you can adjust the URL to grab ones for other versions of Ruby that you have in use currently. OK, last part is to get OpsWorks to use this version of Ruby. While they don't have a preset for 2.4, you can configure it yourself. So, add this to your stack JSON: "ruby" : {
"major_version": "2",
"minor_version": "4",
"patch_version": "1",
"pkgrelease": "1",
"full_version": "2.4",
"version": "2.4.1"
}, That will override whatever version you have set for your layer. You should be able to deploy and be on 2.4! It worked for me, but obviously I can't guarantee success for others. Also, if you have other layer types that depend on other binaries (Node, PHP, etc, and probably MySQL/Memcached too), you'll need to upload those .debs to your bucket as well (since you're overriding the TL;DR I built a custom binary .deb for Ruby 2.4.1, hosted that on an S3 bucket, and configured my stack JSON to use that binary and ruby version. |
+1 |
+1 |
Now 2.5.0 is coming .... https://www.ruby-lang.org/en/news/2017/10/10/ruby-2-5-0-preview1-released/ |
+1 |
10 similar comments
+1 |
+1 |
+1 |
+1 |
+1 |
+1 |
+1 |
+1 |
+1 |
+1 |
Closing for now as we have a request for Ruby 2.5 tracking here: #421 |
Ruby 2.4.0 (patchlevel 0) was released on 2016-12-25. Just curious when we can expect to see it added to Chef 11?
Something tells me this should be automated, at least as a beta/opt-in feature... :-)
The text was updated successfully, but these errors were encountered: