ค้นหาเว็บไซต์

วิธีการแปลงจาก RPM เป็น DEB และ DEB เป็น RPM Package โดยใช้ Alien


อย่างที่ฉันแน่ใจว่าคุณรู้อยู่แล้วว่า มีหลายวิธีในการติดตั้งซอฟต์แวร์ใน Linux: การใช้ระบบการจัดการแพ็คเกจที่ได้รับจากการแจกจ่ายของคุณ (ความถนัด, yum หรือ zypper เป็นต้น ตัวอย่างบางส่วน), คอมไพล์จากแหล่งที่มา (แม้ว่าจะค่อนข้างจะเป็นเช่นนั้น) ซึ่งหาได้ยากในปัจจุบัน มันเป็นวิธีเดียวที่มีในช่วงยุคแรกๆ ของ Linux) หรือใช้เครื่องมือระดับต่ำ เช่น dpkg หรือ rpm กับ .deb< และ .rpm แบบสแตนด์อโลน แพ็คเกจที่คอมไพล์แล้ว ตามลำดับ

ในบทความนี้ เราจะแนะนำให้คุณรู้จักกับ เอเลี่ยน ซึ่งเป็นเครื่องมือที่จะแปลงระหว่างรูปแบบแพ็คเกจ Linux ต่างๆ จาก .rpm เป็น .deb (และรอง ในทางกลับกัน) เป็นการใช้งานที่พบบ่อยที่สุด

เครื่องมือนี้ แม้ว่าผู้เขียนจะไม่ได้ดูแลรักษามันอีกต่อไปแล้ว และระบุในเว็บไซต์ของเขาว่ามนุษย์ต่างดาวอาจจะยังคงอยู่ในสถานะทดลองอยู่เสมอ แต่ก็มีประโยชน์ได้ถ้าคุณต้องการแพ็คเกจบางประเภท แต่สามารถค้นหาโปรแกรมนั้นได้ในรูปแบบแพ็คเกจอื่นเท่านั้น

ตัวอย่างเช่น เอเลี่ยน บันทึกวันของฉันครั้งหนึ่งเมื่อฉันกำลังมองหาไดรเวอร์ .deb สำหรับเครื่องพิมพ์ อิงค์เจ็ท แต่ไม่พบเลย – ผู้ผลิตจัดเตรียมแพ็คเกจ .rpm เท่านั้น ฉันติดตั้งเอเลี่ยน แปลงแพ็คเกจ และอีกไม่นานฉันก็สามารถใช้เครื่องพิมพ์ได้โดยไม่มีปัญหา

ดังที่กล่าวไปแล้ว เราต้องชี้แจงว่าไม่ควรใช้ยูทิลิตี้นี้เพื่อแทนที่ไฟล์ระบบและไลบรารีที่สำคัญ เนื่องจากมีการตั้งค่าที่แตกต่างกันในการแจกแจง ใช้เอเลี่ยนเป็นทางเลือกสุดท้ายหากวิธีการติดตั้งที่แนะนำในตอนต้นของบทความนี้ไม่เป็นปัญหาสำหรับโปรแกรมที่จำเป็น

สุดท้ายแต่ไม่ท้ายสุด เราต้องทราบว่าแม้ว่าเราจะใช้ CentOS และ Debian ในบทความนี้ แต่ที่ทราบกันว่า Alien ยังทำงานใน Slackware และแม้แต่ใน Solaris นอกเหนือจากการแจกแจงสองรายการแรกและตระกูลตามลำดับ

ขั้นตอนที่ 1: การติดตั้งเอเลี่ยนและการพึ่งพา

หากต้องการติดตั้ง เอเลี่ยน ใน CentOS/RHEL 7 คุณจะต้องเปิดใช้งาน EPEL และ Nux ที่เก็บข้อมูล Dextop (ใช่ มันเป็น Dextop – ไม่ใช่เดสก์ท็อป) ตามลำดับ:

yum install epel-release
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

เวอร์ชันล่าสุดของแพ็คเกจที่เปิดใช้งานพื้นที่เก็บข้อมูลนี้คือ 0.5 (เผยแพร่เมื่อ 10 สิงหาคม 2015) คุณควรตรวจสอบ http://li.nux.ro/download/nux/dextop/el7/x86_64/ เพื่อดูว่ามีเวอร์ชันใหม่กว่าหรือไม่ก่อนดำเนินการต่อ:

rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

แล้วทำ

yum update && yum install alien

ใน Fedora คุณจะต้องเรียกใช้คำสั่งสุดท้ายเท่านั้น

ใน Debian และอนุพันธ์ เพียงทำ:

aptitude install alien

ขั้นตอนที่ 2: การแปลงแพ็คเกจจาก .deb เป็น .rpm

