Linux上软件包管理的问题
在服务器上进行实验的时候,经常被环境折磨。其中有一个重要的原因是,apt、yum都是将包和库装在一个总目录下,也就是说某个bin文件夹(/usr/bin)下,混杂了所有的软件。虽然在索引软件的时候,简化了路径。但是环境还是非常容易混乱的(也许是我还不太会使用apt进行包管理)。所以,总结一下目前可行的解决办法。
使用docker
使用docker部署,使用docker部署运行环境目前已经被广泛的认可了,像目前博客托管的平台就是运行在docker创建的环境中的。但是使用docker来部署开发环境,我还是不是很熟悉。所以这里先不讨论这个方案。
使用module
使用module模块是目前高性能计算服务提供商为用户提供定制软件的主要方案,当每次使用时候,需要手动加载相关的软件包,对于个人工作站来说,未免有一些繁琐。如果后续使用HPC进行实验会进一步进行记录。
使用更好用的包管理器
本次实验主要使用homebrew作为包管理器,下载的包的版本都非常的新,比apt好多了。
换成国内源速度会更快:Homebrew国内如何自动安装(国内地址)(Mac OS) - 知乎
homebrew提供预编译好的软件,也提供从源码下载代码编译的方式安装软件。官方对运行在linux上的软件,预编译时设定的 prefix
路径是 /home/linuxbrew/.linuxbrew/
,因此只有安装在这个路径中的软件才不需要进行编译操作,而当修改了此路径会导致所有软件的安装都需要在本机上重新编译一遍,耗时耗力,且容易出现bug(本人已经尝试并体会到),因此不要修改 prefix
路径。
执行上面链接中的脚本即可完成软件的homebrew安装。
homebrew和apt等包管理器的使用方法大体一致:
brew install **
:安装**软件包brew uninstall **
:卸载**软件包brew ls
:展示目前安装的软件包有哪些brew search
:寻找相关的软件包