วิธีการติดตั้งแพคเกจเดียวจาก Debian sid?


8

ยกตัวอย่าง ibus-sunpinyin ซึ่งไม่มีอยู่ในรุ่นบีบ ฉันจะไม่เปลี่ยนระบบทั้งหมดเป็นสาขา sid ดังนั้นฉันต้องการดาวน์โหลดแพคเกจเดียวจากที่เก็บ sid และติดตั้งเช่น:

# Add the sid repository
sudo mv /tmp/sid.list /etc/apt/sources.list.d/

# Error: can't install because version conflicts of libc6:
#     sudo apt-get install ibus-sunpinyin

# This is ok but it will upgrade a lot of mess from sid branch:
#     sudo apt-get upgrade ibus-sunpinyin

# So, instead of apt-get install/upgrade, let me download & install the single package.
# However, this errored again because of version conflicts of libc6:
#      apt-get install --download-only ibus-sunpinyin

## THEN, WHAT CAN I DO? ##

# Remove the sid repository.
sudo mv /etc/apt/sources.list.d/sid.list /tmp

# Install the single package.
sudo dpkg -i ./ibus-sunpinyin-x.x.x.deb

ในการดาวน์โหลดแพคเกจเดียว: คุณสามารถapt-get download ...(สำหรับ apt-get 0.8.11+) aptitude download ...หรือ อย่างไรก็ตามฉันก็ล้มเหลวเช่นกันsudo dpkg -i ibus-sunpinyin-x.x.x.debเนื่องจากการพึ่งพา sid
XièJìléi

คำตอบ:


1

คุณยังสามารถลองดาวน์โหลดแพ็กเกจซอร์สจาก sid repository และสร้างมันบนระบบ squeeze ของคุณ คุณอาจพบปัญหาหากมีการอ้างอิงจำนวนมากหรือหากแพ็กเกจขึ้นอยู่กับเวอร์ชันของไลบรารีที่ไม่สามารถใช้งานได้ในการบีบ

หากวิธีนี้ใช้ได้ผลคุณไม่จำเป็นต้องรักษาการกระจายอื่นไว้ในโฟลเดอร์อื่นเช่นเดียวกับวิธีการ bootstrapped


1
apt-pinning เป็นวิธีที่เหมาะสมในการทำสิ่งนี้ TBH jaqque.sbih.org/kplug/apt-pinning.html
Rob

9

สิ่งที่คุณต้องการจริงๆคือการเรียนรู้เกี่ยวกับ apt-pinning http://jaqque.sbih.org/kplug/apt-pinning.html


คุณต้องการสิ่งนี้หากแพ็คเกจที่คุณต้องการไม่มี backport มิฉะนั้นฉันจะเดิมพัน backport โดยทั่วไปทำงานได้ดีขึ้น
d -_- b

1
ใช่. Backport เป็นเดิมพันที่ปลอดภัยกว่ามาก Apt-pinning อาจไม่ทำงานเสมอไปและบางครั้งจะดึงมากกว่าที่คุณต้องการ (ไม่มีใครอยากช่วยถ้าคุณดึง libc6 จาก sid!)
Rob

4

แพ็คเกจนี้มีในDebian Backportsซึ่งจะทำให้ชีวิตของคุณง่ายขึ้นมาก โดยทั่วไปแล้วแพ็คเกจเหล่านี้จะถูกดึงจากการทดสอบหรือไม่เสถียร (sid) และ "backported" ไปยังรุ่นที่เสถียรในปัจจุบัน

เพิ่มบรรทัดนี้ในของคุณ sources.list

deb http://backports.debian.org/debian-backports squeeze-backports main

จากนั้นเรียกใช้:

apt-get update && apt-get -t squeeze-backports install ibus-sunpinyin

0

วิธีหนึ่งในการแก้ไขปัญหานี้คือการใช้cdebootstrapเพื่อติดตั้งระบบ sid พื้นฐานจากนั้นใช้chrootเพื่อเรียกใช้โปรแกรมที่คุณต้องการภายในระบบใหม่

cdebootstrapติดตั้งระบบเดเบียนใหม่จากการกระจายใด ๆ ที่คุณต้องการในไดเรกทอรี จากนั้นchrootให้คุณเรียกใช้โปรแกรมในการแจกจ่ายอื่น ๆ โดยไม่ต้องบูตเครื่องใหม่หรืออะไรก็ตาม

นอกจากนี้คุณยังสามารถใช้mount --bindเพื่อให้ระบบ chrooted เข้าถึงโฟลเดอร์บ้านของคุณ / proc เป็นต้น

จากภายในระบบ chrooted, apt-get จะติดตั้งจาก sid repository

สำหรับคำอธิบายรายละเอียดเพิ่มเติมโปรดดูที่https://wiki.ubuntu.com/DebootstrapChroot

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.