Package management tips

Some tips about package management.

There are two key point that push you to improve the devopts capability. The first is start to build software without the root capabilities on supercomputer. The second is to build softwares on a machine without network connection.

preparation

最理想的环境是在测试环境装一个和部署环境一模一样的虚拟机,或者是真实的节点,这样就能在测试环境中反复演练发现的问题,然后到了真实环境下及时没有网络,也能一下把所有的内容给部署起来。

注意安装虚拟环境的时候,下载对应的节点的时候,需要留意一下对应的节点是x86的架构还是arm的架构,如何是arm的结构,就必须找一个arm的机器,来安装虚拟机,比如mac的UVM,通过qume来模拟不同的架构的硬件。如果自己的机器是一个x86的windows的话,就不太好直接安装arm的操作系统的镜像了。

yum and apt-get

一个无网的机器,安装MPI,能不能在一个网的环境把MPI build好然后直接把binary拷过去,是否存在依赖问题。直接copy也最好是copy完整的安装目录,就是同时包含bin lib share的这个目录

chcecking cache place
/etc/yum.conf 可以设置是否缓存了pkg

download the depedencies

注意一下 apt (apt 是 apt-get的升级版) 与 dpkg 的区别,apt在安装的时候帮忙检测了依赖,但是dpkg不检测,就是安装,如何安装完成之后配置时发现依赖不work,这个时候就会报一些错误。

如果在有网的环境直接apt install … 这个时候会自动把所有的相关的包装好,如果想把这些包同时下载下来的话,目前我的操作流程是这样的:机器A和机器B是同样的OS,机器B不能联网,在机器A上首先 apt install 这时会通过联网的repo检测出所有的依赖包。或者可以通过apt-cache depends 查看到所有的依赖。之后通过apt-get download 就可以把每个依赖包都下载下来。之后把这些包使用U盘copy到另外的机器上,然后采用dpkg -i *.deb 或者是 apt install ./*.deb 从而安装全部的内容。

注意删除的时候 使用 apt purge 才会删除所有的依赖。

在yum的环境下时,yum 是基于rpm进行的管理,方法上与上述的类似,下载的是rpm的包,然后在手动在另外一个机器上安装rpm的包。

transfer rpm to dep

单独安装于系统安装的区别

单独安装是推荐的,可以用 module 加载

一般目录是

$ 某个自定义的目录
bin lib share

系统安装时候bin用的是/usr/bin,share可能用途的是/opt/share,然后lib是/usr/lib,都是系统级的,不方便管理。

vcpkg

spack

homebrew

推荐文章