如何找到通过终端安装的软件包?


12

我学习Shell已有几周了,并安装了几个软件包。我知道/记得其中一些是什么,例如oh-my-zsh和emacs 24(这是升级到的噩梦),但不确定是否还有其他内容。我使用了curl,wget和Macports等不同的方法。

我的问题是,是否以及何时要全新安装MacOS,如何备份或脚本化这些软件包的全新安装?换句话说,当我重新安装MacOS时,将不会使用Migration Assistant从Time Machine还原:而是我将安装系统并手动还原文件。我如何知道使用命令行在以前的安装中安装的安装路径和依赖关系?系统是否在某个地方维护一个txt文件,以跟踪已安装的文件?

(MacOS 10.8.2)

Answers:


12

由于OS X没有软件包管理器,因此您可以通过MacPorts或Installer手动安装任何内容。

如果要列出终端可以访问的二进制文件,可以运行以下命令来检查最常见的点,并将结果输出为文本文件:

touch ~/Binaries.txt
ls /usr/bin > ~/Binaries.txt
ls /usr/sbin >> ~/Binaries.txt
ls /usr/local/bin >> ~/Binaries.txt
ls /usr/local/sbin >> ~/Binaries.txt
ls /opt/local/bin >> ~/Binaries.txt
ls /opt/local/sbin >> ~/Binaries.txt

另外,如果您只想通过MacPorts安装软件包,请运行以下命令(这可能是您想要的软件包):

touch ~/MacPorts.txt
port installed > ~/MacPorts.txt

对于自制

touch ~/HomeBrew.txt
brew list > ~/HomeBrew.txt

最后,对于安装程序安装的所有软件包

touch ~/InstalledPackages.txt
pkgutil --packages > ~/InstalledPackages.txt

例如,要从上面生成的列表中还原MacPorts端口,请使用以下命令:

 port install $(cat ~/MacPorts.txt)

没问题!如果可以解决您的问题,请标记为接受:)
Yasyf

5
运行port list requested而不是而不是更好port installed,这样MacPorts才能仅按顺序使用正在使用的依赖项?
Deditos

0

列出您已安装的端口:

port echo requested > ports.txt

以后在新系统上安装这些端口的最新版本

sudo port install $(cut -f1 -d\  ports.txt | uniq)

也可以看看

port help echo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.