Cách chuyển đổi giữa các gói Linux bằng Alien | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Cách chuyển đổi giữa các gói Linux bằng Alien

Chia sẻ kiến thức 02/05/2022

Bạn muốn xây dựng lại một gói Linux sang một số định dạng khác mà không mất nhiều thời gian? Hãy làm quen với Alien, một công cụ chuyển đổi định dạng gói mã nguồn mở cho Linux.

Bạn có muốn chuyển đổi một gói Linux sang một số định dạng khác không? Có lẽ gói bạn đang tìm kiếm không có sẵn cho bản phân phối của mình. Hoặc có thể bạn là nhà phát triển và muốn tiết kiệm thời gian bằng cách nhanh chóng đóng gói lại chương trình của mình sang các định dạng khác mà không cần phải xây dựng lại gói.

May mắn là Linux đã có công cụ bạn cần. Với Alien, bạn có thể dễ dàng chuyển đổi gói Linux hiện có của mình sang các định dạng khác thông qua dòng lệnh. Hãy bắt đầu bằng cách cài đặt công cụ này trên hệ thống của bạn.

Cách cài đặt Alien trên Linux

Alien có sẵn trong kho lưu trữ universe của Ubuntu. Để cài đặt nó, trước tiên hãy bật kho lưu trữ universe và cập nhật danh sách gói hệ thống của bạn. Sau đó, cài đặt gói alien bằng APT.

sudo add-apt-repository universe
sudo apt update
sudo apt install alien

Người dùng Debian có thể chỉ cần cài đặt gói này bằng APT:

sudo apt install alien

Alien chưa có sẵn trong kho lưu trữ chính thức của Arch. Tuy nhiên, bạn có thể cài đặt nó từ AUR bằng trình trợ giúp AUR. Trong hướng dẫn này, chúng tôi sẽ sử dụng yay.

yay -S alien

Trên Fedora, CentOS và các bản phân phối dựa trên RPM khác, bạn có thể cài đặt Alien bằng DNF với lệnh:

sudo dnf install alien

Sau khi hoàn tất, hãy xác minh cài đặt bằng cách nhập – alien –version vào terminal. Nếu lệnh trả về thông tin phiên bản cho gói tức là quá trình cài đặt thành công. Nếu không, bạn hãy thử thực hiện lại các bước cài đặt.

Chuyển đổi giữa các gói Linux bằng Alien

Sử dụng Alien, bạn có thể chuyển đổi giữa một số gói Linux, ví dụ như

  1. DEB (bản phân phối dựa trên Debian)
  2. TAR.GZ (Kho lưu trữ được đóng gói)
  3. RPM (Fedora, CentOS và các bản phân phối khác)
  4. PKG (định dạng gói Solaris)
  5. SLP
  6. LSB

Alien có thể đọc các tùy chọn sau:

  1. -d hoặc –to-dpkg: Chuyển đổi gói sang định dạng gói DEB
  2. -r hoặc –to-rpm: Chuyển đổi gói sang định dạng RPM
  3. -t hoặc –to-tgz: Tạo tệp lưu trữ TAR.GZ từ gói được chỉ định
  4. -l hoặc –to-lsb: Tạo gói LSB (Linux Standard Base, hay Cơ sở tiêu chuẩn Linux)
  5. -p hoặc –to-pkg: Chuyển đổi gói được chỉ định sang định dạng PKG
  6. –to-slp: Tạo gói SLP

Cách sử dụng Alien trên Linux

Cú pháp cơ bản của tiện ích là:

sudo alien options filename

trong đó options (các tùy chọn) là các cờ (flag) khác nhau mà bạn có thể sử dụng với lệnh và filename (tên tệp) là đường dẫn tuyệt đối hoặc tương đối đến gói bạn muốn chuyển đổi.

Để chuyển đổi một gói RPM thành DEB, hãy gõ:

