如何从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依赖性,我也失败了。
谢耶利

Answers:


1

您也可以尝试从sid存储库下载源程序包,并在您的挤压系统上构建它们。如果有很多依赖项,或者包依赖于挤压中不可用的库版本,则可能会遇到麻烦。

如果这行得通,那么您无需像使用引导方法那样在单独的文件夹中维护其他发行版。


1
apt-pining是执行此操作的正确方法,TBH。jaqque.sbih.org/kplug/apt-pinning.html
罗布

9

您真正想要的是学习apt-pinning。http://jaqque.sbih.org/kplug/apt-pinning.html


如果所需的软件包没有反向端口,则需要此文件。否则,我会押注往后移植一般更好地运行。
d -_- b 2014年

1
是的 后退是一个更安全的选择。Apt固定并不总是有效,有时会超出您的期望(如果您从sid中拉出libc6,没人会想要帮助!)
Rob

4

该软件包可在Debian Backports中获得,这将使您的生活更加轻松。这些通常是从测试或不稳定(sid)中拉出的程序包,并“反向移植”到当前的稳定版本。

将此行添加到您的 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从目录中所需的任何发行版安装新的debian系统。然后,chroot让您在其他发行版中运行程序,而无需重新启动或执行任何操作。

您还可以使用mount --bindchroot的系统访问您的主文件夹,/ proc等。

在chroot系统中,apt-get将从sid存储库安装。

有关更多详细说明,请参阅https://wiki.ubuntu.com/DebootstrapChroot

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.