Làm cách nào để cài đặt và quản lý RPM?


85

Tôi có một mong muốn cháy bỏng là cài đặt RPM vào cài đặt Ubuntu của mình - điều này có thể không? Tôi có thể sử dụng Yum - hoặc một công cụ quản lý gói RPM khác không?


Tại sao? Bạn thiếu loại phần mềm nào mà bạn không thể tìm thấy trong Ubuntu hoặc PPA? Chuyển đổi rpms với các tác phẩm ngoài hành tinh, nhưng nó thực sự không phải là lựa chọn tốt nhất.
ℝaphink

Trong công việc hàng ngày của tôi, tôi là Quản trị viên Hệ thống linux và tôi quản trị chủ yếu các máy Redhat. Tôi yêu Ubuntu ở chỗ tôi không phải mang công việc về nhà, nhưng một số thứ mà Debian sử dụng cho cấu hình (chủ yếu là Apache) thực sự khiến tôi phát điên. Tôi thích cách mà RH duy trì phần mềm apache hơn. Vì vậy, duy trì hai giải pháp quản lý gói (yum và aptitude) có vẻ như là một giải pháp lý tưởng hơn (nếu có thể)
Marco Ceppi

Thông tin liên quan: rpmyum thẻ wiki.
Eliah Kagan

Câu trả lời:


117

Tôi có thể sử dụng Yum không

Tôi sẽ không đề nghị nó. Bạn có thể có thể biên dịch nó nhưng bạn sẽ không có bất kỳ kho lưu trữ gói tương thích với Ubuntu nào để xử lý.

Bạn có thể chuyển đổi các tệp RPM đơn thành DEB bằng Alien:

sudo apt-get install alien
sudo alien my_package.rpm
sudo dpkg -i my_package.deb

Lưu ý: Nó có thể thay đổi tên tệp nhiều hơn một chút so với phần mở rộng.

Điều này sẽ không hoạt động cho tất cả mọi thứ khi các gói liên kết với các gói khác để thực hiện các phụ thuộc. Rõ ràng Red Hat / Fedora / CentOS sử dụng các tên gói khác nhau cho Ubuntu để bạn có thể gặp phải vô số nỗi đau.

Rất có thể nếu DEB không tồn tại, bạn sẽ tốt hơn nếu chỉ lấy nguồn và biên dịch nó.


3
nếu người ngoài hành tinh không hoạt động và cuối cùng bạn sử dụng mã nguồn trực tiếp, bạn có thể biến thành .deb bằng cách sử dụng checkinstall (trong kho vũ trụ, không được cài đặt theo mặc định).
ImaginaryRobots

Checkinstall được sử dụng thay thế make installvà rất tiện dụng để có xung quanh. Có thể loại bỏ các gói chắc chắn là một lợi thế!
aperson

checkinstalllà tuyệt vời để duy trì tự xây dựng trong một môi trường đóng gói nhưng nó có một số điểm kỳ lạ đôi khi có nghĩa là thứ gì đó sẽ cài đặt thông qua make installsẽ không cài đặt. Tôi sử dụng nó khi tôi có thể.
Oli

3
bạn có thể làm alien --install my_package.rpm.
tshepang

Tôi đã cố gắng cài đặt phiên bản mới nhất của lftp theo cách này, nhưng nó không cập nhật các phụ thuộc, vì vậy lftp không bắt đầu thử tải với:error while loading shared libraries: libreadline.so.7
Ngọa Kitten

15

Bạn sẽ cần alienphải làm điều đó.

sudo apt-get install alien

Điều này sẽ cài đặt tất cả các gói cần thiết. Bây giờ bạn có thể bắt đầu chuyển đổi các tệp .rpm của mình sang các gói .deb.

Tùy chọn có sẵn cho alien:

Chuyển đổi gói.rpm thành gói.deb

sudo alien -d package-name.rpm

Chuyển đổi package.rpmthành một package.debvà cài đặt gói được tạo.

alien -i package-name.rpm

Nếu bạn muốn ngăn người ngoài thay đổi số phiên bản, hãy sử dụng lệnh sau

alien -k rpm-package-file.rpm

6

Câu trả lời ngắn gọn là, Đừng!

Nếu bạn có một RPM quan trọng đến mức bạn cần phải có nó, thì có lẽ cũng có một gói Ubuntu; và, nếu không, có lẽ đáng để trải qua sự cố khi biên dịch nó từ nguồn thành định dạng gói Debian (mà Ubuntu cũng sử dụng). Bây giờ, có những thời điểm nhất định khi bạn không thể biên dịch lại phần mềm (nếu nó không mở được thì không thể) và trong trường hợp đó bạn có thể sử dụng alienchương trình. Nhưng, cài đặt từ RPM giống như đổ xăng vào xe diesel - nó có thể hoạt động, nhưng bạn sẽ không được hưởng lợi từ nó trong thời gian dài!

Để xây dựng một gói từ nguồn, có một hướng dẫn trên Ubuntu Wiki; cũng có một chương trình gọi là checkinstall có thể thực hiện một số thủ thuật với cây nguồn mặc định mà không cần thiết lập hướng dẫn xây dựng cho gói. Nếu bạn nghĩ rằng người khác có thể hưởng lợi từ các chương trình mà bạn biên dịch, bạn có thể thiết lập một kho lưu trữ trên launchpad và chia sẻ sự tốt đẹp của gói!


không thực sự trả lời cho câu hỏi, vì vậy -1
Dee

3

Nếu bạn thực sự cần cài đặt RPM trên hệ thống của mình, bạn thực sự nên thử chuyển đổi chúng bằng cách sử dụng 'người ngoài hành tinh'.

