6

オペレーティング システム: CentOS 6.2 x86_64
インデントが不安定で申し訳ありません。これは私の最初の SO 投稿であり、サーバーのセットアップは初めてです。私は学んでいますが、これを解決するために行った手順と、どこで助けを求めたかについて詳しく説明します. 私は意欲的な若い Web 開発者であり、他の誰かが構成したサーバーで作業しているため、この経験全体が私にとって初めてです。

Railsアプリを実行するために最近購入したlinodeを準備しています。ここで提供されている初期インストール ガイド http://blog.blenderbox.com/2011/01/07/installing-rvm-ruby-rails-passenger-nginx-on-centos/に従い、手順を変更しました
sudo bash < <( curl -L http://bit.ly/rvm-install-system-wide )
。この SO スレッドでアドバイスされている変更RVM システム全体のインストール スクリプトの URL が壊れています -- 置換とは何ですか?

bash -c "bash <( curl -L https://github.com/wayneeseguin/rvm/raw/1.3.0/contrib/install-system-wide ) --version '1.3.0'"

Apache2を使用しているため、ngixのインストールで停止しました。rvm requirementsまた、レールをインストールする前に、必要なパッケージを実行してインストールするようにしました。これは、libyaml のインストールが割り当てられた場所であり、インストールしようとしたときに最初のエラーが発生しました。しかし、yum はそれが存在しないと報告しました。RVM と Gem の最初のインストールは機能しているように見えましたが、Gems に「Psych」がないという問題が発生したため、libyaml をインストールするように依頼しました: そのため

/usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/yaml.rb:56:in '<top (required)>': It seems your ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your ruby.

、最初に Yum を使用して libyaml をインストールしようとしましたが、次のエラーが発生しました:

yum install libyaml
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: centosmirror.quintex.com
* extras: centosmirror.quintex.com
* updates: centosmirror.quintex.com
Setting up Install Process
No package libyaml available.
Error: Nothing to do


libyaml-devel と libyaml-dev をインストールしようとすると、同じ問題が発生しました。

いくつかの調査を行った後、同じ問題を詳しく説明し、解決策を提供する CollectiveIdea によるこのブログ投稿を見つけました。Collective Idea によるブログ投稿指示に従い、make または configure の問題なしにインストールを実行しました。次に、提供された ruby​​ の再インストールを実行しました。同じ警告が引き続き表示され、同様の問題について SO をさらに検索しました。同じ問題に関するこの質問への回答で詳しく説明されているように、「ruby installation is missing psych」エラーを解決するにはどうすればよいですか? 使用:

rvm pkg install libyaml
Fetching yaml-0.1.4.tar.gz to /usr/local/rvm/archives
Extracting yaml-0.1.4.tar.gz to /usr/local/rvm/src
Prepare yaml in /usr/local/rvm/src/yaml-0.1.4.
Configuring yaml in /usr/local/rvm/src/yaml-0.1.4.
Compiling yaml in /usr/local/rvm/src/yaml-0.1.4.
Installing yaml to /usr/local/rvm/usr

Please note that it's required to reinstall all rubies:

RVM を介してすべてを再インストールするように勧められたので、こちらの指示にも従いました。

rvm reinstall all --force
Removing /usr/local/rvm/src/ruby-1.9.3-p194...
Removing /usr/local/rvm/rubies/ruby-1.9.3-p194...
mv: overwrite `/usr/local/rvm/user/installs'? y
No binary rubies available for: ///ruby-1.9.3-p194.
Continuing with compilation. Please read 'rvm mount' to get more information on binary   rubies.
Installing Ruby from source to: /usr/local/rvm/rubies/ruby-1.9.3-p194, this may take a while depending on your cpu(s)...
ruby-1.9.3-p194 - #downloading ruby-1.9.3-p194, this may take a while depending on your connection...

ruby-1.9.3-p194 - #extracting ruby-1.9.3-p194 to /usr/local/rvm/src/ruby-1.9.3-p194
ruby-1.9.3-p194 - #extracted to /usr/local/rvm/src/ruby-1.9.3-p194
ruby-1.9.3-p194 - #configuring
ruby-1.9.3-p194 - #compiling
ruby-1.9.3-p194 - #installing

この後も、警告は引き続き表示されます。ルビーのインストールを確認しましruby -vたが、実際にはインストールされています。libyaml ファイルがインストールされ、次の場所にあります。

[root@li543-100 ~]# ls -la /usr/local/lib
total 19620
drwxr-xr-x  5 root root     4096 Oct  1 15:40 .
drwxr-xr-x 13 root root     4096 Oct  1 05:55 ..
drwxr-xr-x  2 root root     4096 Oct  1 06:34 include
lrwxrwxrwx  1 root root       16 Oct  1 15:40 libruby.so -> libruby.so.1.9.1
lrwxrwxrwx  1 root root       16 Oct  1 15:40 libruby.so.1.9 -> libruby.so.1.9.1
-rwxr-xr-x  1 root root  7457107 Oct  1 06:42 libruby.so.1.9.1
-rw-r--r--  1 root root 11633486 Oct  1 15:39 libruby-static.a
lrwxrwxrwx  1 root root       18 Oct  1 06:37 libyaml-0.so.2 -> libyaml-0.so.2.0.2
-rwxr-xr-x  1 root root   358698 Oct  1 06:37 libyaml-0.so.2.0.2
-rw-r--r--  1 root root   565584 Oct  1 06:37 libyaml.a
-rwxr-xr-x  1 root root      953 Oct  1 06:37 libyaml.la
lrwxrwxrwx  1 root root       18 Oct  1 06:37 libyaml.so -> libyaml-0.so.2.0.2
drwxr-xr-x  2 root root     4096 Oct  1 06:45 pkgconfig
drwxr-xr-x  6 root root     4096 Oct  1 06:45 ruby
-rw-rw-r--  1 root rvm       194 Oct  1 05:55 rvm

/usr/local/lib と /usr/local/rvm/lib の間にシンボリック リンクを作成しようとしたこともわかります。これは、yaml ファイルが間違ったディレクトリにインストールされている可能性があるか、rvm が検索していない可能性があるという前提で行われました。それらの適切なディレクトリに。ruby で which を実行したところ、問題の可能性がある /rvm ディレクトリに ruby​​ があったためと考えました。

[root@li543-100 ~]# which ruby
/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby
[1]: http://collectiveidea.com/blog/archives/2011/10/31/install-ruby-193-with-libyaml-on-centos/ 

これは役に立ちませんでした。だから私はどこが間違っていたのか、何を探していないのか、フェンスの上にいます。
1: ファイルを間違ったディレクトリに配置して、インストールを間違えましたか?
2: ruby​​ は別のディレクトリで libyaml ファイルを探していますか?
3: ブログ投稿をフォローしたときに、システム固有の機能をインストールに追加できませんでしたか?

Linode に CentOS を 4 回再デプロイしましたが、これがスクリプトを適切に実行していないことが問題であったことを願っています。5 回目のデプロイで同じ問題が発生しました。私は現在 SO で 2 番を検索していますが、別の場所で明らかに解決されているため、私の投稿が不適切でないことを願っています。ご協力いただければ幸いです。

編集:

したがって、CentOS6.2 OS を再デプロイした後、次のように変更されたセットアップを実行しました。

yum -y install git
yum -y install curl
groupadd rvm
usermod -a -G rvm root
bash -c "bash <( curl -L https://github.com/wayneeseguin/rvm/raw/1.3.0/contrib/install-system-wide) -- version'1.3.0'"
echo '[[ -s "/usr/local/lib/rvm" ]] && . "/usr/local/lib/rvm" #This loads RVM into a shell session' >> ~/.bash_profile
source ~/.bash_profile
yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel
rvm get head
yum install readline readline-devel
rvm package install libyaml -v
rvm install 1.9.3 -v
rvm use 1.9.3
ruby -v 

これもまだエラーが発生しました:

/usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.

以前のコマンドを実行して RVM から libyaml を取得し、すべての ruby​​ を再インストールしても、問題は解決しないようです。rvm reload all --force を実行すると、以前の libyaml パッケージのインストールが削除、上書き、または置換されますか? 正しいディレクトリにあるようです。

[root@li543-100 src]# pwd
/usr/local/rvm/src
drwxrwsr-x  7 root rvm   4096 Oct  1 21:19 .
drwxrwsr-x 24 root rvm   4096 Oct  1 20:51 ..
drwxr-xr-x 24 root rvm   8192 Oct  1 21:22 ruby-1.9.3-p194
drwxr-xr-x  7  501 games 4096 Apr 27 23:31 rubygems-1.8.24
drwxrwsr-x 18 root rvm   4096 Oct  1 20:51 rvm
drwxrwsrwx  8 root rvm   4096 Oct  1 20:27 yaml-0.1.3
drwxr-xr-x  9 root rvm   4096 Oct  1 21:18 yaml-0.1.4

編集#2:
新しいCentOS 5.6の再展開で別のインストールに失敗した後、インストールプロセスのどこかに明らかに致命的な欠陥がありました。を実行する前に、実行rvm install 1.9.3する必要がありましたrvm install 1.8.7。また、代わりに今回は 32 ビットの CentOS6.2 イメージをデプロイしました

1.8.7 で gem を実行する

[root@li543-100 ~]# gem -v
1.8.24

今、私は走りますrvm install 1.9.2

[root@li543-100 ~]# rvm use 1.9.2
ruby-1.9.2-p320 is not installed.
To install do: 'rvm install ruby-1.9.2-p320'
[root@li543-100 ~]# rvm install ruby-1.9.2-p320
#CUT OUT INSTALL SHELL PROMPTS ETC
[root@li543-100 ~]# rvm use 1.9.2-p320
Using /usr/local/rvm/gems/ruby-1.9.2-p320
[root@li543-100 ~]# gem -v
1.8.24

1.9.3 への切り替え: エラーが返される

[root@li543-100 ~]# rvm use 1.9.3-p194
Using /usr/local/rvm/gems/ruby-1.9.3-p194
[root@li543-100 ~]# gem -v
/usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
1.8.24

そのため、rvm に 1.9.3 を使用するように指示すると (-p194 を使用していることに注意してください。以前のものはテストしていません)、rvmlibyaml をどこでロードしようとするかに関して、何らかの通信の問題が発生するようです。今のところ、私は 1.9.2 を使用します。これは、これらのほとんどが頭を悩ませているからです。1.9.3 が必要とするある種の依存関係を欠いているか、構成ファイルを適切に調整していないという間違いを犯したと確信しています。少なくともこれは私の仮定です。最初のサーバーのセットアップは、これの多くが推測されています。

4

3 に答える 3

3

libyaml を個別にビルドし、基本的に上記の手順のさまざまな順列を実行して、同じ結果を得ました。irb を実行したところ、libyaml.so が見つからないことがわかりました。やむを得ず、/usr/local/lib/libyaml* (以前にビルドしたもの) を ~/.rvm/rubies/ruby-1.9.3-p327/lib にコピーしました。

これにより、警告が静かになりました。

于 2012-11-16T22:02:21.183 に答える
2

多くの試行錯誤の後、以下で修正してください

# rvm pkg install libyaml
# rvm reinstall all --force
# ln -s /usr/local/rvm/usr/lib/libyaml.so /usr/local/rvm/lib/
# ln -s /usr/local/rvm/usr/lib/libyaml-0.so.2 /usr/local/rvm/lib/
# ln -s /usr/local/rvm/usr/lib/libyaml-0.so.2 /usr/local/rvm/rubies/ruby-1.9.3-p327/lib
# ln -s /usr/local/rvm/usr/lib/libyaml.so /usr/local/rvm/rubies/ruby-1.9.3-p327/lib

私の環境

# cat /etc/redhat-release
CentOS release 5.8 (Final)

# ruby -v
ruby 1.9.3p327 (2012-11-10 revision 37606) [i686-linux]

# gem -v
1.8.24

# rvm -v

rvm 1.16.20 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
于 2012-11-22T08:24:33.590 に答える
1

すべての rvm、ruby、libyaml などを削除します。

rvm をインストールするよりも、rvm のみを使用して libyaml と rubies をインストールします。

(また、Ruby は 32 ビット ライブラリを探すことができるので、32 ビット用のバージョンがあるかどうか、または 64 ビット ライブラリ用に別の lib フォルダーがあるかどうかを確認してください!)

PS Go で、アプリのホスティングについて heroku を確認します。無料で初心者に最適で、セットアップに 5 分かかります (レールのインストールから、heroku のレール自動生成 Web ページまで 15 分!)。また、構成を変更する必要がないため、サーバーへの展開は難しくありません。

于 2012-10-01T19:28:49.207 に答える