Ubuntu18.04 离线本地源的制作

转载自:https://blog.csdn.net/yruilin/article/details/85124870
参考文档:

https://my.oschina.net/u/3362827/blog/860711

https://blog.csdn.net/candcplusplus/article/details/52156324

https://www.cnblogs.com/silvermagic/p/7665841.html

https://blog.csdn.net/junbujianwpl/article/details/52811153

环境:

一台能上网的Ubuntu电脑,一台不能上网的Ubuntu电脑。Ubuntu版本都是18.04LTS。

目标:

将能上网的Ubuntu电脑安装的软件制作成源,通过U盘拷贝给内网电脑,内网电脑根据此离线源通过apt安装软件。

为什么不直接拷贝deb安装呢?因为有些软件安装依赖的包比较多。

遇到的问题:

从Ubuntu 16.04 (xenial)起, 在将本地deb软件包创建repo时候,跟14.04以前的版本相比,强制要求gpg对Release文件签名,否则无法使用。

步骤:

1.在外网电脑上,安装gpg软件和相关软件:

apt-get install gnupg
apt-get install rng-tools
密钥创建过程中,需要使用到足够的随机数(random),可先行安装rng-tools, 该工具可以常驻后台的方式, 生成随机数,避免gpg密钥创建过程中的长时间等待问题 

rngd -r /dev/urandom
生成公钥和私钥:

gpg --gen-key
执行gpg会进入一些对话,其中要新建一个用户名username和相应的密码。

结束之后,输入命令,可以查看key:

gpg --list-key
导出gpg公钥和私钥:
私钥,供Server端,对release文件签名使用,好像不做也能签名

gpg -a --export-secret-keys username > Ubuntu_Local_Archive_Automatic_Signing_Key_2017.sec
公钥,需在Ubuntu client 导入,供apt-get使用

gpg -a --export username> username.pub
 2.在外网电脑上准备安装包源

以下是安装包目录

$ sudo rm -rf /var/cache/apt/archives/*  # 清空缓存目录,这一步也可以不做
-d只是下载安装包,并不安装。

$ sudo apt-get -d install <包名>
在本地建一个目录,将下载下来的安装包拷贝到此目录:

$ mkdir /var/debs
$ cp -r /var/cache/apt/archives/*.deb /var/debs/
在debs这个目录创建Packages.gz,注意生成的路径带debs,否则内网安装时会说找不到文件

# apt-ftparchive packages debs > debs/Packages
# cd debs
# gzip -c Packages > Packages.gz
在debs这个目录下创建release file

# apt-ftparchive release ./ > Release
ubuntu apt-get 对软件包索引,首先要求InRelease文件,其次才去找Release、Release.gpg文件; 这情况下, 其实只需要创建InRelease文件(包含Release文件和明文签名)即可:

#gpg --clearsign -o InRelease Release 
#gpg -abs -o Release.gpg Release 
3. 将生成的debs目录和公钥文件username.pub拷贝到U盘

4.在内网的电脑上将debs目录拷贝到/vars/下面,注意和外网的目录一样。

如下并导入公钥。

# apt-key add username.pub
5.在内网电脑上备份apt源文件/etc/apt/source.list,并修改源。

$ sudo gedit /etc/apt/sources.list
将sources.list 原来的内容都注释掉。在最后添加

$ deb file:/var debs/
注意上面的 /var 和 debs/ 之间的空格,以及 “/”。不要写错/var/debs/路径了。
更新索引
$ sudo apt-get update
现在可以安装包了。运行sudo apt-get install <包名> 就会像以前一样安装好了指定的包了。

6.安装包的下载,一键下载所有关联的包,可以参照

https://blog.csdn.net/junbujianwpl/article/details/52811153
————————————————
版权声明:本文为CSDN博主「linlin1975」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yruilin/article/details/85124870

你可能感兴趣的:(Ubuntu18.04 离线本地源的制作)