Xin lưu ý rằng theo mặc định, 'người ngoài hành tinh' sẽ can thiệp vào số phiên bản của gói. Nếu bạn muốn số phiên bản giữ nguyên, hãy chuyển tùy chọn '-k' khi chuyển đổi.

Bạn không nên cố gắng sử dụng Yum hoặc bất kỳ cách cài đặt RPM nào khác, chẳng hạn như apt-rpm, bên cạnh các gói DEB hiện có. Các hệ thống DEB và RPM quản lý danh sách các phần mềm được cài đặt riêng biệt và do đó không biết gói nào đã được cài đặt trước đó bởi hệ thống khác. Ví dụ: nếu bạn cố gắng cài đặt ứng dụng mang GUI với hệ thống quản lý gói dựa trên RPM, thì nó sẽ cố gắng tự cài đặt các thành phần hệ thống quan trọng, vì nó nghĩ rằng chúng chưa được cài đặt. Điều này sẽ làm cho việc cài đặt thất bại khủng khiếp hoặc ghi đè lên các tệp hệ thống quan trọng.


3

Có trình quản lý gói GUI có tên SmartPM trên Repos, nó có thể xử lý .deb AND .RPM. Canonical đã đóng góp cho dự án này cho đến tháng 11 năm 2009.

Trang chủ của dự án ở đây https://github.com/smartpm/smart


Chào mừng bạn đến hỏi Ubuntu! Tôi khuyên bạn nên chỉnh sửa câu trả lời này để mở rộng nó với các chi tiết cụ thể về cách sử dụng làm điều này. (Xem thêm Làm thế nào để tôi viết một câu trả lời hay? Để có lời khuyên chung về loại câu trả lời nào được coi là có giá trị nhất trên Hỏi Ubuntu.)
David Foerster

2

Alien là một công cụ chuyển đổi từ một định dạng (.deb hoặc .rpm) sang định dạng khác (.deb, .rpm hoặc tarball)

Người ngoài hành tinh không nên sử dụng trong việc chuyển đổi từ .deb sang .rpm hoàn hảo để sử dụng trong việc chuyển đổi .deb sang tarball

Mặc dù Alien cố gắng bảo toàn dữ liệu meta khi chuyển đổi nhưng nó vẫn có vấn đề về Siêu dữ liệu & phụ thuộc làm cho gói trở nên kém tin cậy hơn và do đó sẽ xung đột khi thêm hoặc xóa các gói phân biệt trong tương lai.


2

Thực tế lựa chọn ngắn nhất là

sudo alien -i -k packagename.rpm

Đừng có người ngoài hành tinh? Lấy một cái!

sudo apt-get install alien

Alien sẽ chuyển đổi gói vòng / phút thành gói deb, tùy chọn -i có nghĩa là cài đặt gói đã chuyển đổi sau khi được chuyển đổi và tùy chọn -k đảm bảo phiên bản không +1 sau khi chuyển đổi.


2

Làm theo những chỉ dẫn này:

alien -k avg71lms-r30-a0782.i386.rpm

Bây giờ bạn nên có avg71lms-r30-a0782.i386.debtập tin.

Để cài đặt tệp .deb:

dpkg -i avg71lms-r30-a0782.i386.deb

Nếu bạn không sử dụng -ktùy chọn, bạn sẽ thấy avg71lms_r30-1_i386.debtệp khác biệt là nó sẽ thêm 1.

Cài đặt người ngoài hành tinh trong Ubuntu:

sudo apt-get install alien

Bạn có thể kiểm tra phần trên cho các tùy chọn có sẵn


1

Với người ngoài hành tinh, tôi chỉ có thể chuyển đổi tệp .rpm thành tệp .deb và chỉ cần cài đặt tệp đó.

Alien có sẵn trong kho Debian bình thường, vì vậy chúng ta có thể cài đặt nó như thế này:

sudo apt-get install alien

Để chuyển đổi nó thành một gói .deb, chúng ta chỉ cần chạy

alien *.rpm

Bạn rất có thể muốn sử dụng một số cờ với người ngoài hành tinh. Ít nhất, nó sẽ cảnh báo bạn về việc không chuyển đổi các tập lệnh mà không chỉ định rõ ràng --scripts(hoặc -c)
Randall

0

sử dụng người ngoài hành tinh chuyển đổi vòng / phút thành deb và sau đó cài đặt deb.


Chào mừng bạn đến hỏi Ubuntu! Tôi khuyên bạn nên chỉnh sửa câu trả lời này để mở rộng nó với các chi tiết cụ thể về cách thực hiện việc này. (Xem thêm Làm thế nào để viết một câu trả lời tốt? Cho lời khuyên chung về những gì các loại câu trả lời được coi là có giá trị nhất trên Hỏi Ubuntu.)
David Foerster

0

Đây là GUI cho Alien (Alien là một ứng dụng để chuyển đổi vòng / phút sang deb)

http://code.google.com.vn/p/foxoman/wiki/PackageConverter


-1 "Người ngoài hành tinh" là gì và nó liên quan đến việc cài đặt RPM trong Ubuntu như thế nào?
David foerster

1
Người ngoài hành tinh @DavidFoerster là một ứng dụng để chuyển đổi vòng / phút sang deb
Anwar

2
Đừng nói với tôi, chỉnh sửa câu trả lời của bạn để nói với những người có thể muốn hưởng lợi từ nó. Hơn nữa, tôi khuyên bạn nên chỉnh sửa câu trả lời này để mở rộng nó với các chi tiết cụ thể về cách thực hiện việc này. (Xem thêm Làm thế nào để tôi viết một câu trả lời hay? Để có lời khuyên chung về loại câu trả lời nào được coi là có giá trị nhất trên Hỏi Ubuntu.)
David Foerster
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.