2007年7月18日星期三

解决 Ubuntu 中的循环依赖 (Cycle Dependency)

最近在VMware中安装了一个Ubuntu系统。由于创建系统时没有要求安装虚拟网卡,因此需要安装Ubuntu的软件包时,需要自己下载deb文件,拖进系统,然后双击调用gdebi进行安装。可是,当我尝试安装G++时却出现了问题:g++-4.1这个包依赖libstdc++6-4.1-dev这个包(也就是C++库),而libstdc++6-4.1-dev又依赖g++-4.1。结果两个包都装不上。





上网搜索,在Ubuntu官方论坛找到了解决方法:

在命令行下执行以下语句
sudo dpkg -i --ignore-depends=libstdc++6-4.1-dev g++-4.1_4.1.2-0ubuntu4_i386.deb
sudo dpkg -i --ignore-depends=g++-4.1 libstdc++6-4.1-dev_4.1.2-0ubuntu4_i386.deb
即可。
(g++-4.1默认安装包名为g++-4.1_4.1.2-0ubuntu4_i386.deb;libstdc++6-4.1-dev默认安装包名为libstdc++6-4.1-dev_4.1.2-0ubuntu4_i386.deb)

也就是说,强行让两个安装包忽略依赖项。

使用apt-get自动安装应该没有这种问题。

2 条评论:

匿名 说...

谢谢,我晕了好多天了,回去试试


最近安装源码包sdl时候,configure成功,最后checkinstall,出现以下错误:

/usr/bin/install -c build/.libs/libSDL.a /usr/local/lib/libSDL.a
chmod 644 /usr/local/lib/libSDL.a
chmod: changing permissions of `/usr/local/lib/libSDL.a': No such file or directory
make: *** [install-lib] Error 1
前一句命名说装了libsdl.a
后面怎么说no such file or directory

安装zlib 时候,类似问题:

cp zlib.h zconf.h /usr/local/include
chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h
chmod: changing permissions of `/usr/local/include/zlib.h': No such file or directory
chmod: changing permissions of `/usr/local/include/zconf.h': No such file or directory
make: *** [install] Error 1

匿名 说...

any more posts coming ?