Difference between yum install --enablerepo=remi-php70 php and yum install --enablerepo=remi php70-php - yum

With yum install --enablerepo=remi-php70 php, I get
[/]# yum list installed | grep php
gd3php.x86_64 2.3.3-7.el7.remi #remi-safe
php.x86_64 7.0.33-35.el7.remi #remi-php70
php-bcmath.x86_64 7.0.33-35.el7.remi #remi-php70
php-cli.x86_64 7.0.33-35.el7.remi #remi-php70
php-common.x86_64 7.0.33-35.el7.remi #remi-php70
php-devel.x86_64 7.0.33-35.el7.remi #remi-php70
php-fpm.x86_64 7.0.33-35.el7.remi #remi-php70
php-gd.x86_64 7.0.33-35.el7.remi #remi-php70
php-gmp.x86_64 7.0.33-35.el7.remi #remi-php70
php-intl.x86_64 7.0.33-35.el7.remi #remi-php70
php-json.x86_64 7.0.33-35.el7.remi #remi-php70
php-mbstring.x86_64 7.0.33-35.el7.remi #remi-php70
php-mcrypt.x86_64 7.0.33-35.el7.remi #remi-php70
php-mysqlnd.x86_64 7.0.33-35.el7.remi #remi-php70
php-opcache.x86_64 7.0.33-35.el7.remi #remi-php70
php-pdo.x86_64 7.0.33-35.el7.remi #remi-php70
php-pear.noarch 1:1.10.13-1.el7.remi #remi-php70
php-pecl-apcu.x86_64 5.1.22-1.el7.remi.7.0 #remi-php70
php-pecl-apcu-bc.x86_64 1.0.5-1.el7.remi.7.0 #remi-php70
php-pecl-imagick-im6.x86_64 3.7.0-1.el7.remi.7.0 #remi-php70
php-process.x86_64 7.0.33-35.el7.remi #remi-php70
php-xml.x86_64 7.0.33-35.el7.remi #remi-php70
With yum install --enablerepo=remi php70-php, I get
[/]# yum list installed | grep php
gd3php.x86_64 2.3.3-7.el7.remi #remi
php70-php.x86_64 7.0.33-35.el7.remi #remi
php70-php-bcmath.x86_64 7.0.33-35.el7.remi #remi
php70-php-cli.x86_64 7.0.33-35.el7.remi #remi
php70-php-common.x86_64 7.0.33-35.el7.remi #remi
php70-php-devel.x86_64 7.0.33-35.el7.remi #remi
php70-php-fpm.x86_64 7.0.33-35.el7.remi #remi
php70-php-gd.x86_64 7.0.33-35.el7.remi #remi
php70-php-gmp.x86_64 7.0.33-35.el7.remi #remi
php70-php-intl.x86_64 7.0.33-35.el7.remi #remi
php70-php-json.x86_64 7.0.33-35.el7.remi #remi
php70-php-mbstring.x86_64 7.0.33-35.el7.remi #remi
php70-php-mcrypt.x86_64 7.0.33-35.el7.remi #remi
php70-php-mysqlnd.x86_64 7.0.33-35.el7.remi #remi
php70-php-opcache.x86_64 7.0.33-35.el7.remi #remi
php70-php-pdo.x86_64 7.0.33-35.el7.remi #remi
php70-php-pear.noarch 1:1.10.13-1.el7.remi #remi
php70-php-pecl-apcu.x86_64 5.1.22-1.el7.remi #remi
php70-php-pecl-apcu-bc.x86_64 1.0.5-1.el7.remi #remi
php70-php-pecl-imagick-im6.x86_64 3.7.0-1.el7.remi #remi
php70-php-process.x86_64 7.0.33-35.el7.remi #remi
php70-php-xml.x86_64 7.0.33-35.el7.remi #remi
php70-runtime.x86_64 2.0-1.el7.remi #remi
So far I found some differences
yum install --enablerepo=remi php70-php installs php70-runtime additionally.
yum install --enablerepo=remi php70-php installs locally, like its php-fpm.conf locates at /etc/opt/remi/php70/php-fpm.conf whereas in the other senario, it locates at /etc/php-fpm.conf.
Just by the fact that yum install --enablerepo=remi php70-php installs its version separately, it feels like it manages its version better. It's similar to current project management trend, like now we install nodejs project dependencies locally.
Was I right above? And are there any other practical and crucial differences, like in the sense of upgrading php version later?