สำหรับการทดสอบนี้ เราได้เลือก dateutils ซึ่งมีชุดยูทิลิตี้ วันที่ และ เวลา เพื่อจัดการกับข้อมูลทางการเงินจำนวนมาก เราจะดาวน์โหลดแพ็คเกจ .deb ลงในกล่อง CentOS 7 ของเรา แปลงเป็น .rpm และติดตั้ง:

cat /etc/centos-release
wget http://ftp.us.debian.org/debian/pool/main/d/dateutils/dateutils_0.3.1-1.1_amd64.deb
alien --to-rpm --scripts dateutils_0.3.1-1.1_amd64.deb

ข้อสำคัญ: (โปรดทราบว่าตามค่าเริ่มต้นแล้ว คนต่างด้าวจะเพิ่มเวอร์ชันรองของแพ็คเกจเป้าหมายได้อย่างไร หากคุณต้องการแทนที่ลักษณะการทำงานนี้ ให้เพิ่ม – Keep-version ตั้งค่าสถานะ)

หากเราพยายามติดตั้งแพ็คเกจทันที เราจะพบปัญหาเล็กน้อย:

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

เพื่อแก้ไขปัญหานี้ เราจะเปิดใช้งาน พื้นที่เก็บข้อมูลการทดสอบ epel และติดตั้งยูทิลิตี rpmrebuild เพื่อแก้ไขการตั้งค่าของแพ็คเกจที่จะสร้างใหม่:

yum --enablerepo=epel-testing install rpmrebuild

จากนั้นวิ่ง

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

ซึ่งจะเปิดตัวแก้ไขข้อความเริ่มต้นของคุณ ไปที่ส่วน %files และลบบรรทัดที่อ้างถึงไดเร็กทอรีที่กล่าวถึงในข้อความแสดงข้อผิดพลาด จากนั้นบันทึกไฟล์และออก:

เมื่อคุณออกไฟล์ คุณจะได้รับแจ้งให้ดำเนินการสร้างใหม่ต่อ หากคุณเลือก Y ไฟล์จะถูกสร้างขึ้นใหม่ในไดเร็กทอรีที่ระบุ (แตกต่างจากไดเร็กทอรีการทำงานปัจจุบัน):

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

ตอนนี้คุณสามารถดำเนินการติดตั้งแพ็คเกจและตรวจสอบได้ตามปกติ:

rpm -Uvh /root/rpmbuild/RPMS/x86_64/dateutils-0.3.1-2.1.x86_64.rpm
rpm -qa | grep dateutils

สุดท้าย คุณสามารถแสดงรายการเครื่องมือแต่ละรายการที่มาพร้อมกับ dateutils และตรวจสอบหน้าคู่มือที่เกี่ยวข้อง:

ls -l /usr/bin | grep dateutils

ขั้นตอนที่ 3: การแปลงจาก .rpm เป็น .deb Package

ในส่วนนี้ เราจะอธิบายวิธีการแปลงจาก .rpm เป็น .deb ในกล่อง Debian Wheezy แบบ 32 บิต มาดาวน์โหลดแพ็คเกจ .rpm สำหรับเชลล์ zsh จาก CentOS 6 OS กัน แข็งแกร่ง> พื้นที่เก็บข้อมูล โปรดทราบว่าเชลล์นี้ไม่สามารถใช้งานได้ตามค่าเริ่มต้นใน Debian และอนุพันธ์

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

wget http://mirror.centos.org/centos/6/os/i386/Packages/zsh-4.3.11-4.el6.centos.i686.rpm
alien --to-deb --scripts zsh-4.3.11-4.el6.centos.i686.rpm

คุณสามารถเพิกเฉยต่อข้อความเกี่ยวกับลายเซ็นที่หายไปได้อย่างปลอดภัย:

หลังจากนั้นสักครู่ ไฟล์ .deb ควรถูกสร้างขึ้นและพร้อมที่จะติดตั้ง:

dpkg -i zsh_4.3.11-5_i386.deb

หลังการติดตั้ง คุณสามารถตรวจสอบว่ามีการเพิ่ม zsh ลงในรายการเชลล์ที่ถูกต้อง:

cat /etc/shells

สรุป

ในบทความนี้ เราได้อธิบายวิธีการแปลงจาก .rpm เป็น .deb และในทางกลับกัน เพื่อติดตั้งแพ็คเกจเป็นทางเลือกสุดท้ายเมื่อโปรแกรมดังกล่าวไม่พร้อมใช้งานในคลังเก็บหรือเป็นซอร์สโค้ดที่แจกจ่ายได้ คุณจะต้องบุ๊กมาร์กบทความนี้ไว้เพราะเราทุกคนจะต้องมีคนต่างด้าวในคราวเดียวหรืออย่างอื่น

อย่าลังเลที่จะแบ่งปันความคิดเห็นของคุณเกี่ยวกับบทความนี้โดยใช้แบบฟอร์มด้านล่าง