如何在没有网络的机子上使用yum安装一个软件包?可以通过制作本地yum源实现。
所用的系统是:CentOS-6.10-x86_64,以制作Bitcoin需要的yum源为例:
一、收集所需的所有依赖包
可以在可以联网的机器上执行sudo yum install –downloadonly –downloaddir 命令来只下载所需的软件包,如Bitcoin依赖的包:
sudo yum install --downloadonly --downloaddir=/home/y/Desktop gcc-c++ libtool make autoconf automake openssl-devel libevent-devel boost-devel libdb4-devel libdb4-cxx-devel python3
以上依赖包是来自于https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md
的Fedora系统对应的依赖,因为Centos和Fedora都属于Redhat系列,暂时认为Centos和Fedora是相同的依赖,编译Bitcoin时还有缺少的可以再下载安装。
将这些软件包移动到一个新建的名为BitcoinDependency的文件夹下,将BitcoinDependency文件夹移动到一个新建的名为localYumSocurce的文件夹下。然后将该文件夹拷贝到没有网络的机器上。
二、创建本地yum源
(1) 安装createrepo
yum install createrepo
createrepo 命令用于创建yum源,即为众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。
这里若是在没有网络的机器上安装createrepo,那就在可以联网的机器下载createrepo源码,拷贝过来后根据源码进行编译安装。
(2)在localYumSocurce文件夹的上级目录执行:
createrepo -v localYumSocurce
命令执行完后会发现在localYumSocurce目录下创建了一个repodata文件夹,里面有多个压缩包文件和一个repomd.xml文件。
现在本地yum源就制作好了。
三、新增本地源的.repo文件
在/etc/yum.repos.d目录下新建Local.repo文件,里面写入内容:
[localyumsource]
name=localyumsource
baseurl=file:///home/y/localYumSocurce
enabled=1
gpgcheck=0
如果不希望yum使用网络源,可以将/etc/yum.repos.d目录下的Centos-Base.repo文件重命名为Centos-Base.repo.bak
四、从本地yum源安装软件包
现在可以执行sudo yum install 命令开始从本地yum源安装软件包了。对于本例,即执行:
sudo yum install gcc-c++ libtool make autoconf automake openssl-devel libevent-devel boost-devel libdb4-devel libdb4-cxx-devel python3
发现可以从本地yum源成功安装上述所有软件包了。
参考:
Centos 制作本地yum源