sudo alien --d file.rpm
sudo alien --to-deb file.rpm

Để chứng minh cách bạn có thể chuyển đổi một gói sang tất cả các định dạng khác, chúng tôi sẽ chuyển đổi tệp DEB sang các gói Linux khác.

DEB thành RPM:

sudo alien -r file.deb
sudo alien --to-rpm file.deb

DEB thành TAR.GZ:

sudo alien -t file.deb
sudo alien --to-tgz file.deb

DEB thành LSB: 

sudo alien -p file.deb
sudo alien --to-pkg file.deb

DEB thành SLP:

sudo alien --to-slp file.deb

Hãy lưu ý rằng bạn cũng có thể chuyển đổi bất kỳ định dạng gói nào sang bất kỳ định dạng nào khác. Ví dụ: RPM thành LSB, SLP thành PKG, PKG thành DEB, v.v.

Bạn cũng có thể chuyển đổi một gói sang nhiều định dạng bằng một lệnh duy nhất. Tất cả những gì bạn phải làm là chỉ định các cờ cho chuyển đổi như sau:

sudo alien --to-deb --to-rpm --to-tgz file.pkg
sudo alien -d -r -p file.tar.gz

Nếu gói chứa các tập lệnh cụ thể cho định dạng, bạn có thể chuyển đổi các tập lệnh đó bằng cách sử dụng cờ –scripts hoặc -c.

sudo alien --scripts --to-deb file.rpm
sudo alien -c --to-deb file.rpm

Cài đặt các gói sau khi chuyển đổi

Ngoài việc chuyển đổi các gói, Alien cũng có thể cài đặt các gói cho bạn. Bạn có thể thêm cờ –install hoặc -i bằng lệnh để cài đặt ngay gói sau khi chuyển đổi.

Ví dụ:

sudo alien --to-rpm --install file.deb
sudo alien -r -i file.deb

Xử lý thông tin phiên bản trong quá trình chuyển đổi

Theo mặc định, Alien tự động tăng chi tiết phiên bản của gói. Nếu bạn chuyển đổi gói có số phiên bản 1.17.1 bằng Alien, gói được tạo sẽ có số phiên bản 1.17.2 .

Bạn có thể thay đổi mặc định này bằng cách sử dụng cờ -k hoặc –keep-version như sau:

sudo alien --to-rpm -k file.deb
sudo alien --to-rpm --keep-version file.deb

Bây giờ bạn có thể chuyển đổi các gói trong Linux

Là một nhà phát triển, việc xây dựng lại một gói cho các bản phân phối Linux khác nhau có thể khó khăn. Để giải quyết vấn đề này, bạn có thể sử dụng Alien để chuyển đổi gói của mình sang các định dạng Linux khác một cách dễ dàng.

Mặc dù Alien là một tiện ích đáng tin cậy, nhưng bạn không nên dùng nó nếu muốn phát triển đúng các gói gốc (native package) cho các bản phân phối. Ngoài ra, trong khi xuất bản một gói, bạn phải luôn liệt kê ra các phần phụ thuộc (dependencies) mà chương trình yêu cầu.

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/how-to-convert-between-linux-packages-using-alien/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, phường Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        

Cơ quan chủ quản: Công ty Cổ phần Giáo dục Trực tuyến FUNiX
MST: 0108171240 do Sở kế hoạch và Đầu tư thành phố Hà Nội cấp ngày 27 tháng 02 năm 2018
Địa chỉ:
Văn phòng Hà Nội: Tầng 4, Tòa nhà 25T2, Đường Nguyễn Thị Thập, phường Yên Hòa, Hà Nội.
Văn phòng TP.HCM: Lầu 8, Tòa nhà Giày Việt Plaza 180-182 Lý Chính Thắng, phường Nhiêu Lộc, TP. Hồ Chí Minh.
Hotline: 078 231 3602 – Email: info@funix.edu.vn

yêu cầu gọi lại