Ubuntu apt 本地源 离线安装

今天一台主机(Ubuntu 14.04)不知道为什么连不上外网了。只能和局域网内的其他主机相互ping通。但是上面一个正在跑的程序出了问题,需要安装两个额外的包,而且这两个包依赖还挺多的样子。这可急死我了。但是我另一台笔记本可以上外网。碰巧也安装的是Ubuntu14.04。我就想能不能把要安装的包先在笔记本上下载好,然后通过U盘转移到前面那台主机上,再在那台主机上通过本地包安装呢?通过网上一番搜索后,终于搞定了。现在总结一下步骤。

在能上网的笔记本上下载好需要的包

$ sudo rm -rf /var/cache/apt/archives/*  # 清空缓存目录,这一步也可以不做
$ sudo apt-get -d install <包名>

运行完该命令后,需要的包及依赖都会下载到 /var/cache/apt/archives。

复制到U盘中

将下载好的包( /var/cache/apt/archives目录下的所有文件)复制到U盘中,准备转移。如果你不想拷贝多余的包文件,你可以提前将 /var/cache/apt/archives 目录清空后再下载需要的包。

# 先在U盘中创建好一个目录debs
$ sudo cp -r /var/cache/apt/archives/* /U盘/路径/debs/

下面转到不能上网的主机上操作

在主机上创建包缓存目录

$ sudo mkdir /var/debs

将U盘中下载好的包文件全部复制到/var/debs目录下

$ sudo cp -r /U盘/路径/debs/* /var/debs/

生成包索引文件

$ sudo touch /var/debs/Packages.gz
$ sudo chmod -R 777 /var/debs/  # 这一步是为了获得文件的可写可读可执行权限,要不然后面会失败
$ sudo dpkg-scanpackages debs  /dev/null  | gzip > debs/Packages.gz  # 创建索引

在 /etc/apt/sources.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 <包名> 就会像以前一样安装好了指定的包了。

参考:

Ubuntu使用apt-get安装本地deb包 - milantgh - 博客园 http://www.cnblogs.com/milantgh/p/3837356.html
浅谈Ubuntu上离线安装包的制作与安装问题_系统圣地 http://www.285868.com/a/xtjc/5817.html

你可能感兴趣的:(UNIX/Linux,Linux基础,apt,ubuntu)