我正在使用 shell 脚本配置 Ubuntu 服务器,定义上,配置脚本应该是可复制和幂等的(每次我执行命令时,它都应该始终执行相同的操作)。因此,我需要明确定义包的版本。就我而言,我想安装cURL 7.22.0,所以我尝试过:
apt-get install curl=7.22.0
但由于版本不存在,所以这不起作用。因此,我使用以下命令检查了包缓存中的特定版本apt-cache madison curl
:
curl | 7.22.0-3ubuntu4.14 | http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
curl | 7.22.0-3ubuntu4.14 | http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
curl | 7.22.0-3ubuntu4 | http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
curl | 7.22.0-3ubuntu4 | http://us.archive.ubuntu.com/ubuntu/ precise/main Sources
curl | 7.22.0-3ubuntu4.14 | http://us.archive.ubuntu.com/ubuntu/ precise-updates/main Sources
curl | 7.22.0-3ubuntu4.14 | http://security.ubuntu.com/ubuntu/ precise-security/main Sources
我认为:
apt-get install curl=7.22.0-3ubuntu4.14
是一个聪明的解决方案,但遗憾的是,之后apt-get update
该包消失并7.22.0-3ubuntu4.15
再次出现,因此配置脚本不再起作用。
可以想象这个脚本太脆弱了,完全没用。我该如何避免这个令人讨厌的意外?