dpkg 是 Debian
<p>dpkg 是 Debian 系最底层的“安装/卸载本地 deb 包”的命令;<br>“扔进内网 apt 源”就是把 deb 放到一台局域网服务器上,让其他机器像从官方仓库一样 <code>apt install cyclonedds</code>,而不再手动拷文件。<br>
下面把两种用法都拆成“一句命令”+“背后原理”,保证你能直接照抄。</p>
<hr>
<ol>
<li>最简:dpkg 本地安装(单人/偶尔用)</li>
</ol>
<hr>
<p>把 <code>cyclonedds_0.10.4_amd64.deb</code> 拷到目标机器,然后</p>
<pre><code class="language-bash">sudo dpkg -i cyclonedds_0.10.4_amd64.deb
</code></pre>
<ul>
<li><code>dpkg -i</code> 相当于 Windows 里双击 <code>xxx.msi</code>——只负责把文件解开、写数据库,<strong>不解决依赖</strong>。<br>
因为 cyclonedds 本身只依赖 libc(系统自带),所以不会报错;如果以后你打包别的软件缺依赖,再跑一条 <code>sudo apt -f install</code> 即可自动补。</li>
</ul>
<hr>
<ol start="2">
<li>多人/批量:30 秒搭一个“局域网 apt 仓库”</li>
</ol>
<hr>
<p>场景:实验室有 N 台 Debian/Ubuntu,不想每次都 scp+dpkg。</p>
<p>step-1 选一台当“仓库机”(能装 nginx 即可,哪怕是你的笔记本)</p>
<pre><code class="language-bash"># 1. 建目录
sudo mkdir -p /var/www/local-apt
# 2. 把你的 deb 放进去
sudo cp cyclonedds_0.10.4_amd64.deb /var/www/local-apt/
# 3. 生成 apt 索引
cd /var/www/local-apt
sudo dpkg-scanpackages . /dev/null | sudo gzip -9c > Packages.gz
# 4. 起个最简 web(nginx 或 python 都行)
sudo python3 -m http.server 80 --directory /var/www/local-apt &
</code></pre>
<p>step-2 在<strong>每台客户端</strong>上写一行源</p>
<pre><code class="language-bash">echo "deb http://<仓库机IP>/ ./" | \
sudo tee /etc/apt/sources.list.d/local.list
sudo apt update
</code></pre>
<p>step-3 以后任意机器想装</p>
<pre><code class="language-bash">sudo apt install cyclonedds
</code></pre>
<ul>
<li><code>apt</code> 会自动对比版本、自动依赖、自动升级——和官方包体验完全一样。</li>
<li>要更新版本只需把新 deb 丢进 <code>/var/www/local-apt</code>,再跑一次 <code>dpkg-scanpackages . | gzip > Packages.gz</code>,客户端 <code>apt upgrade</code> 就收到。</li>
</ul>
<hr>
<h2 id="一张图总结">一张图总结</h2>
<p>单人:拷 deb → <code>sudo dpkg -i xxx.deb</code><br>
多人:把 deb 放目录 → <code>dpkg-scanpackages</code> → <code>apt install xxx</code></p>
<p>就这么点区别,选一条即可。</p><br><br>
来源:https://www.cnblogs.com/flyingsir/p/19187661
頁:
[1]