Cách chuyển đổi gói cài đặt Linux sang các định dạng khác

Chương trình alien chuyển đổi các gói cài đặt từ một bản phân phối Linux để sử dụng trên một bản phân phối khác. Nhưng bây giờ Snap và Flatpak không biến điều đó thành thừa sao? Đại loại, nhưng nó không hoàn toàn đơn giản.

Hệ thống đóng gói Linux

Để cho phép người dùng cài đặt phần mềm, các bản phân phối Linux cần có hệ thống đóng gói phần mềm. Nếu bản phân phối là một nhánh của một bản phân phối đã được thiết lập khác, nó thường sẽ gắn bó với hệ thống đóng gói của bản phân phối cũ hơn.

Đó là lý do tại sao Fedora sử dụng các gói RPM (từng là viết tắt của RedHat Package Manager) và Ubuntu và vô số ứng dụng con của nó sử dụng các gói DEB . DEB chỉ đơn giản là viết tắt của “Debian.” Các bản phân phối khác chọn viết hệ thống quản lý gói của riêng họ. Các tệp cài đặt được đóng gói cho một trình quản lý gói không thể hoán đổi cho nhau với các trình quản lý gói khác.

Theo truyền thống, các nhà phát triển ứng dụng phải đóng gói ứng dụng của họ theo mọi định dạng mà họ chọn để hỗ trợ hoặc làm việc với những người bảo trì các bản phân phối Linux khác nhau và chuyển các bước đóng gói cho họ. Phần thứ hai dẫn đến sự chậm trễ trong việc đưa các bản phát hành mới đến tay người dùng, phần thứ hai mang lại cho các nhà phát triển rất nhiều công việc bổ sung.

Các dự án Snap và Flatpak cố gắng cung cấp Chén Thánh về phân phối gói: gói ứng dụng của bạn một lần và cài đặt nó trên bất kỳ bản phân phối Linux nào. Tất nhiên, có thể có hoặc không có Snap hoặc Flatpak cho ứng dụng bạn đang theo đuổi.

Bạn có thể loại bỏ hoàn toàn hệ thống đóng gói khỏi phương trình, miễn là bạn cảm thấy thoải mái với việc sao chép kho lưu trữ Git và xây dựng ứng dụng từ mã nguồn. Nhưng không phải ai cũng vậy. Và không phải tất cả các ứng dụng — ngay cả trên Linux — đều là nguồn mở, vì vậy bạn không thể tạo mọi thứ từ nguồn.

Những người bảo trì một số bản phân phối rất giỏi trong việc lấy các gói cho các nền tảng khác và đóng gói lại chúng cho hệ thống quản lý gói của riêng họ, bao gồm các ứng dụng mã nguồn đóng. Nhưng sẽ luôn có những trường hợp ứng dụng cung cấp DEB hoặc RPM — hai định dạng lớn — và mọi người khác cần tự tìm hiểu.

Các chương trình như alien tồn tại để giải quyết vấn đề chuyển đổi tệp gói từ bản phân phối khác sang phiên bản bạn cần trên máy tính Linux của mình. Về lý thuyết thì điều đó tốt, nhưng họ thành công đến mức nào?

Thí nghiệm về alien

Chúng tôi đã lấy ba RPM khác nhau và được sử dụng alien để chuyển đổi chúng thành DEB. Sau đó, chúng tôi đã cố gắng cài đặt các DEB mới được tạo trên Ubuntu.

Trong tất cả các trường hợp thử nghiệm của chúng tôi, cũng có một DEB có sẵn để tải xuống, vì vậy những gì chúng tôi đang làm thực sự là thừa. Nhưng chúng tôi nghĩ rằng các ứng dụng thử nghiệm— trình duyệt Microsoft Edge , trình soạn thảo Atom và Slack — sẽ là một thử nghiệm tốt về alien khả năng của các ứng dụng này, vì vậy chúng tôi đã bỏ qua các DEB không có sẵn.

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

Việc cài đặt alien rất đơn giản trên Ubuntu, Fedora và Manjaro.

Trên Ubuntu, bạn có thể sử dụng lệnh này:

sudo apt install alien

Cài đặt người ngoài hành tinh trên Ubuntu

Trên Fedora, bạn cần nhập:

sudo dnf install alien

Cài đặt người ngoài hành tinh trên Fedora

Trên Manjaro, gói alien nằm trong Kho lưu trữ người dùng Arch. Điều này có nghĩa là pacman sẽ không thể nhìn thấy nó, vì vậy chúng tôi cần sử dụng một chương trình trợ giúp AUR như yay. Tên gói cũng hơi khác một chút.

yay -S alien_package_converter

Cài đặt người ngoài hành tinh trên Manjaro

Sử dụng người ngoài hành tinh

Để sử dụng alien, bạn chỉ định tệp bạn muốn chuyển đổi và định dạng bạn muốn chuyển đổi. Nó tạo một tệp có cùng tên tệp — thường — và có phần mở rộng của định dạng bạn yêu cầu.

Việc sử dụng alien để tạo gói làm alien tăng số phiên bản của gói. Nếu số gói có trong tên tệp, tên tệp cũng sẽ được thay đổi.

Đây là những định dạng alien có thể chuyển đổi từ và sang.

  • -d : Chuyển đổi sang tệp DEB, dành cho Debian, Ubuntu và tất cả các dẫn xuất.
  • -r : Chuyển đổi sang tệp RPM, cho RedHat, CentOS và Fedora.
  • -t : Chuyển đổi thành tệp lưu trữ TAR.GZ , dành cho các hệ thống dựa trên Arch và Arch như EndeavourOS và Manjaro .
  • -l : Chuyển đổi sang tệp LSB, tệp Cơ sở Tiêu chuẩn Linux. Đây là một sáng kiến ​​khác để phát triển một định dạng gói phân phối chéo.
  • -p : Chuyển đổi sang tệp PKG, một định dạng được Solaris sử dụng trong số những định dạng khác.
  • –To-slp : Chuyển đổi sang gói SLP, một định dạng được sử dụng bởi bản phân phối Stampede Linux đã ngừng hoạt động.

Tùy chọn định dạng mà chúng tôi sẽ sử dụng là -d(DEB) khi chúng tôi đang chuyển đổi thành tệp DEB. Chúng tôi cũng sẽ sử dụng -c tùy chọn (tập lệnh) để chuyển đổi bất kỳ tập lệnh nào có trong gói.

Microsoft Edge

Chúng tôi đã tải xuống RPM cho trình duyệt Edge của Microsoft và chạy lệnh sau trên đó:

sudo alien -d -c microsoft-edge-beta-97.0.1072.54-1.x86_64.rpm

Chuyển đổi Edge RPM thành tệp DEB

Nếu không có tùy chọn -c (tập lệnh), nó không tạo được tệp DEB, nó đã báo lỗi. Với tùy chọn -c, nó đã tạo ra DEB.

Tệp RPM gốc và tệp DEB mới được tạo

Lưu ý rằng tên tệp DEB chứa 54-2, không phải 54-1.

Việc chuyển đổi tập lệnh khó có thể kết thúc tốt đẹp. Chúng có thể được viết cho một tình huống cụ thể hoặc cấu hình duy nhất cho nền tảng đích chính hãng của tệp gói gốc. Vì điều này, chúng tôi không có hy vọng cao. Tuy nhiên, chúng tôi đã cố gắng cài đặt DEB bằng chương trình dpkg và tùy chọn -i (cài đặt).

sudo dpkg -i microsoft-edge-beta_97.0.1072.54-2_amd64.deb

Nó không hoạt động.

Chúng tôi cũng đã thử nhấp đúp vào tệp DEB và sử dụng ứng dụng Phần mềm Ubuntu để cài đặt DEB. Điều thú vị là ứng dụng Phần mềm biết rằng DEB đã được tạo ra bởi alien.

