Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีแปลงแพ็กเกจ Linux ระหว่างรูปแบบต่างๆ ด้วย Alien

คุณต้องการแปลง Linux package ให้เป็นรูปแบบอื่นไหม? อาจเป็นแพ็กเกจที่คุณหาไม่เจอสำหรับ distro ของคุณแต่อยากได้มาก หรือคุณเป็น developer และอยากประหยัดเวลาโดย repack โปรแกรมให้เป็นรูปแบบอื่นๆ ได้เร็วโดยไม่ต้อง build package ใหม่

โชคดีที่ Linux มีเครื่องมือที่คุณต้องการ ด้วย Alien คุณสามารถแปลง Linux package ที่มีอยู่ให้เป็นรูปแบบอื่นๆ ผ่าน command line ได้ง่าย มาเริ่มต้นด้วยการติดตั้งเครื่องมือบนระบบของคุณก่อน

วิธีติดตั้ง Alien บน Linux

Alien มีอยู่ใน Ubuntu universe repository ในการติดตั้ง ให้เปิดใช้งาน repository universe ก่อน และอัปเดต package list ของระบบ จากนั้นติดตั้งแพ็กเกจ alien ด้วย APT ตามปกติ

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

ผู้ใช้ Debian ติดตั้งแพ็กเกจด้วย APT ได้เลย:

sudo apt install alien

Alien ยังไม่มีใน official Arch repositories แต่คุณติดตั้งจาก AUR ได้โดยใช้ AUR helper สำหรับคู่มือนี้ เราจะใช้ yay

yay -S alien

บน Fedora, CentOS และ RPM-based distros อื่นๆ คุณติดตั้ง Alien ด้วย DNF ดังนี้:

sudo dnf install alien

เมื่อเสร็จ ตรวจสอบการติดตั้งโดยพิมพ์ alien --version ใน terminal หากคำสั่งคืนค่า version ของแพ็กเกจ การติดตั้งสำเร็จ แต่หากไม่ ให้ลองทำขั้นตอนติดตั้งใหม่

แปลงระหว่าง Linux Packages ด้วย Alien

ด้วย Alien คุณแปลงระหว่าง Linux packages หลายรูปแบบได้ เช่น:

  1. DEB (Debian-based distros)
  2. TAR.GZ (Packaged Archive)
  3. RPM (Fedora, CentOS และ distros อื่นๆ)
  4. PKG (Solaris package format)
  5. SLP
  6. LSB

Alien ตีความตัวเลือกต่อไปนี้:

  1. -d หรือ --to-dpkg: แปลงแพ็กเกจที่ระบุเป็นรูปแบบ DEB
  2. -r หรือ --to-rpm: แปลงแพ็กเกจเป็นรูปแบบ RPM
  3. -t หรือ --to-tgz: สร้างไฟล์ archive TAR.GZ จากแพ็กเกจที่ระบุ
  4. -l หรือ --to-lsb: สร้างแพ็กเกจ LSB (Linux Standard Base)
  5. -p หรือ --to-pkg: แปลงแพ็กเกจที่ระบุเป็นรูปแบบ PKG
  6. --to-slp: สร้างแพ็กเกจ SLP

วิธีใช้ Alien บน Linux

Syntax พื้นฐานของ utility คือ:

sudo alien options filename

...โดยที่ options คือ flags ต่างๆ ที่ใช้กับคำสั่ง และ filename คือ absolute หรือ relative path ไปยังแพ็กเกจที่ต้องการแปลง

เพื่อแปลงแพ็กเกจ RPM เป็น DEB:

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

เพื่อสาธิตการแปลงแพ็กเกจเป็นรูปแบบทั้งหมด เราจะแปลงไฟล์ DEB เป็น Linux packages อื่นๆ

DEB เป็น RPM:

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

DEB เป็น TAR.GZ:

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

DEB เป็น LSB: sudo alien -l file.deb sudo alien --to-lsb file.deb DEB เป็น PKG:

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

DEB เป็น SLP:

sudo alien --to-slp file.deb

โปรดทราบว่าคุณสามารถแปลงรูปแบบแพ็กเกจใดก็ได้เป็นรูปแบบอื่นใดก็ได้ เช่น RPM เป็น LSB, SLP เป็น PKG, PKG เป็น DEB ฯลฯ

การแปลงแพ็กเกจเป็นหลายรูปแบบด้วยคำสั่งเดียวก็เป็นไปได้ แค่ระบุ flags สำหรับการแปลงดังนี้:

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

หากแพ็กเกจมี scripts เฉพาะรูปแบบ คุณสามารถแปลง scripts นั้นๆ ได้ด้วย flag --scripts หรือ -c

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

ติดตั้งแพ็กเกจหลังการแปลง

นอกจากการแปลงแพ็กเกจแล้ว Alien ยังติดตั้งแพ็กเกจให้คุณได้ คุณเพิ่ม flag --install หรือ -i กับคำสั่งเพื่อติดตั้งแพ็กเกจทันทีหลังแปลง

ตัวอย่าง:

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

การจัดการข้อมูลเวอร์ชันระหว่างการแปลง

โดยค่าเริ่มต้น Alien จะเพิ่ม version details ของแพ็กเกจอัตโนมัติ หากคุณแปลงแพ็กเกจเวอร์ชัน 1.17.1 ด้วย Alien แพ็กเกจที่สร้างขึ้นจะมีเวอร์ชัน 1.17.2

คุณสามารถ override พฤติกรรมค่าเริ่มต้นนี้ได้โดยใช้ flag -k หรือ --keep-version ดังนี้:

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

ตอนนี้คุณแปลงแพ็กเกจใน Linux ได้แล้ว

ในฐานะ developer การ rebuild package สำหรับ Linux distros ต่างๆ อาจยาก ดังนั้นคุณสามารถใช้ Alien แปลงแพ็กเกจเป็นรูปแบบ Linux อื่นๆ ได้ง่าย

แม้ Alien จะเป็น utility น่าเชื่อถือ แต่ไม่แนะนำหากคุณต้องการพัฒนา native packages สำหรับ distros อย่างถูกต้อง นอกจากนี้ ขณะเผยแพร่แพ็กเกจ คุณควรระบุ dependencies ที่โปรแกรมต้องการเสมอ