Ubuntu 16.04 LTS制作本地源
一台主机(Ubuntu 16.04)不能连外网,但是另一台笔记本可以上外网,安装的也是Ubuntu16.04。现需要将安装的包先在笔记本上下载好,然后通过U盘转移到那台不能连外网的主机上,再在那台主机上通过本地包安装,这就需要制作本地源了,平时apt-get install安装软件时,下载的deb文件都会存放在/var/cache/apt/archives/下,没有网络时就需要将这些deb制作成本地源。
#####下面给出Ubuntu 16.04 LTS本地源制作步骤:
1、在能上网的笔记本上下载好需要的包
$ sudo rm -rf /var/cache/apt/archives/* # 清空缓存目录,这一步也可以不做
$ sudo apt-get -d install <包名> #不安装,只下载
运行完该命令后,需要的包及依赖都会下载到 /var/cache/apt/archives目录下。
2、复制到U盘中
将下载好的包( /var/cache/apt/archives目录下的所有文件)复制到U盘中,准备转移。如果你不想拷贝多余的包文件,你可以提前将 /var/cache/apt/archives 目录清空后再下载需要的包。
# 先在U盘中创建好一个目录archives
$ sudo cp -r /var/cache/apt/archives/* /U盘/archives/
下面转到不能上网的主机上操作
3、在主机上创建包缓存目录
$ sudo mkdir /var/archives
4、将U盘中下载好的包文件全部复制到/var/archives目录下
$ sudo cp -r /U盘/archives/* /var/archives/
5、生成包索引文件
$ sudo touch /var/archives/Packages.gz
$ sudo chmod -R 777 /var/debs/ # 这一步是为了获得文件的可写可读可执行权限,要不然后面会失败
$ sudo dpkg-scanpackages /var/archives/ /dev/null | gzip > /var/archives/Packages.gz -r # 创建索引
6、添加本地源
$ sudo gedit /etc/apt/sources.list
将sources.list 原来的内容都注释掉。在最后添加
$deb file:/// /var/archives/
注意archives后面有一个斜杠,全路径前面还要有空格
7、更新源
sudo apt-get update ---allow-insecure-repositories
sudo apt-get install -f
sudo apt-get install <包名> --allow-unauthenticated
注意事项:本地的源是没有签名的,直接更新ubuntu16.04下的apt会提示找不到release文件,是一种不安全的源,默认是被禁用的。如果还要安装的话需要加上这个 --allow-unauthenticated选项。