Điều đó cũng không hoạt động. Chỉ để đảm bảo rằng trình duyệt Edge sẽ thực sự cài đặt trên Ubuntu, chúng tôi đã cài đặt tệp Microsoft Edge DEB chính thức.

sudo dpkg -i microsoft-edge-beta_97.0.1072.54-1_amd64.deb

Lệnh cài đặt cho tệp Microsoft Edge DEB chính thức

Điều đó hoạt động mà không có vấn đề. Bạn có thể thấy bên dưới Microsoft Edge đang chạy trên Ubuntu.

Trình chỉnh sửa Atom

Chúng tôi đã tải xuống gói cài đặt RPM cho trình chỉnh sửa Atom phổ biến. Chúng tôi đã sử dụng lệnh alien tương tự để chuyển đổi nó thành DEB.

sudo alien -d -c atom.x86_64.rpm

Chuyển đổi tệp Atom RPM thành tệp DEB

Điều đó đã tạo ra một tệp DEB mà không có bất kỳ cảnh báo hoặc lỗi nào. Chúng tôi đã cài đặt nó bằng cách sử dụng dpkglệnh với -itùy chọn (cài đặt).

sudo dpkg -i atom_1.58.0-1.1_amd64.deb

Cài đặt Atom từ tệp DEB mới tạo

Điều đó đã hoạt động hoàn hảo.

Ứng dụng nhắn tin doanh nghiệp Slack

Cuối cùng, chúng tôi đã thử chuyển đổi RPM của Slack thành DEB.

sudo alien -d -c slack-4.23.0-0.1.fc21.x86_64.rpm

Chuyển đổi tệp Slack RPM thành tệp DEB

Một lần nữa, điều này đã tạo ra một DEB không có cảnh báo và không có lỗi. Chúng tôi đã sử dụng lệnh cài đặt này:

sudo dpkg -i slack_4.23.0-1.1_amd64.deb

Cài đặt Slack từ tệp DEB mới tạo

Quá trình cài đặt hoạt động hoàn hảo. Slack đã được thiết lập và chạy mà không có vấn đề gì.

Kết quả hỗn hợp

Một tiện ích như vậy alien chắc chắn sẽ chiến đấu với một trận chiến khó khăn. Tỷ lệ cược được xếp chồng lên nhau để nó có thể hoạt động trong mọi trường hợp và điều này được tạo ra bởi một lượng nhỏ thử nghiệm của chúng tôi. Phải nói rằng, khi nó hoạt động thì thật tuyệt.

Nếu bạn đang ở trong tình huống không có gì khác cho nó, hãy thử alien. Nhưng nếu có bất kỳ phương pháp nào khác dành cho bạn — Snap, Flatpak hoặc xây dựng từ nguồn — hãy thử những phương pháp đó trước. Ngay cả các tác giả alien cũng biết những hạn chế của nó, và đưa cảnh báo này vào trang  man:

Alien không nên được sử dụng để thay thế các gói hệ thống quan trọng, như init, libc hoặc những thứ khác cần thiết cho hoạt động của hệ thống của bạn. Nhiều gói trong số này được thiết lập khác nhau bởi các bản phân phối khác nhau và các gói từ các bản phân phối khác nhau không thể được sử dụng thay thế cho nhau. Nói chung, nếu bạn không thể gỡ bỏ một gói mà không làm hỏng hệ thống của mình, đừng cố thay thế nó bằng một phiên bản dành cho người nước ngoài.

Mặc dù nó có thể giúp bạn thoát khỏi lỗ hổng, nhưng hãy đảm bảo rằng bạn đã sử dụng hết các khả năng khác trước khi chuyển sang alien.

Nhưng, khi không có gì khác, alien có thể chỉ làm bạn ngạc nhiên.

Đọc tiếp

Có thể bạn quan tâm

Có thể bạn quan tâm