ubuntu从源下载软件以及制作本地源的部分命令

1、备份已安装软件包列表

sudo dpkg --get-selections > ~/package.selections

2、下载这份软件包列表中的软件

但是不安装,比如制作部分apt mirror时使用

for req in $(cat ~/package.selections | cut -f 1 | cut -f 1 -d  ":" ); do apt-get download $req; done

3、dpkg-scanpackages 制作软件包文件

dpkg-scanpackages ~/ubuntu-local/xenial /dev/null 2>>~/mkpackage.error |gzip > ~/ubuntu-local/xenial/Packages.gz -r

这之后就可以利用apache服务器对外提供服务了。

4、删除过时的软件版本

不断更新本地Mirror,会保留统一软件的的多个版本,删除过时版本。

egrep  "\(filename .*\) is repeat" ~/mkpackage.error | awk '{print $6}' | sed 's/)//' | while read filename
do
  # mv ~/ubuntu-local/xenial/$filename ~/.local/share/Trash/files
  gvfs-trash somefile
done

5、添加本地源的方法

# 使用网络服务形式提供的本地mirror
echo 'deb http://192.168.0.2/ubuntu-local/xenial /' | sudo tee /etc/apt/source.list.d/local.list

6、其他一些有关命令

# 直接根据第1步导出的软件列表 重新下载安装之前系统中的软件
# 如果你安装的软件数量比较多,可能会花费较长时间。
sudo dpkg --set-selections <~/package.selections && sudo apt-get dselect-upgrade

# 每次安装软件后,即时地把新安装的软件包拷贝到Mirror中,后续还需要dpkg-scanpackages
cp /var/cache/apt/*.deb ~/ubuntu-local/xenial/

# sudo chown -R user:pswd ~/ubuntu-local/
# sudo chmod ug+rw,o+r *

发表评论

电子邮件地址不会被公开。 必填项已用*标注