1. 应用场景
- 当我们需要在多台电脑安装同一个软件,并且这个软件很大,下载需要很长时间;
- 需要安装软件的ubuntu系统不能上网;
2. 制作流程
2.1 环境说明
- 操作系统版本为:18.04.1-Ubuntu
- ubuntu源地址配置文件存储路径为:/etc/apt/sources.list
- 安装包默认存储路径为:/var/cache/apt/archives
2.2 下载安装包
在可以上网的ubuntu系统中将需要离线安装的包下载下来,由于默认ubuntu系统的源下载安装包较慢,将源更新为阿里云的源
sudo vi /etc/apt/sources.list
内容如下:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ bionic universe
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates universe
deb http://mirrors.aliyun.com/ubuntu/ bionic multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ bionic-security universe
deb http://mirrors.aliyun.com/ubuntu/ bionic-security multiverse
通过如下指令下载XXXX软件所需要的deb包,以openssh-server为例:
sudo apt-get -y install openssh-server
执行完上述指令后,openssh-server安装完毕并且安装包已下载至默认存储目录。
2.3 制作离线源
-
新建一个文件夹
在项目根目录新建文件夹offlinePackage
sudo mkdir /offlinePackage
-
拷贝下载的deb包
将下载的deb包拷贝到上述新建的文件夹下
sudo cp -r /var/cache/apt/archives /offlinePackage
-
修改文件夹的权限,可读可写可执行
sudo chmod 777 -R /offlinePackage/
-
安装dpkkg-dev工具
sudo apt-get install dpkg-dev
-
建立deb包的依赖关系
sudo dpkg-scanpackages /offlinePackage/ /dev/null | gzip >/offlinePackage/Packages.gz
-
打包成压缩包
sudo tar zcvf offlinePackage.tar.gz /offlinePackage/
-
将offlinePackage.tar.gz保存即可
3. 离线安装
3.1 拷贝文件到根目录
将offlinePackage.tar.gz复制到根目录下,解压
sudo tar zxvf offlinePackage.tar.gz -C /
3.2 配置ubuntu离线源
添加之前可以先将原来的源备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.back
将安装包所在和源路径添加到系统源文件中,内容如下:
deb [trusted=yes] file:/// offlinePackage/
注意:
- 必须添加[trusted=yes],否则本地源更新失败;
- offlinePackage前面有一个空格;
若搭建局域网内部源,则配置文件内容应修改如下:
deb [trusted=yes] http://192.168.91.128 /
3.3 更新系统源
sudo apt-get update
输出如下:
获取:1 file: offlinePackage/ InRelease
忽略:1 file: offlinePackage/ InRelease
获取:2 file: offlinePackage/ Release
忽略:2 file: offlinePackage/ Release
获取:3 file: offlinePackage/ Packages
忽略:3 file: offlinePackage/ Packages
获取:4 file: offlinePackage/ Translation-en
忽略:4 file: offlinePackage/ Translation-en
获取:5 file: offlinePackage/ Translation-zh
忽略:5 file: offlinePackage/ Translation-zh
获取:6 file: offlinePackage/ Translation-zh_CN
忽略:6 file: offlinePackage/ Translation-zh_CN
获取:3 file: offlinePackage/ Packages
忽略:3 file: offlinePackage/ Packages
获取:4 file: offlinePackage/ Translation-en
忽略:4 file: offlinePackage/ Translation-en
获取:5 file: offlinePackage/ Translation-zh
忽略:5 file: offlinePackage/ Translation-zh
获取:6 file: offlinePackage/ Translation-zh_CN
忽略:6 file: offlinePackage/ Translation-zh_CN
获取:3 file: offlinePackage/ Packages
忽略:3 file: offlinePackage/ Packages
获取:4 file: offlinePackage/ Translation-en
忽略:4 file: offlinePackage/ Translation-en
获取:5 file: offlinePackage/ Translation-zh
忽略:5 file: offlinePackage/ Translation-zh
获取:6 file: offlinePackage/ Translation-zh_CN
忽略:6 file: offlinePackage/ Translation-zh_CN
获取:3 file: offlinePackage/ Packages [11.0 kB]
获取:4 file: offlinePackage/ Translation-en
忽略:4 file: offlinePackage/ Translation-en
获取:5 file: offlinePackage/ Translation-zh
忽略:5 file: offlinePackage/ Translation-zh
获取:6 file: offlinePackage/ Translation-zh_CN
忽略:6 file: offlinePackage/ Translation-zh_CN
获取:4 file: offlinePackage/ Translation-en
忽略:4 file: offlinePackage/ Translation-en
获取:5 file: offlinePackage/ Translation-zh
忽略:5 file: offlinePackage/ Translation-zh
获取:6 file: offlinePackage/ Translation-zh_CN
忽略:6 file: offlinePackage/ Translation-zh_CN
获取:4 file: offlinePackage/ Translation-en
忽略:4 file: offlinePackage/ Translation-en
获取:5 file: offlinePackage/ Translation-zh
忽略:5 file: offlinePackage/ Translation-zh
获取:6 file: offlinePackage/ Translation-zh_CN
忽略:6 file: offlinePackage/ Translation-zh_CN
获取:4 file: offlinePackage/ Translation-en
忽略:4 file: offlinePackage/ Translation-en
获取:5 file: offlinePackage/ Translation-zh
忽略:5 file: offlinePackage/ Translation-zh
获取:6 file: offlinePackage/ Translation-zh_CN
忽略:6 file: offlinePackage/ Translation-zh_CN
正在读取软件包列表... 完成
3.4 离线安装openssh-server
sudo apt-get -y install openssh-server --allow-unauthenticated
注意:一定要带上–allow-unauthenticated参数!