2012-10-01 12 views
6

Hệ điều hành: CentOS 6.2 x86_64
Tôi xin lỗi vì sự thụt đầu là yếu ớt. Đây là bài viết SO đầu tiên của tôi và tôi mới thiết lập máy chủ. Mặc dù vậy, tôi đang học và sẽ trình bày chi tiết các bước mà tôi đã trải qua khi cố gắng giải quyết vấn đề này cũng như nơi tôi tìm kiếm sự trợ giúp. Tôi là một nhà phát triển web trẻ đầy tham vọng và tôi làm việc trên một máy chủ mà người khác đã định cấu hình, vì vậy toàn bộ trải nghiệm này mới mẻ đối với tôi.cho các thư viện được biên dịch, như libyaml, tìm kiếm Ruby (hoặc RVM) trong hệ thống tệp để tải hoặc giải quyết chúng ở đâu?

Tôi đang chuẩn bị một linode mà tôi vừa mua để chạy ứng dụng đường ray. Tôi làm theo các hướng dẫn cài đặt ban đầu cung cấp ở đây http://blog.blenderbox.com/2011/01/07/installing-rvm-ruby-rails-passenger-nginx-on-centos/, cũng như thay đổi các bước:
sudo bash < <(curl -L http://bit.ly/rvm-install-system-wide)
Để phản ánh những thay đổi khuyên trong này thread SO RVM system-wide install script url broken -- what is replacement?

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

tôi dừng lại ở việc cài đặt ngix vì tôi đang sử dụng Apache2. Tôi cũng đảm bảo chạy rvm requirements và cài đặt các gói cần thiết trước khi cài đặt đường ray. Đây là nơi libyaml được giao nhiệm vụ cài đặt và lỗi đầu tiên xảy ra với tôi khi cố gắng cài đặt nó. Tuy nhiên, yum báo cáo rằng nó không tồn tại. Cài đặt ban đầu của RVM và Gems xuất hiện để làm việc, tuy nhiên tôi đã gặp một vấn đề với Gems mất tích 'Psych' và sau đó yêu cầu cài đặt 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.

Vì vậy, lần đầu tiên tôi đã cố gắng cài đặt libyaml qua Yum nhưng đã nhận lỗi này:

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 


Đang cố gắng để cài đặt libyaml-devel và libyaml-dev có vấn đề này như vậy.

Sau khi thực hiện một số nghiên cứu, tôi đã tìm thấy bài đăng trên blog này của CollectiveIdea nêu chi tiết cùng một vấn đề và đưa ra giải pháp. Blog Post by Collective Idea Tôi làm theo hướng dẫn và thực hiện cài đặt mà không cần thực hiện hoặc định cấu hình sự cố. Sau đó tôi thực hiện cài đặt lại ruby ​​được cung cấp. Tôi vẫn được trình bày cùng một cảnh báo và tìm kiếm thêm về SO cho các vấn đề tương tự. Như đã trình bày bởi phản ứng với câu hỏi này liên quan đến cùng một vấn đề, how to solve "ruby installation is missing psych" error? Sử dụng:

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:

Nó được khuyên là nên cài đặt lại tất cả mọi thứ thông qua RVM và tôi đi theo những hướng dẫn này là tốt.

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 

Ngay cả sau khi cảnh báo này vẫn còn hiện diện. Tôi đã xác minh cài đặt Ruby với ruby -v và thực tế là nó đã được cài đặt. Các tập tin libyaml đã được cài đặt, người đó cư trú ở đây:

[[email protected] ~]# 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 

Bạn cũng có thể thấy rằng tôi đã cố gắng để tạo ra một liên kết tượng trưng giữa/usr/local/lib và/usr/local/RVM/lib, theo giả định rằng các tệp yaml có thể đã được cài đặt vào thư mục sai hoặc rvm không tìm trong thư mục thích hợp cho chúng. Tôi chạy một trong đó ruby ​​và nghĩ vì ruby ​​là trong dir/rvm có thể là vấn đề:

[[email protected] ~]# 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/ 

Điều này đã không giúp đỡ. Vì vậy, tôi đang ở trên hàng rào với nơi tôi đã đi sai hoặc những gì tôi không tìm kiếm.
1: Tôi đã mắc lỗi cài đặt bằng cách đặt các tệp sai địa chỉ chưa?
2: Có phải ruby ​​đang tìm kiếm các tệp libyaml trong một thư mục khác không?
3: Khi tôi theo dõi các bài đăng trên blog, tôi có không thêm một số tính năng cụ thể của hệ thống vào các lượt cài đặt không?

Tôi đã triển khai CentOS trên linode của tôi 4 lần, hy vọng rằng đây là vấn đề với tôi không theo các kịch bản một cách thích hợp, tôi đang triển khai lần thứ 5 với cùng một vấn đề nảy sinh. Tôi hiện đang tìm kiếm SO cho số 2 và hy vọng bài đăng của tôi không phù hợp vì điều này được giải quyết rõ ràng ở một nơi khác. Tôi sẽ đánh giá cao bất kỳ sự trợ giúp nào bạn có thể cung cấp.

EDIT:

Vì vậy, sau redeploying hệ điều hành CentOS6.2 Tôi chạy thiết lập bị thay đổi như sau:

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 

này quá vẫn gặp phải các lỗi:

/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. 

Chạy các lệnh trước để có được libyaml từ RVM và sau đó cài đặt lại tất cả các hồng ngọc dường như không khắc phục được sự cố cho tôi. Khi thực hiện rvm cài đặt lại tất cả - force, cài đặt gói libyaml trước đó có bị xóa, ghi đè hoặc thay thế không? Nó xuất hiện trong các thư mục chính xác.

[[email protected] 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 

EDIT # 2:
Sau khi thất bại trong một cài đặt trên một mới CentOS 5.6 redeploy tôi đã rõ ràng thực hiện một lỗ hổng chết người ở đâu đó trong quá trình cài đặt. Trước khi thực hiện rvm install 1.9.3, tôi phải chạy rvm install 1.8.7. Ngoài ra, tôi triển khai một hình ảnh 32bit CentOS6.2 thời gian này thay vì

Chạy đá quý trên 1.8.7

[[email protected] ~]# gem -v 
1.8.24 

Bây giờ tôi chạy rvm install 1.9.2

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

Chuyển sang 1.9.3: Lỗi trả về

[[email protected] ~]# rvm use 1.9.3-p194 
Using /usr/local/rvm/gems/ruby-1.9.3-p194 
[[email protected] ~]# 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 

Vì vậy, nó trông giống như nói rvm để sử dụng 1.9.3 (tâm trí bạn tôi đang sử dụng -p194, tôi đã không được thử nghiệm những cái trước) gây ra một số loại vấn đề truyền thông về nơi mà rvm cố gắng để tải libyaml. Bây giờ tôi sẽ sử dụng 1.9.2 vì hầu hết các công cụ này đã được một chút trên đầu của tôi. Tôi chắc rằng tôi đã phạm sai lầm thiếu một số phụ thuộc mà 1.9.3 yêu cầu hoặc không điều chỉnh một tập tin cấu hình thích hợp. Ít nhất đây là giả định của tôi, thiết lập máy chủ đầu tiên rất nhiều điều này đã được đoán.

Trả lời

1

Gỡ bỏ mọi sư RVM, ruby, libyaml vv

Thân cài đặt RVM, và chỉ sử dụng để cài đặt RVM libyaml và hồng ngọc.

(Cũng đừng lưu ý rằng Ruby có thể tìm kiếm các thư viện 32 bit, do đó kiểm tra xem có phiên bản dành cho 32 bit, hoặc nếu có riêng thư mục lib cho các thư viện 64bit!)

PS Đi kiểm tra Heroku cho lưu trữ của bạn ứng dụng.Tuyệt vời cho người ăn xin như miễn phí của nó, và 5 phút để thiết lập (15 phút từ cài đặt đường ray để đường ray trang web autogenerated trên heroku!). Và bạn không cần phải thay đổi cấu hình của bạn, do đó, triển khai trên máy chủ của bạn sẽ không khó khăn hơn.

+0

Tôi đang chuẩn bị một kịch bản ngay bây giờ để làm điều đó và cố gắng tránh để biên dịch và cài đặt nó từ nguồn. Tôi sẽ cho bạn biết làm thế nào mà hóa ra. Cảm ơn bạn đã trả lời –

+0

Tôi đã thêm một EDIT để phản ánh nỗ lực của tôi chỉ đơn giản bằng cách sử dụng RVM để cài đặt libyaml. –

3

Tôi đã xây dựng libyaml một cách riêng biệt và về cơ bản đã trải qua các hoán vị khác nhau của các bước ở trên với cùng một kết quả. Tôi chạy irb và thấy rằng nó không tìm thấy libyaml.so. Trong desparation tôi đã sao chép/usr/local/lib/libyaml * (mà trước đó tôi đã xây dựng) thành ~/.rvm/rubies/ruby-1.9.3-p327/lib.

Điều này làm yên lặng cảnh báo.

+0

Cảm ơn bạn rất nhiều. Tôi đã thử mọi thứ cho đến khi điều này được đề xuất! –

2

Sau nhiều thử thách, dưới đây sửa chữa cho tôi

# 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 

Môi trường của tôi

# 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 <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/] 
+0

Sửa lỗi trên Red Hat Enterprise Linux Server phiên bản 5.6 (Tikanga) – j15e

Các vấn đề liên quan