acm*_*cme 8 debian software-installation upgrade package-management
我时不时地需要更新在我们的一个测试服务器上运行的软件(主要是 Debian)。几乎每次都让我感到困惑的是,安装软件的方法不止一种。今天我需要升级 Coffeescript。我不知道它最初是如何安装的,因此也不知道如何以最佳方式更新它。
它可以通过 apt 安装,也可以通过克隆 github-project 并自行构建或通过 nodejs 包管理器 npm 手动安装。在我为此苦苦挣扎并手动丢弃所有与咖啡脚本相关的文件和目录之后,我设法进行了全新安装。但是后来我想使用需要安装 nodejs 0.6 和 0.4 的 coffeescript 命令。
那么,让游戏重新开始吧!
nodejs 是手动安装的吗?还是作为包裹?还是上天安排的?我不知道。
所以我问自己,当你真的不知道它最初是如何安装的时,是否有一些简单的策略来更新已安装的软件?这里最好的方法是什么?
您应该遵循一个简单的规则,它可以解决大多数情况:
切勿在不通过包管理器的情况下将文件放在
/bin
,/lib
,/sbin
或/usr
, except/usr/local
下。
这样,如果文件在包管理器管理的区域中,您就知道它来自一个包。如果不是,您知道您手动安装了它。
您应该尽可能坚持使用您的发行版提供的软件包。如果您对发行版未提供的功能有明确的需求,请仅安装第三方软件包。“我想要最新版本”不是一个有效的理由。如果您确实安装了第三方软件包,请记下您从何处获得它们,并将这些软件包(.rpm
或.deb
文件)存档在某处。通过随机网络下载获得 apt 或 yum 源的特权。
对手动安装的程序使用 stow 或 xstow。
使用etckeeper以保持/etc
版本控制之下。每当你做出改变时,用有意义的信息提交。
如果您遇到了一种情况,您以肮脏的方式做事并且迷失了某个软件的来源: