手工修复Cubieboard2下的curl

问题

CB2下我装的是Cubieez系统,一个基于Debian 7 Wheezy的定制系统,加了一些Debian 8的东西,所以显示的lsb版本信息是8.8 Jessie,但是apt源还是Wheezy的。

估计是因为硬件厂商的NAND驱动没开源,所以内核受制于此,只能用Debian 7,但是一些应用需要高版本,所以搞成这样,以致于依赖问题一塌糊涂,我已经不知道多少次因为不小心升级了udev导致系统崩溃了。

这次是因为curl不能用,一运行就报 Segment Fault ,查不到原因,只能换版本用。

查了一下,apt装上的是相当新的7.52.1,算是Debian 9 Stretch的配置版本,试了一下手工更新到最新的7.52.1-5,还是这个错误。

解决

思路当然是降版本使用了。

第一步就是降到最低版,即Wheezy的7.26.0-1,发现有一堆依赖没解决,既然要解决依赖,那就搞个高点的版本吧,可能依赖还少点。

于是下载了7.38.0-4,即Jessie的版本,然后同时手工更新了libcurl3-7.38.0-4和librtmp1:

wget http://ftp.cn.debian.org/debian/pool/main/c/curl/curl_7.38.0-4+deb8u5_armhf.deb
wget http://ftp.cn.debian.org/debian/pool/main/c/curl/libcurl3_7.38.0-4+deb8u5_armhf.deb
wget http://security.debian.org/debian-security/pool/updates/main/r/rtmpdump/librtmp1_2.4+20150115.gita107cef-1+deb8u1_armhf.deb
dpkg -i curl_7.38.0-4+deb8u5_armhf.deb
dpkg -i libcurl3_7.38.0-4+deb8u5_armhf.deb
dpkg -i librtmp1_2.4+20150115.gita107cef-1+deb8u1_armhf.deb
apt-get install -f

注意,最后一句更新时要看提示,不要随便点yes,否则可能后果很严重。比如万一更新了什么不该更新的东西,系统就挂掉了。

最后把版本HOLD住,防止不慎升级:

echo "curl hold" | dpkg --set-selections

推送到[go4pro.org]