做霸道总裁 發表於 2020-6-27 19:20:00

ubuntu制作离线源的几种方法

<p><span style="font-family: 仿宋; font-size: 16px">ubuntu安装软件有多种方式。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">一、使用iso文件挂载到本地,然后使用iso镜像进行软件安装。缺点:需要将操作系统打包做iso镜像。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">二、使用apt-mirror下载第三方源到本地,然后使用apache做服务,制作局域网源。缺点:第三方源很大,一般都是几十G,需要下载很久,而且占用磁盘很大。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">三、拷贝能联网的机器的deb安装包到不能联网的服务器,然后制作本地源进行安装,如果ubuntu14以下,不用制作release签名,如果ubuntu14以上,需要制作release签名,具体操作步骤见以下说明。缺点:操作繁琐易出错,但是定制化程度高,可以安装自己需要的包,不需要安装多余的包。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">四、如果上述三个方法在操作过程中有其他错误无法完成安装,可以采用纯手动方法安装(最笨的方法),先将联网服务器上的多余deb包清理,将所有需要的deb包拷下载后拷贝到离线服务器上,进到指定deb包目录,dpkg -i *.deb &gt; log.txt,将所有deb包进行安装,再对日志中的错误进行排查,检查是否存在少包或者版本等问题,逐一解决后再进行安装。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">&nbsp;</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">==================================================针对第三种方法的详细说明=====================================================================</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">环境:</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">一台能上网的Ubuntu电脑,一台不能上网的Ubuntu电脑。Ubuntu版本都是18.04LTS。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">目标:</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">将能上网的Ubuntu电脑安装的软件制作成源,通过U盘拷贝给内网电脑,内网电脑根据此离线源通过apt安装软件。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">为什么不直接拷贝deb安装呢?因为有些软件安装依赖的包比较多。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">遇到的问题:</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">从Ubuntu 16.04 (xenial)起, 在将本地deb软件包创建repo时候,跟14.04以前的版本相比,强制要求gpg对Release文件签名,否则无法使用。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">步骤:</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">1.在外网电脑上,安装gpg软件和相关软件:</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">apt-get install gnupg</span><br><span style="font-family: 仿宋; font-size: 16px">apt-get install rng-tools</span><br><span style="font-family: 仿宋; font-size: 16px">密钥创建过程中,需要使用到足够的随机数(random),可先行安装rng-tools, 该工具可以常驻后台的方式, 生成随机数,避免gpg密钥创建过程中的长时间等待问题&nbsp;</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">rngd -r /dev/urandom</span><br><span style="font-family: 仿宋; font-size: 16px">生成公钥和私钥:</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">gpg --gen-key</span><br><span style="font-family: 仿宋; font-size: 16px">执行gpg会进入一些对话,其中要新建一个用户名username和相应的密码。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">这一步有问题可以参考:https://blog.csdn.net/tangsl388/article/details/72843438</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">结束之后,输入命令,可以查看key:</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">gpg --list-key</span><br><span style="font-family: 仿宋; font-size: 16px">导出gpg公钥和私钥:</span><br><span style="font-family: 仿宋; font-size: 16px">私钥,供Server端,对release文件签名使用,好像不做也能签名</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">gpg -a --export-secret-keys username &gt; Ubuntu_Local_Archive_Automatic_Signing_Key_2017.sec</span><br><span style="font-family: 仿宋; font-size: 16px">公钥,需在Ubuntu client 导入,供apt-get使用</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">gpg -a --export username&gt; username.pub</span><br><span style="font-family: 仿宋; font-size: 16px">&nbsp;2.在外网电脑上准备安装包源</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">以下是安装包目录</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">$ sudo rm -rf /var/cache/apt/archives/*# 清空缓存目录,这一步也可以不做</span><br><span style="font-family: 仿宋; font-size: 16px">-d只是下载安装包,并不安装。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">$ sudo apt-get -d install &lt;包名&gt;</span><br><span style="font-family: 仿宋; font-size: 16px">在本地建一个目录,将下载下来的安装包拷贝到此目录:</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">$ mkdir /var/debs</span><br><span style="font-family: 仿宋; font-size: 16px">$ cp -r /var/cache/apt/archives/*.deb /var/debs/</span><br><span style="font-family: 仿宋; font-size: 16px">在debs这个目录创建Packages.gz,注意生成的路径带debs,否则内网安装时会说找不到文件</span></p>
<p><span style="font-family: 仿宋; font-size: 16px"># apt-ftparchive packages debs &gt; debs/Packages</span><br><span style="font-family: 仿宋; font-size: 16px"># cd debs</span><br><span style="font-family: 仿宋; font-size: 16px"># gzip -c Packages &gt; Packages.gz</span><br><span style="font-family: 仿宋; font-size: 16px">在debs这个目录下创建release file</span></p>
<p><span style="font-family: 仿宋; font-size: 16px"># apt-ftparchive release ./ &gt; Release</span><br><span style="font-family: 仿宋; font-size: 16px">ubuntu apt-get 对软件包索引,首先要求InRelease文件,其次才去找Release、Release.gpg文件; 这情况下, 其实只需要创建InRelease文件(包含Release文件和明文签名)即可:</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">#gpg --clearsign -o InRelease Release </span><br><span style="font-family: 仿宋; font-size: 16px">#gpg -abs -o Release.gpg Release </span><br><span style="font-family: 仿宋; font-size: 16px">3. 将生成的debs目录和公钥文件username.pub拷贝到U盘</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">4.在内网的电脑上将debs目录拷贝到/vars/下面,注意和外网的目录一样。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">如下并导入公钥。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px"># apt-key add username.pub</span><br><span style="font-family: 仿宋; font-size: 16px">5.在内网电脑上备份apt源文件/etc/apt/source.list,并修改源。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">$ sudo gedit /etc/apt/sources.list</span><br><span style="font-family: 仿宋; font-size: 16px">将sources.list 原来的内容都注释掉。在最后添加</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">$ deb file:/var debs/</span><br><span style="font-family: 仿宋; font-size: 16px">注意上面的 /var 和 debs/ 之间的空格,以及 “/”。不要写错/var/debs/路径了。</span><br><span style="font-family: 仿宋; font-size: 16px">更新索引</span><br><span style="font-family: 仿宋; font-size: 16px">$ sudo apt-get update</span><br><span style="font-family: 仿宋; font-size: 16px">现在可以安装包了。运行sudo apt-get install &lt;包名&gt; 就会像以前一样安装好了指定的包了。</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">6.安装包的下载,一键下载所有依赖包,可以参照&nbsp;&nbsp;</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">https://blog.csdn.net/junbujianwpl/article/details/52811153&nbsp; &nbsp;&nbsp;</span><br><br></p>
<p><span style="font-family: 仿宋; font-size: 16px">以上步骤参考:https://blog.csdn.net/yruilin/article/details/85124870</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">单个软件安装(https://blog.csdn.net/michaelwoshi/article/details/94185132)&nbsp; </span></p>
<p><span style="font-family: 仿宋; font-size: 16px">无需制作签名安装ubuntu14以下</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">(https://blog.csdn.net/weixin_30535843/article/details/95711908)</span></p>
<p><span style="font-family: 仿宋; font-size: 16px">https://www.linuxidc.com/Linux/2017-03/142023.htm</span></p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/faster/p/13199453.html
頁: [1]
查看完整版本: ubuntu制作离线源的几种方法