rails 3+ruby 1にアップグレードします.9.2プロセスで発生したさまざまな問題
ubunutシステムに付属しているrailsとrubyのバージョンが比較的低いため、以前のバージョンの再コンパイルをやめるつもりで、Nがどんなに面倒なことに出会っても、いいことで、また多くの問題を認識して、いくつかの東の意味を理解しました
アップグレードruby 1.8.7~1.9.2
まずはruby-1.9.2をダウンロード
すべては順調ですが、何が起こっているのか分かりません.昨日gemをしたとき、また1.8を取り戻したようです.
今日、パソコンを再起動した後、やはり1.8、1.9もあって、めちゃくちゃで、やり直すことにしました
そこで、すべてのステップを修正し、usr/local/rubyを削除してusr/bin/の下のすべてのrubyを削除します.
上記の手順を再開します(lnのコマンドを除く)
最後に環境変数path編集ファイルetc/environmentを変更しました
修正完了、システム再起動、完了
rubyインストール完了
二GEMのアップグレード
gemコマンドを実行します.エラーメッセージ:依存ruby 1.8.7エラーが発生しました.これは以前に残っています.
そこで/usr/binの下の一連のgem gem 1.8 gem×× なんて全部やってしまう
ruby 1をインストールする.9.2以降gemがインストールされました
上にpathが設定されているので、gemはusr/local/ruby/binディレクトリの下にあります
残りを削除してgemを実行してもいいです
ただしgemリストを実行する
エラーが発生しました
検索してみました:(http://javaeye.shaduwang.com/?www/topic/743850)、zlibが欠けていると言います
gem listこれは実行できます
gem install ×× 運転もできます
補足:
環境変数のpathパスが設定されていますが、ソフトリンクを作成しないと、sudo rubyまたはsudo gemを実行するときにエラーが発生します.
次のソフトリンクも作成します
次にsudo gem-v出力1.3.7を実行する
三、rails 3のインストール
rails-vを実行しました
bash:/usr/bin/rails:/usr/bin/ruby1.8:破損したインタプリタ:ファイルまたはディレクトリがありません
findちょっとrails発見/usr/lib/ruby/gems/1.8ディレクトリの下にrailsファイルがあります
/usr/bin/railsは実行時に呼び出されるrailsです
すべて削除
コマンドgem install railsを実行してrailsのインストールを開始
インストールが完了したらrails-vを実行しても大丈夫です
しかしsudo rails-vはこのコマンドがないことを示唆します
上と同じ理屈:sudo ln-s/usr/local/ruby/bin/rails/usr/bin/rails
sudo rails-vも大丈夫です
四その他の問題
昨日のrails 3+ruby 1を開きます.8のアイテム、rake testにエラーが発生しました
まずいくつかのgemの更新で、バージョン番号が対応していないため、修正した後、rake test
エラー:Errors running test:units!
何の間違いかわからない
単独運転
そこでmysqlのgemをインストールします
エラーが発生しました.スタックの例外は次のとおりです.
------------------------------------------
--------------------------------
次のようなものは取り付けられていません
これをインストールして、やっとgem install mysqlができます
レイクテストの再実行
再エラー
!!! Missing the mysql gem. Add it to your Gemfile: gem 'mysql', '2.8.1'
もう一度見て、gem'mysql','2.8.1'という言葉をGemfileファイルに置くのを忘れました.
とうとう・・・
レイクテストを実行できます
アップグレードruby 1.8.7~1.9.2
まずはruby-1.9.2をダウンロード
wget ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p0.tar.gz
tar -zxvf ruby-1.9.2-p0.tar.gz
cd ruby-1.9.2-p0
.configure -prefix=/usr/local/ruby #
make
make test
make install #
sudo ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby #
すべては順調ですが、何が起こっているのか分かりません.昨日gemをしたとき、また1.8を取り戻したようです.
今日、パソコンを再起動した後、やはり1.8、1.9もあって、めちゃくちゃで、やり直すことにしました
そこで、すべてのステップを修正し、usr/local/rubyを削除してusr/bin/の下のすべてのrubyを削除します.
上記の手順を再開します(lnのコマンドを除く)
最後に環境変数path編集ファイルetc/environmentを変更しました
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/ruby/bin"
修正完了、システム再起動、完了
ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]
rubyインストール完了
二GEMのアップグレード
gemコマンドを実行します.エラーメッセージ:依存ruby 1.8.7エラーが発生しました.これは以前に残っています.
そこで/usr/binの下の一連のgem gem 1.8 gem×× なんて全部やってしまう
ruby 1をインストールする.9.2以降gemがインストールされました
上にpathが設定されているので、gemはusr/local/ruby/binディレクトリの下にあります
残りを削除してgemを実行してもいいです
gem -v
1.3.7
ただしgemリストを実行する
エラーが発生しました
ERROR: Loading command: list (LoadError)
no such file to load -- zlib
ERROR: While executing gem ... (NameError)
uninitialized constant Gem::Commands::ListCommand
検索してみました:(http://javaeye.shaduwang.com/?www/topic/743850)、zlibが欠けていると言います
(1)sudo apt-get install zlib1g-dev
(2) ext/zlib ( ruby1.9.2 )
(3)ruby extconf.rb ( )
(4)make
(5)sudo make install
gem listこれは実行できます
gem install ×× 運転もできます
補足:
環境変数のpathパスが設定されていますが、ソフトリンクを作成しないと、sudo rubyまたはsudo gemを実行するときにエラーが発生します.
sudo: ruby: command not found
次のソフトリンクも作成します
sudo ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby
sudo ln -s /usr/local/ruby/bin/gem /usr/bin/gem
次にsudo gem-v出力1.3.7を実行する
三、rails 3のインストール
rails-vを実行しました
bash:/usr/bin/rails:/usr/bin/ruby1.8:破損したインタプリタ:ファイルまたはディレクトリがありません
findちょっとrails発見/usr/lib/ruby/gems/1.8ディレクトリの下にrailsファイルがあります
/usr/bin/railsは実行時に呼び出されるrailsです
すべて削除
コマンドgem install railsを実行してrailsのインストールを開始
インストールが完了したらrails-vを実行しても大丈夫です
しかしsudo rails-vはこのコマンドがないことを示唆します
上と同じ理屈:sudo ln-s/usr/local/ruby/bin/rails/usr/bin/rails
sudo rails-vも大丈夫です
四その他の問題
昨日のrails 3+ruby 1を開きます.8のアイテム、rake testにエラーが発生しました
まずいくつかのgemの更新で、バージョン番号が対応していないため、修正した後、rake test
エラー:Errors running test:units!
何の間違いかわからない
単独運転
rake test:units
!!! Missing the mysql gem. Add it to your Gemfile: gem 'mysql', '2.8.1'
今gem listを見て、まだmysqlというgemをインストールしていないことを発見しましたそこでmysqlのgemをインストールします
sudo gem install mysql
エラーが発生しました.スタックの例外は次のとおりです.
------------------------------------------
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
/usr/local/ruby/bin/ruby extconf.rb
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/local/ruby/bin/ruby
--with-mysql-config
--without-mysql-config
--with-mysql-dir
--without-mysql-dir
--with-mysql-include
--without-mysql-include=${mysql-dir}/include
--with-mysql-lib
--without-mysql-lib=${mysql-dir}/lib
--with-mysqlclientlib
--without-mysqlclientlib
--with-mlib
--without-mlib
--with-mysqlclientlib
--without-mysqlclientlib
--with-zlib
--without-zlib
--with-mysqlclientlib
--without-mysqlclientlib
--with-socketlib
--without-socketlib
--with-mysqlclientlib
--without-mysqlclientlib
--with-nsllib
--without-nsllib
--with-mysqlclientlib
--without-mysqlclientlib
--with-mygcclib
--without-mygcclib
--with-mysqlclientlib
--without-mysqlclientlib
Gem files will remain installed in /usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql-2.8.1 for inspection.
Results logged to /usr/local/ruby/lib/ruby/gems/1.9.1/gems/mysql-2.8.1/ext/mysql_api/gem_make.out
--------------------------------
次のようなものは取り付けられていません
apt-get install libmysqlclient-dev
sudo apt-get install libmysql-ruby libmysqlclient-dev
これをインストールして、やっとgem install mysqlができます
レイクテストの再実行
再エラー
!!! Missing the mysql gem. Add it to your Gemfile: gem 'mysql', '2.8.1'
もう一度見て、gem'mysql','2.8.1'という言葉をGemfileファイルに置くのを忘れました.
とうとう・・・
レイクテストを実行できます