ฉันมีแพคเกจ deb สำหรับการติดตั้ง
ฉันจะติดตั้งโดยdpkg -i my.deb
หรือโดยฉลาด?
ทั้งสองจะจัดการปัญหาการพึ่งพาซอฟต์แวร์ได้ดีหรือไม่
ถ้าเป็น apt ฉันจะติดตั้งจาก deb โดย apt ได้อย่างไร
dpkg
ไม่สามารถแก้ปัญหาการพึ่งพาได้
ฉันมีแพคเกจ deb สำหรับการติดตั้ง
ฉันจะติดตั้งโดยdpkg -i my.deb
หรือโดยฉลาด?
ทั้งสองจะจัดการปัญหาการพึ่งพาซอฟต์แวร์ได้ดีหรือไม่
ถ้าเป็น apt ฉันจะติดตั้งจาก deb โดย apt ได้อย่างไร
dpkg
ไม่สามารถแก้ปัญหาการพึ่งพาได้
คำตอบ:
เมื่อคุณใช้ในการติดตั้งแพคเกจภายใต้ประทุนจะใช้apt
dpkg
เมื่อคุณติดตั้งแพ็กเกจโดยใช้ apt มันจะสร้างรายการของการขึ้นต่อกันทั้งหมดและดาวน์โหลดจากที่เก็บ
เมื่อการดาวน์โหลดเสร็จสิ้นจะมีการเรียกdpkg
ให้ติดตั้งไฟล์เหล่านั้นทั้งหมดเพื่อสร้างความพึงพอใจต่อการอ้างอิงทั้งหมด
ดังนั้นหากคุณมี.deb
ไฟล์:
คุณสามารถติดตั้งโดยใช้:
sudo dpkg -i /path/to/deb/file
sudo apt-get install -f
คุณสามารถติดตั้งโดยใช้sudo apt install ./name.deb
(หรือsudo apt install /path/to/package/name.deb
)
ด้วยapt-get
เวอร์ชันเก่าคุณต้องย้ายไฟล์ deb ไปยัง/var/cache/apt/archives/
ไดเรกทอรีก่อน สำหรับทั้งคู่หลังจากเรียกใช้งานคำสั่งนี้คำสั่งจะดาวน์โหลดการอ้างอิงโดยอัตโนมัติ
ติดตั้งgdebi
และเปิดไฟล์. deb ของคุณโดยใช้ ( คลิกขวา -> เปิดด้วย ) มันจะติดตั้งแพคเกจ. deb ของคุณด้วยการอ้างอิงทั้งหมด
( หมายเหตุ : APT เก็บรักษาดัชนีแพ็กเกจซึ่งเป็นฐานข้อมูลของแพ็กเกจที่มีอยู่ใน repo ที่กำหนดไว้ใน/etc/apt/sources.list
ไฟล์และใน/etc/apt/sources.list.d
ไดเรกทอรีวิธีการเหล่านี้ทั้งหมดจะล้มเหลวในการตอบสนองการพึ่งพาซอฟต์แวร์หากการพึ่งพาที่ deb จำเป็นต้องใช้ .)
ทำไมต้องใช้งานsudo apt-get install -f
หลังจากsudo dpkg -i /path/to/deb/file
(กล่าวถึงในวิธีแรก)
จากman apt-get
:
-f, --fix-broken
Fix; attempt to correct a system with broken dependencies in place.
เมื่อdpkg
ติดตั้งแพคเกจและการพึ่งพาแพ็คเกจไม่เป็นที่พอใจแพคเกจนั้นจะอยู่ในสถานะ "ไม่ได้กำหนดค่า" และแพ็กเกจนั้นจะถือว่าใช้งานไม่ได้
sudo apt-get install -f
คำสั่งพยายามแก้ไขแพ็กเกจที่ใช้งานไม่ได้นี้โดยติดตั้งการพึ่งพาที่ขาดหายไป
apt-cache search <package name>
เพื่อหาออกถ้าแพคเกจที่มีอยู่ในดัชนีหรือไม่ทำงาน นอกจากนี้คุณยังสามารถใช้apt-cache policy <package name>
ซึ่งจะให้ข้อมูลเพิ่มเติมเช่นกัน
apt-get install /path/to/package/name.deb
การติดตั้งแพคเกจเพียงกับ มันจะเรียบร้อยถ้าผู้เขียนคำตอบนี้ตัดสินใจรวมเข้าด้วยกัน ถ้าไม่ฉันจะไปเพิ่มคำตอบที่บางครั้งเมื่อฉันมีตัวแทนเพียงพอที่นี่
ติดตั้งของไฟล์ที่มีfoo.deb
dpkg -i foo.deb
หากมีข้อผิดพลาดบางอย่างที่มีการขึ้นต่อกันที่ไม่ได้รับการแก้ไขให้รันapt-get install -f
หลังจากนั้น
Unable to locate package
ลองด้วยวิธีนี้แล้วก็งง ฉันใช้ใน Windows เพียงแค่ชื่อแพ็คเกจหลังจากเปลี่ยนไปใช้โฟลเดอร์เก็บถาวร ควรเป็น./<file name>
Unix หากอยู่ในโฟลเดอร์ปัจจุบันหรือเส้นทางแบบเต็ม นั่นคือถ้าไม่ได้อยู่ในโฟลเดอร์ในปัจจุบันdeb
PATH
นี่คือวิธีที่ดีที่สุดในการติดตั้ง.deb
ไฟล์บน Ubuntu ในบรรทัดคำสั่ง:
sudo gdebi skype.deb
หากคุณไม่ได้มีการติดตั้งไว้แล้วติดตั้งโดยใช้gdebi
sudo apt install gdebi-core
gdebi
จะค้นหาการอ้างอิงทั้งหมดของ.deb
ไฟล์และจะติดตั้งก่อนที่จะพยายามติดตั้ง.deb
ไฟล์ ฉันพบว่าสิ่งนี้ดีกว่าsudo dpkg -i skype.deb && sudo apt install -f
มาก หลังมีความกระตือรือร้นมากเกินไปที่จะลบการอ้างอิงในบางสถานการณ์ ตัวอย่างเช่นเมื่อฉันพยายามติดตั้ง Skype ก็พยายามลบแพคเกจ 96 (!) รวมถึงแพ็คเกจ like compiz
และunity
! gdebi
ให้ข้อความแสดงข้อผิดพลาดที่ชัดเจนมากขึ้น:
$ sudo gdebi skype.deb
Cannot install 'libqtgui:i386'
(นี่คือวิธีแก้ปัญหาเฉพาะนั้นโดยวิธี)
คุณสามารถติดตั้งแพ็คเกจ. deb แบบโลคัลโดย:
sudo apt install ./foo.deb
ตรวจสอบให้แน่ใจว่าได้ระบุโลคัลญาติหรือพา ธ สัมบูรณ์ ( ./
หากอยู่ใน dir ปัจจุบัน) ไม่เช่นนั้นจะค้นหาfoo.deb
รีโมตรีโมตและล้มเหลว
./
ก่อนdeb
ไฟล์
ตรวจสอบการอ้างอิงที่มีdpkg -I my.deb
และการอ้างอิงก่อนapt-get install
dpkg -i my.deb
อาจเป็นคุณสามารถคัดลอก
ใช้งานไม่ได้my.deb
ใน/var/cache/apt/archives
และติดตั้งโดยตรงกับapt-get
แต่ฉันไม่เคยลอง apt-get
และdpkg
กำลังมองหาแพ็คเกจที่อยู่ในรายการเอกสารสำคัญ
apt-get install my.deb
โดยapt-get install
? มันจะติดตั้งจากไฟล์ deb หรือไม่? ทำไมเราต้องการdpkg -i my.deb
หลังจากนั้น
.deb
ที่มีต่อdpkg -i
ความเข้าใจของฉันที่apt
ไม่ได้มีตัวเลือกในการติดตั้งพวกเขานอกเหนือไดเรกทอรีใน/var/cache/...
ที่จะมีการดาวน์โหลด (ผมอาจจะผิด)
apt-get install ./my.deb
จะทำอะไรบางอย่างเพราะมันออกมาหลายสิ่งหลายอย่าง มันทำอะไร?
-f
คำตอบที่ง่ายที่สุดที่จะใช้ dpkg dpkg -i packagename.deb
โดยการเรียกใช้ dpkg -r packagename.deb
จากนั้นคุณสามารถถอนการติดตั้งโดยการเรียกใช้
apt-get
มีการติดตั้งระดับที่สูงขึ้นตามออกของ dpkg apt-get install packagename.deb
และเป็นเช่นคุณสามารถ
มันจะเป็นประโยชน์สำหรับการเพิ่มไปยังไดเรกทอรี apt-get archives ของคุณ ( /var/cache/apt/archives
) เพื่อให้คุณสามารถอ้างอิงเป็นแพ็กเกจที่มีการอ้างอิงและไม่ใช่ไฟล์เก็บถาวร. deb แบบสแตนด์อโลน
นอกจากนี้โดยการเพิ่มการได้รับฉลาดไดเรกทอรีที่เก็บถาวรของคุณคุณมีโอกาสที่จะใช้อ้างอิงกับ
apt-get install packagename
สิ่งนี้จะช่วยให้คุณติดตั้งได้ด้วยการขึ้นต่อกันใด ๆ ที่เพิ่มเข้ามาด้วยตนเองแทนการใช้ระบบเก็บถาวรแบบสแตนด์อโลนของ dpkg
โมเดิร์น apt-get apt-get install /path/to/package/name.deb
สามารถนำมาใช้ในการติดตั้งแพคเกจเพียงกับ
(ควรทำเพื่อแก้ไขคำตอบยอดนิยม แต่ถูกปฏิเสธ - ดูhttps://unix.stackexchange.com/posts/159114/edit )
apt 1.0.9.8.4 for amd64 compiled on Dec 11 2016 09:48:19
มันง่ายมากถ้าฉันต้องการติดตั้ง Chrome
ติดตั้งไฟล์ Chrome ของคุณเป็น:
dpkg -i googlechrome.deb.
บางครั้งมีโอกาสที่จะได้รับข้อผิดพลาดในการพึ่งพาเช่น:
dpkg: dependency problems prevent configuration of google-chrome-stable:
google-chrome-stable depends on libappindicator1; however:
Package libappindicator1 is not installed.
ดังนั้นเพื่อแก้ไขปัญหาข้างต้นคุณต้องเพิ่มการอ้างอิง ให้คำสั่งต่อไปนี้:
apt-get install -f
หลังจากให้คำสั่งข้างต้นการอ้างอิงจะถูกเพิ่มไปยังเครื่องของคุณและ.deb
ไฟล์Debian package ( ) ของคุณจะถูกติดตั้ง
aptitude
ซึ่งลบแพคเกจที่ไม่จำเป็นเช่นกัน