This is explained in the repository FAQ
php-* are for default/single version installation (replace default system packages)
php70-php-* are designed for multiple versions installation simultaneously
For proper installation configuration, the simplest way is to follow the Wizard instructions.
Kind reminders:
PHP 7.0 is EOL since January 2019, even if my repository has security backports I heartily recommend using a supported version
EL-7 is close to its EOL in June 2024, so I heartily recommend using EL-8 or EL-9, especially for modern software, such as recent PHP versions

Related

Rails3 MiniMagick load error on choose_processor

A rails 3.2.13 application is running both on localhost and on server (in development mode). In localhost the application loads an image via carrierwave and MiniMagick properly.
On the server, an error is raised
undefined method `size' for nil:NilClass
, with the full stack leading of as such:
mini_magick (3.7.0) lib/mini_magick.rb:24:in `choose_processor'
mini_magick (3.7.0) lib/mini_magick.rb:64:in `mogrify?'
mini_magick (3.7.0) lib/mini_magick/image.rb:360:in `run_command'
mini_magick (3.7.0) lib/mini_magick/image.rb:171:in `valid?'
mini_magick (3.7.0) lib/mini_magick/image.rb:140:in `create'
mini_magick (3.7.0) lib/mini_magick/image.rb:48:in `read'
mini_magick (3.7.0) lib/mini_magick/image.rb:111:in `block in open'
mini_magick (3.7.0) lib/mini_magick/image.rb:110:in `open'
mini_magick (3.7.0) lib/mini_magick/image.rb:110:in `open'
carrierwave (0.9.0) lib/carrierwave/processing/mini_magick.rb:260:in `manipulate!'
Other postings allude to the fact that it may be
a miniMagick version issue. But the localhost version is the same as the server's, as is carrierwave, rails, OSX...
Based on the module documentation, it appears that no processor is being picked up. Thus the installation may have gone awry.
This question is edited as maybe two issues are at hand: different versions of MiniMagick are spawning different behaviours. Both are now separate questions.
Link your identify, convert and other to /usr/local/bin (or /usr/bin) and it will work.
$ which identify
/whatever/identify
$ sudo ln -s /whatever/identify /usr/local/bin
$ which identify
/usr/local/bin/identify
And you need to install:
gem 'mini_magick', '~> 3.5.0'
The problem lies in Passenger v3, and the way it behaves on start-up with Apache. (Passenger 4 apparently does not have the issue)
The solution is the same in any case as per this proposal by editing end of development and/or production environment files with:
ENV['PATH'] = "/usr/local/bin:#{ENV['PATH']}"

Struggling with deploying Rails 3.1 app with Capistrano

We have multiple applications that are currently being deployed using Ruby 1.8.6 with Capistrano. I know, i know, we're working on the upgrade, but these at least deploy just fine.
We have a new application that is running on Ruby 1.8.7, Rails 3.1.11, and we're trying to get deployment going with Bundler and Capistrano. Our applications are in Subversion, and we've always used :deploy_via=>:checkout so that's what i'm trying to use to start.
The behavior i'm seeing is not computing for me, and i've been searching and tweaking for a day or so now:
➜ bundle exec cap deploy
triggering load callbacks
* 2013-11-06 14:13:31 executing `deploy'
* 2013-11-06 14:13:31 executing `deploy:update'
** transaction: start
* 2013-11-06 14:13:31 executing `deploy:update_code'
executing locally: "svn info https://svn-server.com/path/to/branch --username \"myusername\"--password \"mypassword\"--no-auth-cache -rHEAD"
Authentication realm: <https://svn-server.com:443>
Password for 'myusername--password':
*** [deploy:update_code] rolling back
* executing "rm -rf /path/to/deploy/dir/releases/20131106221344; true"
servers: ["myserver.com"]
What seems like the most important line to me:
executing locally: "svn info https://svn-server.com/path/to/branch --username \"myusername\"--password \"mypassword\"--no-auth-cache -rHEAD"
Questions:
Why does 'svn info' even need to be executed locally, when i'm deploying via checkout?
It looks like i'm being prompted for a password because the username/password in the 'svn info' command is being seriously munged??
I'm specifying those credentials in the normal way:
set :scm_username, 'myusername'
set :scm_password, 'mypassword'
Environment info (relevant gems only):
➜ ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [i686-darwin12.4.0]
➜ gem -v
1.8.25
➜ gem list --local
*** LOCAL GEMS ***
actionmailer (3.1.12, 3.1.11, 3.0.20)
actionpack (3.1.12, 3.1.11, 3.0.20)
activemodel (3.1.12, 3.1.11, 3.0.20)
activerecord (3.1.12, 3.1.11, 3.0.20)
activeresource (3.1.12, 3.1.11, 3.0.20)
activesupport (3.1.12, 3.1.11, 3.0.20)
bundler (1.3.5, 1.3.1)
capistrano (2.15.5, 2.14.2)
multi_json (1.8.2, 1.8.1, 1.7.9, 1.7.8, 1.7.7)
mysql (2.9.1)
net-scp (1.1.2, 1.1.0)
net-sftp (2.1.2, 2.1.1)
net-ssh (2.7.0, 2.6.8, 2.6.6)
net-ssh-gateway (1.2.0)
rack (1.3.10, 1.2.8)
rack-cache (1.2)
rack-mount (0.8.3, 0.6.14)
rack-ssl (1.3.3)
rack-test (0.6.2, 0.5.7)
rails (3.1.11, 3.0.20)
rails-console-tweaks (1.0.1, 1.0.0)
railties (3.1.12, 3.1.11, 3.0.20)
rake (10.1.0, 10.0.3)
rcov (1.0.0)
rdoc (4.0.1, 3.12.2)
rdoc-data (4.0.1, 3.12)
ruby-debug (0.10.4)
ruby-debug-base (0.10.4)
ruby-debug-ide (0.4.9)
rubygems-bundler (1.1.1)
rvm (1.11.3.6)
rvm-capistrano (1.5.1, 1.4.4, 1.4.1)
sprockets (2.0.4)
tzinfo (0.3.38, 0.3.37)
whenever (0.8.4)
wirb (1.0.2, 1.0.1)
wirble (0.1.3)
If there's more info i can post that would help, please let me know.
Any help or guidance would be much appreciated!
try forcing capistrano version 2.15.4 - I heard there was svn bug in the latest version of the 2 branch

