如何在AWS EC2实例上将Packer 1.0.0升级至1.2.2?含卸载方法
嗨,我来帮你搞定Packer升级的事儿~从你给出的which packer输出来看,Packer是安装在/usr/local/packer/latest/packer路径下的,下面给你两种可行的方案:
方法一:直接替换新版本(无需卸载)
大概率/usr/local/packer/latest是个指向旧版本目录的软链接,咱们可以直接替换成新版本:
先确认当前的安装结构,看看
latest指向的实际目录:ls -l /usr/local/packer/latest输出应该会显示它指向
../1.0.0这类旧版本目录。前往HashiCorp官方的Packer版本发布页面,下载对应你EC2实例系统架构的Packer 1.2.2版本二进制压缩包(比如64位Linux对应
packer_1.2.2_linux_amd64.zip,ARM架构则对应packer_1.2.2_linux_arm64.zip)。如果用命令行下载,可执行类似:wget 对应架构的压缩包文件名解压下载好的压缩包:
unzip packer_1.2.2_linux_xxx.zip把
xxx替换成你实际的架构标识。创建新的版本目录,把解压出来的
packer二进制文件移进去:sudo mkdir -p /usr/local/packer/1.2.2 sudo mv packer /usr/local/packer/1.2.2/更新
latest软链接,让它指向新版本目录:sudo rm /usr/local/packer/latest sudo ln -s /usr/local/packer/1.2.2 /usr/local/packer/latest最后验证升级是否成功:
packer --version要是输出
1.2.2就说明搞定啦!
方法二:卸载旧版本后重装
如果你更倾向于彻底清理旧版本再重装,按以下步骤操作:
第一步:卸载旧的Packer 1.0.0
删除旧版本的目录、软链接以及可能的全局可执行文件:
sudo rm -rf /usr/local/packer/1.0.0 sudo rm /usr/local/packer/latest sudo rm /usr/local/bin/packer # 如果之前在bin目录创建过软链的话检查你的环境变量配置文件(比如
~/.bashrc、~/.bash_profile或者/etc/profile),如果有添加Packer路径的行(比如export PATH=$PATH:/usr/local/packer/latest),可以把这行删除,然后执行source ~/.bashrc让变更生效。
第二步:重装Packer 1.2.2
同样前往HashiCorp官方的Packer版本发布页面,下载对应你EC2实例架构的1.2.2版本压缩包。
解压压缩包并移动到指定目录:
unzip packer_1.2.2_linux_xxx.zip sudo mkdir -p /usr/local/packer/1.2.2 sudo mv packer /usr/local/packer/1.2.2/创建软链方便全局调用:
sudo ln -s /usr/local/packer/1.2.2 /usr/local/packer/latest sudo ln -s /usr/local/packer/latest/packer /usr/local/bin/packer验证安装版本:
packer --version
内容的提问来源于stack exchange,提问作者lonecoder

