Chuyển đổi gói RPM và DEB bằng Alien

Alien là một công cụ hữu ích cho phép bạn chuyển đổi giữa các định dạng gói Linux khác nhau, phổ biến nhất là chuyển đổi giữa tệp .rpm và .deb.

Công cụ này đặc biệt hữu ích khi bạn cần một gói phần mềm cụ thể nhưng chỉ tìm thấy nó ở một định dạng khác. Mặc dù tác giả đã tuyên bố rằng Alien có thể vẫn còn trong giai đoạn thử nghiệm và có thể không còn được bảo trì, nhưng nó vẫn có thể cứu cánh bạn trong những tình huống nhất định.

Ví dụ, có lúc bạn cần một trình điều khiển máy in dưới dạng .deb nhưng nhà sản xuất chỉ cung cấp tệp .rpm. Trong trường hợp như vậy, Alien có thể giúp bạn chuyển đổi gói và cài đặt thành công.

Tuy nhiên, cần lưu ý rằng Alien không nên được sử dụng để chuyển đổi các tệp hệ thống hoặc thư viện quan trọng. Các tệp này thường có cấu hình khác nhau trên các bản phân phối khác nhau. Chỉ nên sử dụng Alien như một phương án cuối cùng khi các phương pháp cài đặt thông thường không khả dụng.

Alien có khả năng hoạt động trên nhiều bản phân phối Linux, bao gồm Slackware và Solaris, ngoài CentOS, Debian và các bản phân phối tương tự.

Bước 1: Cài đặt Alien và các gói phụ thuộc

Để cài đặt Alien trên CentOS/RHEL 7, bạn cần bật kho lưu trữ EPEL và Nux Dextop theo thứ tự sau:

# yum install epel-release

Bạn có thể kiểm tra trang http://li.nux.ro/download/nux/dextop/el7/x86_64/ để xem phiên bản mới nhất của gói kho lưu trữ Nux Dextop trước khi cài đặt. Phiên bản hiện tại là 0.5 (phát hành ngày 10 tháng 8 năm 2015).

# rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro # rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

Sau đó, chạy lệnh sau:

# yum update && yum install alien

Trên Fedora, bạn chỉ cần chạy lệnh cài đặt Alien.

Trên Debian và các bản phân phối dựa trên Debian, bạn có thể cài đặt bằng lệnh:

# aptitude install alien

Bước 2: Chuyển đổi gói .deb sang .rpm

Trong ví dụ này, chúng ta sẽ sử dụng công cụ dateutils. Chúng ta sẽ tải xuống tệp .deb trên máy CentOS 7, chuyển đổi nó sang định dạng .rpm và cài đặt.

Kiểm tra phiên bản CentOS:

# cat /etc/centos-release

Tải xuống tệp .deb:

# wget http://ftp.us.debian.org/debian/pool/main/d/dateutils/dateutils_0.3.1-1.1_amd64.deb

Chuyển đổi sang .rpm:

# alien --to-rpm --scripts dateutils_0.3.1-1.1_amd64.deb

Lưu ý: Alien có thể tự động tăng số phiên bản phụ của gói đích. Nếu bạn muốn giữ nguyên phiên bản, hãy sử dụng cờ -keep-version.

Nếu bạn thử cài đặt gói .rpm vừa tạo ngay lập tức, bạn có thể gặp lỗi.

# rpm -Uvh dateutils-0.3.1-2.1.x86_64.rpm

Để khắc phục sự cố này, bạn cần cài đặt công cụ rpmrebuild. Trước tiên, hãy bật kho lưu trữ epel-testing:

# yum --enablerepo=epel-testing install rpmrebuild

Sau đó, chạy rpmrebuild:

# rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm

Thao tác này sẽ mở trình soạn thảo văn bản mặc định của bạn. Tìm đến phần %files và xóa các dòng liên quan đến thư mục gây ra lỗi. Lưu và thoát khỏi trình soạn thảo.

Sau khi thoát, bạn sẽ được hỏi có muốn xây dựng lại gói hay không. Chọn 'Y' để tiếp tục. Gói sẽ được tạo lại trong một thư mục chỉ định (khác với thư mục làm việc hiện tại).

Bây giờ bạn có thể cài đặt gói đã được xây dựng lại:

# rpm -Uvh /root/rpmbuild/RPMS/x86_64/dateutils-0.3.1-2.1.x86_64.rpm

Kiểm tra xem gói đã được cài đặt chưa:

# rpm -qa | grep dateutils

Cuối cùng, bạn có thể liệt kê các công cụ đi kèm với dateutils hoặc xem các trang hướng dẫn của chúng:

# ls -l /usr/bin | grep dateutils

Bước 3: Chuyển đổi gói .rpm sang .deb

Ở phần này, chúng ta sẽ chuyển đổi một gói .rpm sang định dạng .deb. Trên một máy Debian Wheezy 32-bit, chúng ta sẽ tải xuống gói .rpm của trình bao zsh từ kho lưu trữ của CentOS 6. Lưu ý rằng zsh không có sẵn trong cài đặt mặc định của Debian.

Kiểm tra các shell hợp lệ và phiên bản Debian:

# cat /etc/shells # lsb_release -a | tail -n 4

Tải xuống tệp .rpm của zsh:

# wget http://mirror.centos.org/centos/6/os/i386/Packages/zsh-4.3.11-4.el6.centos.i686.rpm

Chuyển đổi sang .deb:

# alien --to-deb --scripts zsh-4.3.11-4.el6.centos.i686.rpm

Bạn có thể bỏ qua thông báo về việc mất chữ ký.

Sau một lúc, tệp .deb sẽ được tạo và bạn có thể cài đặt nó:

# dpkg -i zsh_4.3.11-5_i386.deb

Sau khi cài đặt, kiểm tra xem zsh đã được thêm vào danh sách các shell hợp lệ chưa:

# cat /etc/shells

Thẻ: alien RPM deb chuyển đổi gói linux

Đăng vào ngày 3 tháng 8 lúc 08:19