首页 > 解决方案 > raco: 如果已经存在,如何安装或更新它?

问题描述

raco pkg install <package-name>如果包尚不存在则安装它,如果包已存在则安装失败。raco pkg update <package-name>更新包,如果包不存在则失败。

是否有结合这两个命令的 raco 命令?换句话说,是否有一个命令可以在包不存在的情况下安装它,如果包已经存在,也可以对其进行更新?

理由:这种命令在 shell 脚本中很有用。例如,在 Debian/Ubuntu 中,该apt-get install命令具有确切所需的行为,而对于 python,pip install --upgrade也有。是否有 raco 的等价物?

球拍版本:6.11

标签: racketraco

解决方案


您可以使用raco pkg show <package>来检测是否安装了软件包,例如:

mypkg='memoize'
if [ " [none]" = "$(raco pkg show '$mypkg' | tail -1)" ]; then
  raco pkg install "$mypkg"
else
  raco pkg update "$mypkg"
fi

推荐阅读