2010-04-07 26 views
16

Mọi thứ đều hoạt động tốt, cho đến khi chúng tôi quyết định nâng cấp ruby ​​lên 1.8.7 từ 1.8.6, và đó là khi tất cả địa ngục bị vỡ. Khi chúng tôi biên dịch Ruby 1.8.7 từ nguồn nó đã được cài đặt vào/usr/local/bin và Ruby 1.8.6 vẫn ở trong/usr/bin. Hiện tại, chúng tôi đã gỡ cài đặt ruby ​​1.8.6 và do một số đột quỵ, chúng tôi đã xóa các tệp 1.8.7 ruby ​​từ/usr/local.Làm cách nào để gỡ cài đặt Ruby khỏi/usr/local?

khi chúng tôi thử "ruby" nó trỏ tới/usr/local. Nếu bất kỳ ai có thể giúp chúng tôi tìm ra những gì chúng tôi cần làm trở lại đúng hướng, chúng tôi sẽ rất biết ơn và cũng có ý tưởng làm thế nào chúng tôi có thể gỡ bỏ ruby ​​từ/usr/local. chúng tôi đã thử yum loại bỏ ruby, loại bỏ ruby ​​ra khỏi /usr/bin.Thanks và Cheers!

Trả lời

9

Bạn không nên gỡ cài đặt 1.8.6 nếu nó ở trong /usr/bin. Đó là thuộc sở hữu của hệ điều hành và dự kiến ​​sẽ có mặt ở đó.

Nếu bạn đặt /usr/local/bin trong PATH của bạn trước khi /usr/bin sau đó mọi thứ bạn đã cài đặt trong /usr/local/bin sẽ được tìm thấy trước khi bất kỳ có cùng tên trong /usr/bin, ghi đè một cách hiệu quả hoặc cập nhật chúng, mà không thực sự làm như vậy. Bạn vẫn có thể liên hệ với họ bằng cách sử dụng rõ ràng /usr/bin trong # của bạn! dòng yêu cầu thông dịch viên ở đầu mã của bạn.

@Anurag được khuyến nghị sử dụng RVM, thứ hai tôi sẽ sử dụng. Tôi sử dụng nó để quản lý 1.8.7 và 1.9.1 ngoài hệ điều hành 1.8.6.

2

Tạo một symlink tại/usr/bin có tên 'ruby' và trỏ nó tới ruby ​​được cài đặt mới nhất.

Bạn có thể sử dụng một cái gì đó như ln -s /usr/bin/ruby /to/the/installed/ruby/binary

Hy vọng điều này sẽ hữu ích.

+0

Ý của bạn là/etc/bin/ruby ​​hoặc/usr/bin/ruby? Ngoài ra, có thêm các tên liên quan đến ruby ​​cần được liên kết như irb, rdoc, v.v. –

+0

Greg, xấu của tôi ... Bạn đã chỉ định chính xác, đó là/usr/bin/ruby, giống như dòng đầu tiên. Tôi sẽ sửa nó. Cảm ơn :-) – intellidiot

+0

Tôi sẽ đề xuất KHÔNG thực hiện bất kỳ liên kết nào trong '/ usr/bin' với các phiên bản Ruby khác nếu hệ điều hành đã cài đặt Ruby trong'/usr/bin' theo mặc định. Trên Snow Leopard của Apple, Apple hiện đang cài đặt mã sử dụng Ruby 1.8.7 được cài đặt sẵn trong '/ usr/bin'. Lộn xộn với điều đó có thể gây ra lỗi/thất bại tinh tế xuống con đường trong ứng dụng đó hoặc bất kỳ thứ gì đến sau này. Tôi nghĩ tốt hơn là nên sử dụng RVM để quản lý các hộp cát được gắn hộp cát hoặc cài đặt vào '/ usr/local/bin' hoặc có thể ở đâu đó trong'/opt/'và điều chỉnh đường dẫn của bạn; Đặt nó ở đâu đó hệ thống sẽ không giả định để xem xét. –

20

Chỉnh sửa: Như được đề xuất trong nhận xét. Giải pháp này dành cho hệ điều hành Linux. Điều đó nữa nếu bạn đã cài đặt ruby ​​theo cách thủ công từ trình quản lý gói.

Nếu bạn muốn có nhiều phiên bản ruby, tốt hơn là có RVM. Trong trường hợp đó bạn không cần phải loại bỏ phiên bản cũ của ruby.

Tuy nhiên nếu muốn loại bỏ sau đó làm theo các bước dưới đây:

Trước tiên, bạn nên tìm nơi Ruby:

whereis ruby 

sẽ liệt kê tất cả những nơi nó tồn tại trên hệ thống của bạn, sau đó bạn có thể xóa tất cả chúng một cách rõ ràng. Hoặc bạn có thể sử dụng một cái gì đó như thế này:

rm -rf /usr/local/lib/ruby 
rm -rf /usr/lib/ruby 
rm -f /usr/local/bin/ruby 
rm -f /usr/bin/ruby 
rm -f /usr/local/bin/irb 
rm -f /usr/bin/irb 
rm -f /usr/local/bin/gem 
rm -f /usr/bin/gem 
+22

Nó là * thực sự * quan trọng để tìm hiểu những gì hệ điều hành và phiên bản này đang chạy trên, trước khi đề nghị một người nào đó loại bỏ Ruby từ '/ usr'. Apple bao gồm Ruby trong Snow Leopard và có mã gọi nó từ các ứng dụng. Xóa những ứng dụng đó sẽ tự động phá vỡ ứng dụng. Nếu nó là một hệ thống Linux, và Ruby đã được cài đặt thông qua một trình quản lý gói, thì nó nên được sử dụng để loại bỏ các tệp. Và, trong cả hai trường hợp, sử dụng một cái gì đó như RVM có thể phủ nhận sự cần thiết phải xóa một Ruby cài đặt sẵn ở tất cả. –

+1

Xin chào, cảm ơn tôi sẽ tiếp tục chú ý từ lần sau. –

+5

Nỗi buồn xảy ra nếu ai đó sao chép/dán các đoạn lệnh rm đó. Không sao chép/dán mà không đọc trẻ em. – sclarson

0

làm theo cách này:

sudo apt purge ruby 
1

Nếu ruby ​​đã được cài đặt theo cách sau:

./configure --prefix=/usr/local 
make 
sudo make install 

Bạn có thể gỡ bỏ cài đặt nó theo cách sau :

Kiểm tra phiên bản ruby ​​đã cài đặt; cho phép giả định 2.1.2

wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.bz2 
bunzip ... 
tar xfv ... 
cd ruby-2.1.2 
./configure --prefix=/usr/local 
make 
sudo checkinstall 
    # will build deb or rpm package and try to install it 

Sau khi cài đặt, bây giờ bạn có thể xóa gói và nó sẽ xóa thư mục/tệp/v.v.

sudo rpm -e ruby # or dpkg -P ruby (for Debian-like systems) 

Có thể có một số hiện vật còn lại:

Removing ruby ... 
    warning: while removing ruby, directory '/usr/local/lib/ruby/gems/2.1.0/gems' not empty so not removed. 
    ... 

Di chuyển chúng bằng tay.

0

sudo make uninstall đã thực hiện thủ thuật cho tôi bằng cách sử dụng tar 2,4 Ruby từ trang tải xuống chính thức.

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