平时apt-get install安装软件时,下载的deb文件都会存放在/var/cache/apt/archives/下,没有网络时就需要将这些deb制作成本地源。另外,如果在本机架一个简单的网络服务器,同一局域网内其他机器也可以通过网址访问这个局域网源。例如用Python -m SimpleHTTPServer 1111,就可以建成一个局域网共用的源了。
下面给出Ubuntu 16.04 LTS本地源制作步骤:
一、在自己的根目录下建立一个目录,用于放所有下载的软件包,目录名随自己喜欢,建议新手在自己的根目录下进行以下操作,以避免操作权限问题的困扰。
mkdir ~/ packs
pack_dir=/home/someone/packs
拷贝过来发现在packs当中为文件都是root账户的,需要修改
修改所有者
sudo chown -R someone.someone * $pack_dir
修改权限
sudo chmod ug+rw,o+r * $pack_dir
二、复制文件到packs文件夹下,目录依各人情况变化。
sudo cp /var/cache/apt/archives/* ~/packs -r
三、建立Packages.gz包,里面记录了packs文件夹下面的软件包信息,包括依赖信息。
dpkg-scanpackages $pack_dir /dev/null |gzip > ${pack_dir}/Packages.gz -r
四、加本地源
sudo gedit /etc/apt/sources.list
添加以下内容:
deb file:/// /home/someone/packs/
注意packs后面有一个斜杠,全路径前面还要有空格
如果连不了外网,将所有外网源的链接注释掉。
五、更新源
sudo apt-get update ---allow-insecure-repositories
sudo apt-get install -f
sudo apt-get xxxx --allow-unauthenticated
注意事项:本地的源是没有签名的,直接更新ubuntu1604下的apt会提示找不到release文件,是一种不安全的源,默认是被禁用的。如果还要安装的话需要加上这个 --allow-unauthenticated选项。
不加选项报错如下:
N: Updating from such a repository can‘t be done securely, and is therefore disabled by default.