当前位置

大家如果要用apt-get的话,一定要注意不要用rpm -ivh --force,不然就会乱套。Linux的包现在的确是有点混乱,要找出一个好的办法的确不容易。yum, apt-get都还很不成熟,如果装一个软件需要检查所有的关联的话,这个风险太大了,非常容易出问题。我的意见还是软件包要尽量独立,避免不必要的版本冲突和关联检查。

评论

你的意思是不是用静态编译代替动态编译,这样可以避免依赖关系造成的麻烦?

静态编译只能部分解决问题。
apt-get -f install
apt-get dist-upgrade 可以解决部分问题。也可能篡改你的系统!

APT对于依赖关系要求过于严格,
并且确实会篡改系统。

我唯一信任的就是我自己装上去的每一个软件包。

这是很多编程高手类书籍在谈到库文件版本管理时公认的,甚至微软也在学习Unix/Linux的策略————带版本号的动态连接库和符号连接。但是更先进的做法则是为每个或每组软件开辟独立的库名域空间。
实际处理起来很复杂,第三方的软件是永远无法保证按照你的标准去做的。因此,必须建立起我们自己的应用软件服务体系,向用户提供经过测试的软件源。没有这个体系,再好的工具也不能完全解决问题。

静态编译无论从安装还是使用上都很容易被人诟病。

你的问题就在于你解决问题时太过依赖于暴力手段。当 apt-get 提醒你出了问题时,你才发现积重难返了。

多多检查所有的关联,有利于身心健康。版本冲突要尽力避免,关联检查要坚持不懈

除此之外,没有广大的来源,实际使用速度也无法令人满意。
此外,我倒是觉得依赖性问题相对而言还不是很严重,如果你不是经常使用--nodeps参数的话。(--force我觉得无所谓,这通常是某个配置文件已经有了,rpm提示你conflict了而已)

对单用户来说,静态编译要好很多。比如mplayer,相关包有很多,比如ui, lib等等。版本不对,有时候根本用不了。如果静态编译,所有库文件和相关程序解压到一个目录就可以了,setup程序也不用再去找是不是符合相关包。如果安装程序老是提示关联问题,一般用户是很难解决的。