我需要这些软件包以及为 ubuntu/natty 反向移植的最新上游版本
- libccid_1.4.5-0ubuntu1_amd64.deb
- libpcsclite1_1.8.1-0ubuntu1_amd64.deb
- libpcsclite-dev_1.8.1-0ubuntu1_amd64.deb
- libusb-1.0-0_1.0.9-0ubuntu1_amd64.deb
- libusb-1.0-0-dev_1.0.9-0ubuntu1_amd64.deb
- opensc_0.12.2-1ubuntu1ppa1~natty1_amd64.deb
- pcscd_1.8.1-0ubuntu1_amd64.deb pcsc-tools_1.4.18-0ubuntu1_amd64.deb
我尝试从源代码构建它们并进行更新,但失败了。我不是包装方面的专家,而且网上有很多教程和食谱。
您知道关于反向移植 Ubuntu 软件包的优秀且最新的教程吗?
如何获取其他版本的软件包而不用自己构建它们?
答案1
你最好探索一下 apt pinning,请参阅man apt_preferences
。
假设您使用 Oneiric 并且想要从 Precise 获取这些包。
如果你读了man
你会发现我复制/粘贴了相关部分,只是修改了发布名称
/etc/apt/preferences
:
Package: libccid
Pin: release n=precise
Pin-Priority: 990
Package: libpcsclite*
Pin: release n=precise
Pin-Priority: 990
Package: libusb*
Pin: release n=precise
Pin-Priority: 990
Package: opensc
Pin: release n=precise
Pin-Priority: 990
Package: pcscd
Pin: release n=precise
Pin-Priority: 990
Explanation: Uninstall or do not install any Ubuntu-originated
Explanation: package versions other than those in the oneiric release
Package: *
Pin: release n=oneiric
Pin-Priority: 900
Package: *
Pin: release o=Ubuntu
Pin-Priority: -10
然后,我将我的复制/etc/apt/sources.list
到/etc/apt/sources.list.d/precise.list
并将所有出现的 oneiric 替换为 precise。然后运行apt-get update
,最后apt-get upgrade
。
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
libpcsclite1 libusb-0.1-4 libusb-1.0-0 libusbmuxd1
4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 86.0 kB of archives.
After this operation, 88.1 kB disk space will be freed.
Do you want to continue [Y/n]? y
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/main libusb-0.1-4 amd64 2:0.1.12-20 [17.6 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ precise/main libusb-1.0-0 amd64 2:1.0.9~rc3-2 [30.9 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu/ precise/main libpcsclite1 amd64 1.7.4-2ubuntu1 [23.5 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu/ precise/main libusbmuxd1 amd64 1.0.7-2 [14.1 kB]
Fetched 86.0 kB in 0s (124 kB/s)
由于某种原因,pcscd 和 opensc 没有安装,可能是因为一开始就没有安装,所以没有什么可升级的,没什么大不了的,我可以使用精确作为参考来安装该版本。
apt-get install opensc pcscd -t precise
-t
请注意,使用packagename/precise
也会起作用。
这里有你想要的最新版本的软件包,以及只有那些包,它们也会自动更新。如果你不再需要它们,只需从中删除条目/etc/apt/preferences
,下次运行时apt-get upgrade
它们就会被删除。如果你删除了整个 prefs 文件,请确保precise.list
也删除该源文件,否则你的系统将尝试更新到最新的软件包集。此外,如果你决定稍后进行 dist-upgrade,你需要删除整个 prefs 文件,删除其他 sources.list 可能是一个好主意,因为优先级较高,升级将发现没有要更新的软件包。
Apt pinning 并不难,你只需要深入挖掘并进行实验。n=
通过检查 可以找到 etc的所有动词apt-cache policy
。
这就是经验丰富的管理员对 apt 和 yum 大加赞赏的原因。您可以简洁地更新服务,并以干净、确定且可维护的方式使它们保持最新状态。
不再需要编译包。
我强烈建议您阅读整个手册页,熟悉概念,并阅读有关 apt pinning 的其他指南,然后再继续执行此建议。祝您好运,玩得开心!