ubuntu 16.04 用离线源进行 apt-get安装

ubuntu 16.04 离线安装

文章目录

    • ubuntu 16.04 离线安装
      • 下载安装包
      • 在不能上网的目标机上创建缓存目录
      • 生成包索引文件(主机)
      • 更换为本地源(目标机)
      • 更新源(目标机)
      • 一些问题:
        • 关于/dev/null
        • 报错:sudo: dpkg-scanpackages: command not found

说明:该方法是为了解决不能上外网的机器的安装依赖问题。大致思路就是将安装包及其依赖放到本地目录,然后生成索引,生成本地源。

系统:Ubuntu 16.04

apt-get version:1.2.32(amd64)

下载安装包

目标机器是一个新安装系统的机器,所以需要做一个完整的包

# 清空缓存目录,该目录存的都是通过apt-get install 安装软件的的安装包及依赖包
sudo rm -rf /var/cache/apt/archives/*  
# 下载安装包,-d选项是只下载,不进行解析安装(只能下载未安装的软件)
# 需要的安装包及依赖都会下载到 /var/cache/apt/archives 目录
sudo apt-get -d install <包名>

在不能上网的目标机上创建缓存目录

sudo mkdir /var/debs
# 将之前机器上/var/cache/apt/archives目录下的所有文件全部拷贝到 /var/debs目录下
sudo cp -r *** /var/debs/

生成包索引文件(主机)

sudo touch /var/debs/Packages.gz
# 必须增加文件的读写执行权限
sudo chmod -R 777 /var/debs
# 创建索引
# /dev/null位置的参数是指定一个文件,文件名不限,该文件的作用是用来重写覆盖deb软件包中控制文件的某些定义
cd /var
sudo dpkg-scanpackages debs  /dev/null  | gzip > debs/Packages.gz

更换为本地源(目标机)

修改 /etc/apt/sources.list 文件

# 备份原文件
cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 修改源文件
sudo vim /etc/apt/sources.list
# 将原来内容全部删掉,然后增加一行
# 注意写法
deb file:/var debs/

更新源(目标机)

sudo apt-get update

然后就可以使用sudo apt-get install命令安装相关的软件了

一些问题:

关于/dev/null

/dev/null位置的参数是指定一个文件,文件名不限,该文件的作用是用来重写覆盖deb软件包中控制文件的某些定义,它的第一行的格式,一行对应一个软件包:

package priority section
#package 指定你所要修改的软件包
#priority 有low,medium,high三个值
#section 用来指定软件包属于哪个section

如果不需要对deb软件包做任何修改你就可以直接指定一个/dev/null文件

报错:sudo: dpkg-scanpackages: command not found

# 需要安装dpkg-dev工具
sudo apt-get install dpkg-dev

command not found

# 需要安装dpkg-dev工具
sudo apt-get install dpkg-dev

你可能感兴趣的:(linux,Ubuntu)