Installing/Running Thin Webserver on Rails 3

Having an issue running the "Thin" web server. It looks like installation was successful but when I run "thin start" It appears as though Thin starts to initialize but then cannot find some resources it needs.
Below, is the audit trail from my terminal session. Can someone offer a hand with this? According to the Thin docs, installation was done correctly. Thanks
Rails 3.2.12
ruby 1.9.3
root#pgateway:/var/www/testapp# gem install thin
Fetching: eventmachine-1.0.0.gem (100%)
Building native extensions. This could take a while...
Fetching: daemons-1.1.9.gem (100%)
Fetching: thin-1.5.0.gem (100%)
Building native extensions. This could take a while...
Successfully installed eventmachine-1.0.0
Successfully installed daemons-1.1.9
Successfully installed thin-1.5.0
3 gems installed
root#pgateway:/var/www/testapp# thin start
>> Using rack adapter
>> Thin web server (v1.5.0 codename Knife)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:3000, CTRL+C to stop
/usr/local/rvm/gems/ruby-1.9.3-p385/gems/thin-1.5.0/lib/thin/backends /tcp_server.rb:16:in `connect': cannot load such file -- thin/connection (LoadError)
from /usr/local/rvm/gems/ruby-1.9.3-p385/gems/thin-1.5.0/lib/thin/backends/base.rb:55:in `block in start'
from /usr/local/rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `call'
from /usr/local/rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run_machine'
from /usr/local/rvm/gems/ruby-1.9.3-p385/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run'
from /usr/local/rvm/gems/ruby-1.9.3-p385/gems/thin-1.5.0/lib/thin/backends/base.rb:63:in `start'
from /usr/local/rvm/gems/ruby-1.9.3-p385/gems/thin-1.5.0/lib/thin/server.rb:159:in `start'
from /usr/local/rvm/gems/ruby-1.9.3-p385/gems/thin-1.5.0/lib/thin/controllers/controller.rb:86:in `start'
from /usr/local/rvm/gems/ruby-1.9.3-p385/gems/thin-1.5.0/lib/thin/runner.rb:187:in `run_command'
from /usr/local/rvm/gems/ruby-1.9.3-p385/gems/thin-1.5.0/lib/thin/runner.rb:152:in `run!'
from /usr/local/rvm/gems/ruby-1.9.3-p385/gems/thin-1.5.0/bin/thin:6:in `<top (required)>'
from /usr/local/rvm/gems/ruby-1.9.3-p385/bin/thin:19:in `load'
from /usr/local/rvm/gems/ruby-1.9.3-p385/bin/thin:19:in `<main>'
from /usr/local/rvm/gems/ruby-1.9.3-p385/bin/ruby_noexec_wrapper:14:in `eval'
from /usr/local/rvm/gems/ruby-1.9.3-p385/bin/ruby_noexec_wrapper:14:in `<main>'
You seem to install thin separate from rails
Add it to your gemfile and you should be fine
If you want to use a gem, it must be in your Gemfile. You can solve your problem as follows:
Add the following line to your Gemfile: gem 'thin'
Update your current app's environment: bundle install
Then start server
Try to execute the following command:
cd to/your/rails/app
echo 'gem "thin"' >> Gemfile
thin start
this content from https://github.com/macournoyer/thin/issues/115

Rails 3.2.2 RVM System Wide Capistrano Install Can't Find Gems

I really desperately need help with this issue and am more than a little lost.
I am trying to deploy a new production server using Capistrano Ext to allow for a staging and production server but it fails to run the bundle install --deployment successfully.
The cap staging deploy works fine to an existing Ubuntu system but the new server is a constant fail as follows
my-app$ sh -c 'cd /var/www/html/rails/myapp/releases/20120519174459&& export PATH=/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/opt/local/bin:/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/ruby-1.9.3-p194#global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin && bundle install --deployment'
Fetching gem metadata from http://rubygems.org/......
Fetching gem metadata from http://rubygems.org/..
Installing rake (0.9.2.2)
Gem::LoadError: Could not find rubygems-bundler (>= 0) amongst []
An error occured while installing rake (0.9.2.2), and Bundler cannot continue.
Make sure that `gem install rake -v '0.9.2.2'` succeeds before bundling.
In any other directory the ruby -v and rails -v produce the expected results
my-home$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
my-home$ rails -v
Rails 3.2.2
A listing of the local Gems on the production servershows they are all available
my-home$ gem list
*** LOCAL GEMS ***
actionmailer (3.2.3, 3.2.2)
actionpack (3.2.3, 3.2.2)
active_utils (1.0.3)
activemerchant (1.21.0)
activemodel (3.2.3, 3.2.2)
activerecord (3.2.3, 3.2.2)
activeresource (3.2.3, 3.2.2)
activesupport (3.2.3, 3.2.2)
addressable (2.2.7)
ansi (1.4.2)
arel (3.0.2)
bcrypt-ruby (3.0.1)
bootstrap-sass (2.0.1)
builder (3.0.0)
bundle (0.0.1)
bundler (1.1.3, 1.0.21)
cancan (1.6.7)
capistrano (2.12.0, 2.11.2)
capistrano-ext (1.2.1)
cocaine (0.2.1)
coffee-rails (3.2.2)
coffee-script (2.2.0)
coffee-script-source (1.3.3, 1.2.0)
daemon_controller (1.0.0)
devise (2.0.4)
erubis (2.7.0)
execjs (1.3.2, 1.3.0)
faraday (0.7.6)
fastthread (1.0.7)
haml (3.1.4)
hashie (1.2.0)
highline (1.6.12, 1.6.11)
hike (1.2.1)
i18n (0.6.0)
journey (1.0.3)
jquery-datatables-rails (1.9.1.3)
jquery-rails (2.0.2, 2.0.1)
jquery-ui-rails (0.3.0)
jruby-pageant (1.0.2)
json (1.7.3, 1.6.5)
libv8 (3.3.10.4 x86_64-linux)
mail (2.4.4)
metaclass (0.0.1)
mime-types (1.18, 1.17.2)
minitest (2.11.3)
mocha (0.10.5)
money (3.7.1)
multi_json (1.3.5, 1.1.0)
multipart-post (1.1.5)
mysql2 (0.3.11)
net-scp (1.0.4)
net-sftp (2.0.5)
net-ssh (2.4.0, 2.3.0)
net-ssh-gateway (1.1.0)
nifty-generators (0.4.6)
oauth (0.4.5)
oauth2 (0.5.2)
omniauth (1.0.3)
omniauth-facebook (1.2.0)
omniauth-google (1.0.1)
omniauth-linkedin (0.0.6)
omniauth-oauth (1.0.1)
omniauth-oauth2 (1.0.0)
omniauth-twitter (0.0.8)
orm_adapter (0.0.6)
paperclip (3.0.2)
passenger (3.0.12)
polyamorous (0.5.0)
polyglot (0.3.3)
rack (1.4.1)
rack-cache (1.2)
rack-ssl (1.3.2)
rack-test (0.6.1)
rails (3.2.3, 3.2.2)
railties (3.2.3, 3.2.2)
rake (0.9.2.2)
rdoc (3.12)
RedCloth (4.2.9)
rubygems-bundler (1.0.0)
rvm (1.11.3.3)
sass (3.1.18, 3.1.15)
sass-rails (3.2.5)
simple_form (2.0.1)
simple_oauth (0.1.5)
sprockets (2.1.3, 2.1.2)
sqlite3 (1.3.6)
squeel (1.0.1)
therubyracer (0.10.1, 0.9.10)
thor (0.14.6)
tilt (1.3.3)
timeliness (0.3.4)
treetop (1.4.10)
turn (0.9.4)
twitter (2.2.0)
tzinfo (0.3.33, 0.3.32)
uglifier (1.2.4, 1.2.3)
validates_timeliness (3.0.8)
warden (1.1.1)
will_paginate (3.0.3)
The rvm system wide on the server seems to be correct
my-home$ rvm list
rvm rubies
=* ruby-1.9.3-p194 [ x86_64 ]
# => - current
# =* - current && default
# * - default
my-home$ rvm info
RVM is not a function, selecting rubies with 'rvm use ...' will not work.
You need to change your terminal settings to allow shell login.
Please visit https://rvm.io/workflow/screen/ for example.
ruby-1.9.3-p194:
system:
uname: "Linux totg01 2.6.38-14-generic #58-Ubuntu SMP Tue Mar 27 20:04:55 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux"
bash: "/bin/bash => GNU bash, version 4.2.8(1)-release (x86_64-pc-linux-gnu)"
zsh: " => not installed"
rvm:
version: "rvm 1.13.5 (stable) by Wayne E. Seguin <wayneeseguin#gmail.com>, Michal Papis <mpapis#gmail.com> [https://rvm.io/]"
updated: "4 days 2 hours 5 minutes 13 seconds ago"
ruby:
interpreter: "ruby"
version: "1.9.3p194"
date: "2012-04-20"
platform: "x86_64-linux"
patchlevel: "2012-04-20 revision 35410"
full_version: "ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]"
homes:
gem: "/usr/local/rvm/gems/ruby-1.9.3-p194"
ruby: "/usr/local/rvm/rubies/ruby-1.9.3-p194"
binaries:
ruby: "/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby"
irb: "/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/irb"
gem: "/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/gem"
rake: "/usr/local/rvm/gems/ruby-1.9.3-p194/bin/rake"
environment:
PATH: "/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/ruby-1.9.3-p194#global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
GEM_HOME: "/usr/local/rvm/gems/ruby-1.9.3-p194"
GEM_PATH: "/usr/local/rvm/gems/ruby-1.9.3-p194:/usr/local/rvm/gems/ruby-1.9.3-p194#global"
MY_RUBY_HOME: "/usr/local/rvm/rubies/ruby-1.9.3-p194"
IRBRC: "/usr/local/rvm/rubies/ruby-1.9.3-p194/.irbrc"
RUBYOPT: ""
gemset: ""
But there is an epic fail in the application directory as there is nothing in ./vendor/bundle
app-dir$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
app-dir$ rails -v
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/bundler-1.1.3/lib/bundler/spec_set.rb:90:in `block in materialize': Could not find rake-0.9.2.2 in any of the sources (Bundler::GemNotFound)
from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/bundler-1.1.3/lib/bundler/spec_set.rb:83:in `map!'
from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/bundler-1.1.3/lib/bundler/spec_set.rb:83:in `materialize'
from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/bundler-1.1.3/lib/bundler/definition.rb:127:in `specs'
from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/bundler-1.1.3/lib/bundler/environment.rb:27:in `specs'
from /usr/local/rvm/gems/ruby-1.9.3-p194#global/gems/rubygems-bundler-1.0.0/lib/rubygems-bundler/noexec.rb:41:in `candidate?'
from /usr/local/rvm/gems/ruby-1.9.3-p194#global/gems/rubygems-bundler-1.0.0/lib/rubygems-bundler/noexec.rb:59:in `setup'
from /usr/local/rvm/gems/ruby-1.9.3-p194#global/gems/rubygems-bundler-1.0.0/lib/rubygems-bundler/noexec.rb:74:in `<top (required)>'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
from /usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:9:in `<main>'
The system is Ubuntu 11.04 and ruby is installed using rvm system-wide with 1.93 as the default
The deploy.rb is as follows:
# This has been added due to multi deployment staging
set :stages, %w(staging production)
set :default_stage, "staging"
require 'capistrano/ext/multistage'
default_run_options[:pty] = true
set :user, 'appuser'
set :application, "app"
set :keep_releases, 10
set :deploy_to, "/var/www/html/rails/#{application}"
set :repository, "appuser#gitserver:/myapps/rails/#{application}.git"
set :deploy_via, :copy
set :ssh_options, {:forward_agent => true}
set :scm, :git
set :branch, 'master'
set :scm_verbose, true
set :use_sudo, false
# This has been added due to multi deployment staging
# since :domain is defined in another file (staging.rb and production.rb),
# we need to delay its assignment until they're loaded
set(:domain) { "#{domain}" }
role(:web) { domain }
role(:app) { domain }
role(:db, :primary => true) { domain }
# If you are using Passenger mod_rails uncomment this:
namespace :deploy do
desc "cause Passenger to initiate a restart"
task :restart do
run "touch #{current_path}/tmp/restart.txt"
end
desc "reload the database with seed data"
task :seed do
run "cd #{current_path}; rake db:seed RAILS_ENV=production"
end
end
before "deploy:assets:precompile", :bundle_install
after "deploy:update_code", :bundle_install
desc "install the necessary prerequisites"
task :bundle_install, :roles => :app do
run "cd #{release_path}&& export PATH=/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/opt/local/bin:/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/ruby-1.9.3-p194#global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin && bundle install --deployment"
run "cp -Rf #{shared_path}/config/* #{release_path}/config/"
end
The other two staging and production files are ....
deploy/staging.rb
set :domain, "staging.myapp.com"
set :rails_env, "staging"
set :default_environment, {
'PATH' => "/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/opt/local/bin"
}
deploy/production.rb
set :domain, "production.myapp.com"
set :rails_env, "production"
set :default_environment, {
'PATH' => "/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/ruby-1.9.3-p194#global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/mysql/bin"
}
So the fail is trying to bundle install --deployment in a newly delivered application directory. If bundle install --nodeployment is run it works fine!
What have I done wrong or not configured. I've spent 2 days trying to sort this out but it doen't seem to make any sense why thios won't work
you had to miss the rvm instructions for capistrano: https://rvm.io/integration/capistrano/
just read them, I will advise you to use the gem version which basically will allow you to select proper ruby:
Installation:
gem install rvm-capistrano
Or add to Gemfile:
gem 'rvm-capistrano'
Example Capfile deploy.rb :
set :rvm_type, :system # :user is the default
set :rvm_ruby_string, ENV['GEM_HOME'].gsub(/.*\//,"") # Read from local system
require "rvm/capistrano" # Load RVM's capistrano plugin.
But better go check the docs, as more options are available: https://rvm.io/integration/capistrano/
Don't use rvm1/capistrano3 or rvm/capistrano; don't set :pty.
Change ~/.rvmrc for the runner user, on the server, to this — note that it has to come before the line where it kills itself when not running interactively:
# get rvm for non-interactive shells (eg capistrano) too
source /etc/profile.d/rvm.sh
export BASH_ENV=$HOME/.bashrc
export rvm_is_not_a_shell_function=0
# If not running interactively, don't do anything
[ -z "$PS1" ] && return

upgrade to osx lion, bundler gets native extension errors - no such file or directory

I am having a problem that has had me stuck for a day and a half, and I would like some assistance.
I have been moving my latest rails 3 app between my iMac and my macbook pro, with a simple copy, and up till now, I have had no problems.
fyi, I use rvm to manage my project versions.
I got a new iMac, with lion installed, and everything seemed to be good until I ran the bundle update on it. Since then I have not been able to get the bundler to work. The problems crop up when building a gem native extension.
Once I run the bundle update, nothing works on my iMac (osx lion) machine. I can continue to run bundle update on my laptop (Snow Leopard).
So I would like to be able to continue to develop on my Lion machine. Here is what I have done so far:
Initially, I got some errors about my compilers, but since I have reinstalled xcode and run the installer, I no longer those errors.
I still continued to get errors on my nokogiri build. At one point I followed some blog instructions ( and did:
sudo port upgrade --enforce-variants libxml2 +universal
but it seemed to make no difference to building nokogiri.
Now when I do the bundle update, I am getting:
Installing nokogiri (1.5.0) with native extensions /Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:551:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... yes
checking for xmlParseDoc() in -lxml2... yes
checking for xsltParseStylesheetDoc() in -lxslt... yes
checking for exsltFuncRegister() in -lexslt... yes
checking for xmlHasFeature()... yes
checking for xmlFirstElementChild()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetValidStructuredErrors()... yes
checking for xmlSchemaSetValidStructuredErrors()... yes
checking for xmlSchemaSetParserStructuredErrors()... yes
creating Makefile
make
gcc-4.2 -I. -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/x86_64-darwin10.6.0 -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/ruby/backward -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1 -I. -DHAVE_XMLHASFEATURE -DHAVE_XMLFIRSTELEMENTCHILD -DHAVE_XMLRELAXNGSETPARSERSTRUCTUREDERRORS -DHAVE_XMLRELAXNGSETPARSERSTRUCTUREDERRORS -DHAVE_XMLRELAXNGSETVALIDSTRUCTUREDERRORS -DHAVE_XMLSCHEMASETVALIDSTRUCTUREDERRORS -DHAVE_XMLSCHEMASETPARSERSTRUCTUREDERRORS -I/opt/local/include/libxml2 -I/usr/local/include/libxml2 -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/libxml2 -I/opt/local/include -I/usr/local/include -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include -I/usr/include -I/usr/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -o html_document.o -c html_document.c
make: gcc-4.2: No such file or directory
make: *** [html_document.o] Error 1
Gem files will remain installed in /Users/tayloredwebsites/.rvm/gems/ruby-1.9.2-p136#current/gems/nokogiri-1.5.0 for inspection.
After doing this waaaay too many times, I decided to remove capybara and lanuchy from my Gemfile, so that I would get past this error. Lo and behold, bundle update gives me another failure to build a native extension:
Installing sqlite3 (1.3.5) with native extensions /Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:551:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... yes
checking for rb_proc_arity()... yes
checking for sqlite3_initialize()... yes
checking for sqlite3_backup_init()... yes
checking for sqlite3_column_database_name()... no
checking for sqlite3_enable_load_extension()... no
checking for sqlite3_load_extension()... no
creating Makefile
make
gcc-4.2 -I. -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/x86_64-darwin10.6.0 -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/ruby/backward -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1 -I. -DHAVE_RB_PROC_ARITY -DHAVE_SQLITE3_INITIALIZE -DHAVE_SQLITE3_BACKUP_INIT -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -o backup.o -c backup.c
make: gcc-4.2: No such file or directory
make: *** [backup.o] Error 1
So it appears that I am getting a no such file error on my builds, for the same set of code, with the basic difference that one machine is on Lion, and the other is on Snow Leopard.
So maybe someone can help me with these questions:
In my investigations, I noticed that in the nokogiri build, libxml2 is being asked for in 3 places (two of which do not exist!!!!). Anyone know how to control how to control these arguments, so that I can remove the ones that do not exist?
When I looked at the sqlite3 build, I did not notice any missing files, yet I seem to be still getting them. Could this be hung over from the nokogiri problem? If so, does anyone know how I clear these out?
I would like to know what file is missing, and I cant seem to find it in the error message. Is there any way to get debugger detail from the bundle update?
also I noticed that in the make, the include directory contains a directory named with an older version of ruby. This has been this way for quite a while, without any problems, so I suspect this will not be the problem here, but just wanted to point it out.
There is literally no such file or directory gcc-4.2 on Lion. I got stuck on this when trying to "rvm install ruby-1.9.3" which failed similar to what you report. A fix was to specify the CC command like this "CC=gcc rvm install ruby-1.9.3". If the CC=gcc option cannot be passed through to bundler, it might be simpler to "sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2" and just create the symlink it is looking for.
I have reinstalled everything on my OSX Lion. I upgraded to Server to get past some postgres issues. Note when I installed rvm, one of the steps is to run;
$ rvm requirements
which returns, among other things:
Xcode 4.2: * is only supported by ruby 1.9.3+ using command line
flag: --with-gcc=clang * it breaks gems with native extensions,
especially DB drivers.
Xcode 4.2.1+ users - please be warned - in case of any compilation
issues * downgrade to Xcode 4.1 * uninstall Xcode and install
osx-gcc-installer and reinstall your rubies.
Note: if you uninstall Xcode, you lose the standard MacPort Xcode setup.
Note you can build MacPorts from source using gcc - not tried (at least yet).
ln -s /usr/bin/gcc /usr/bin/gcc-4.2
I had built my ruby-1.9.3 with clang so when installing the nokogiri gem I used CC=clang gem install nokogiri -v '1.5.5' which worked for me.