在cubieboard2里安装pptpd碰到的依赖问题处理

前一阵家里那个ATOM服务器的电源坏了,在等配件期间买了一块cubieboard2做备用服务器。这货带一个SATA口,的确是ARM主板中的 大杀器,性能和功能比树莓派强大多了,价格也贵不了多少。目前我的配置是带一块1T的2.5寸硬盘,稳定工作状态下耗电仅2.7W——大约只有ATOM D525主机的十分之一。

本来想装FREEBSD的,但是太麻烦,而需要占用一块TF卡,最后还是用了官方的cubian系统,把图形界面去掉当服务器用。本来是用得还好,不过今天想起在上面装一个PPTP,结果就杯具了。

很正常地用apt-get install pptpd,提示要更新一堆东西,我以为只是正常的upgrade,也就没仔细看,点了YES,然后……

杯具发生了,更新到udev的时候,告诉我这个215版的udev不能安装,因为198版以上需要内核支持什么什么,如果强制更新,后果自负之类……

类似的警告以前也见过,强制更新的后果不堪回首,所以只能取消。但是这时系统的包依赖关系已经坏掉,APT不能使用,提示需要apt-get -f install,但是这样操作的结果就是必须更新udev到215。陷入困境了。

这种问题好像是ARM平台的特色——

由于特定的平台硬件所限(一般是驱动的限制),只能使用指定的内核,但是这种内核通常版本太低,为了能更好地使用应用软件,只能把一些高版本的包打进去,并修改这些依赖关系,可惜的是这种依赖关系的维护者通常做得不够可靠,于是往往要出问题。

cubian就是这样一个系统,虽然它是以debian wheezy为基础,但是部分包是debian jessie的,而udev的版本甚至低于wheezy官方的204版,用的是175版本。前面说到的215版就是debian jessie的版本。

参考以前在ARM平台上的经验《在Moto Atrix4G手机里安装全功能Ubuntu记录》,试图用 dpkg --configure -a 修复,但可耻滴失败了,报告一堆的xorg的东西依赖udev。

于是跑去咨询令狐有没有降级的办法,在他的建议下搜了一圈,但是因为依赖关系已坏,用指定版本号的apt-get安装也不成。

最后只能手工处理:

先用 dpkg -r 把不重要的依赖包全删除——比如我就把xorg的全删了,反正做服务器也不需要它们。

再跑一下apt-get autoremove看看还有什么别的依赖,不太重要的也可以用dpkg -r来删除。

如果有一些比较重要或者依赖它的包特别多(删起来麻烦的)的包,就去debian官网搜一个低版本的(先用dpkg -l | grep看看当前安装的版本号),下载来用dpkg -i安装。

如此折腾了几十个包以后,终于解决了依赖被破坏的问题,apt-get -f install修复成功。

然后看了一下apt里的pptpd包版本……果然是debian jessie用的1.4.0-5版,而且指定其它版本都没有,只好在官网手工下载了一个1.3.4-5.2安装上去,并手工处理了依赖问题后才算成功装上pptpd……

补充:

为了防止以后用apt-get upgrade的时候又把pptpd和udev升级上去,需要把它们hold住(以root身份运行):

echo "pptpd hold" | dpkg --set-selections
echo "udev hold" | dpkg --set-selections

这样就安全了。

推送到[go4pro.org]