如何检查FreeBSD上是否已安装端口?
这将在shell脚本中用于配置。即如果已经安装了端口,则跳过安装,否则调用make
命令
在FreeBSD 10+下,你可以使用“pkg”。好的参考是:https://wiki.freebsd.org/PkgPrimer
如果您的端口已安装,则会导致:
# pkg info apache-jmeter
apache-jmeter-3.0.r2
Name : apache-jmeter
Version : 3.0.r2
Installed on : Thu May 5 18:58:45 2016 MSK
Origin : www/jmeter
Architecture : freebsd:10:x86:64
...
除此以外:
# pkg info jmeter
pkg: No package(s) matching jmeter
您永远不应该在通过端口安装的软件上使用“pkg delete”/“pkg remove”,而是在ports树内部使用“make deinstall”。执行“pkg install”会将预编译的软件包下载到您的系统并进行安装。执行“pkg info”*不会告诉您它是否是从端口安装的。
我担心引用的陈述是不正确的。
“端口”只是一个尚未编译和安装的“包”。安装的端口实际上是包,可以像任何其他包一样对待,无论是通过pkg(8)预编译和安装,还是从ports树本地编译然后安装。软件“安装”后,术语“端口”和“包”是同义词。
pkg delete/remove <portname>
可以而且应该使用,可能更好,因为它会提示卸载不再需要的依赖项。特定端口目录中的make deinstall
只会卸载该端口而不会卸载任何其他端口。
pkg info
pkg info <portname>
是正确的答案。