为CentOS与Ubuntu制作离线本地源

简介

  • 在有网络连接的情况下, 我们常使用yumapt来安装软件, 但是也有没有网络的时候, 这时我们就需要为特定软件制作本地源;
  • 可以使用Python自带的SimpleHTTPServer来实现简单局域网的源;

CentOS系统

  • 使用yum安装软件时,下载的*.rpm包缓存在/var/cache/yum/x86_64/7/

创建目录

  • 用于存放特定软件所需的软件包;
1
$ mkdir -p /opt/packages

下载软件包

1
$ yum install -y --downloadonly --downloaddir=/opt/packages python-openstackclient

生成repo文件

1
$ yum install -y createrepo
1
$ createrepo /opt/packages

生成压缩包

1
$ tar -zcf packages.tgz packages/

配置本地源

1
2
$ tar -zxf packages.tgz -C /opt
$ vim /etc/yum.repos.d/local.repo
1
2
3
4
5
[Local]
name=Local Yum
baseurl=file:////opt/packages/
gpgcheck=0
enabled=1
  • 客户端安装软件:
1
$ yum install python-openstackclient

Ubuntu系统

简介

  • 使用apt命令安装软件时,下载的*.deb包缓存在/var/cache/apt/archives/

创建目录

  • 用于存放特定软件所需的软件包;
1
$ mkdir -p /opt/packages

下载软件包

  • 清除旧的缓存:
1
$ rm -f /var/cache/apt/archives/*.deb
  • 下载软件包:
1
$ apt install -d -y --force-yes PACKAGE-NAME

拷贝软件包

1
$ cp /var/cache/apt/archives/*.deb /opt/packages/

生成Packages.gz包

  • Packages.gz中包含软件包信息以及其依赖关系信息;
  • 安装dpkg-dev以便使用dpkg-scanpackages命令生成Packages.gz文件;
1
$ apt install -y dpkg-dev

单机版本地源

  • 此处忽略一切的警告(warning);
1
2
$ cd /opt/
$ dpkg-scanpackages packages/ /dev/null | gzip > /opt/packages/Packages.gz -r
  • 制作成压缩包,便于网络传输;
1
2
$ cd /opt/
$ tar -zcf packages.tgz packages/
  • 将压缩包拷贝到目标主机;

  • 解压压缩包并配置软件源(目标主机):

1
2
$ tar -zxf packages.tgz -C /opt
$ echo 'deb file:///opt/ packages/' > /etc/apt/sources.list

临时的Web共享本地源

  • 此处忽略一切的警告(warning);
1
2
$ cd /opt/packages/
$ dpkg-scanpackages . /dev/null | gzip > /opt/packages/Packages.gz -r
  • 使用Python自带的SimpleHTTPServer会在当前目录启动一个简易的Web服务器;
1
2
$ cd /opt/packages/
$ python -m SimpleHTTPServer PORT
  • 配置软件源(目标主机):
1
$ echo 'deb http://IP:PORT/ /' > /etc/apt/sources.list

搭建Web服务共享本地源

  • 搭建主流的Web服务:Apache服务或Nginx服务;
  • 配置Web服务,根目录指向/opt/packages/
  • 配置软件源(目标主机):
1
$ echo 'deb http://IP:PORT/ /' > /etc/apt/sources.list

安装软件(目标主机)

1
2
$ apt update
$ apt install -y --force-yes PACKAGE-NAME

有你就有世界,感谢有你,昕!
0%