Ubuntu离线更新,安装新软件
ubuntu吧
全部回复
仅看楼主
level 12
peterliu1218 楼主
因为今天看到某贴,误认为Linux只能联网更新,安装软件,所以整理一下以前的笔记,介绍一个有用的软件:apt-offline
相信大家都知道apt-get需要在有网路的状况才有作用,但网路很慢,或者根本就没有网路的状况下怎麼办呢?因为我个人有某些特别需求,在测试一些软件,必须在无网路的环境下,所以我找到这个工具,来进行更新或安装新软件。
先预设:无法连线或网路连线速度低的电脑为A(Ubuntu),正常网路连线的电脑为B(Ubuntu)
1. 先在B电脑安装
sudo apt-get install apt-offline
2. 把apt-offline套件复制出来(请自行修改目的目录,最好指向你的随身碟)
cp /var/cache/apt/archives/apt-offline*.deb /media/xxx/usb
或者由 http://packages.debian.org/sid/apt-offline 下载deb,再复制到随身碟中。
apt-offline的依赖性,在一般的debian类的电脑都没问题。
3. 到A电脑安装apt-offline(请自行修改来源目录)
sudo dpkg -i /media/xxx/usb/apt-offline*.deb
4. 清理A电脑中暂存的 .deb档,这步骤可以避免之前残留套件影响你下次的安装。所以也可以在第7步骤之前作。
sudo apt-get clean
5. 在A电脑的终端机,包裹你所要升级与更新的资讯(请自行修改目的目录,最好指向你的随身碟)
sudo apt-offline set --upgrade --update /media/xxx/usb/ao.sig
6. 取下随身碟,到B电脑,下载你所需要的套件与套件库:
sudo apt-offline get /media/xxx/usb/ao.sig --bundle /media/xxx/usb/ao.zip
7. 回到A电脑,放置套件
sudo apt-offline install /media/xxx/usb/ao.zip
8. 这时,所有下载的套件会放到 /var/cache/apt/archives
sudo dpkg -i /var/cache/apt/archives/*.deb
以后,只要重复步骤5~8就可以安装更新。
2014年01月05日 16点01分 1
level 12
peterliu1218 楼主
以下再补充一些apt-offline常用参数的使用方法。
sudo apt-offline set --update /media/xxx/usb/ao.sig
预计更新软件库
sudo apt-offline set --upgrade /media/xxx/usb/ao.sig
预计升级软件
sudo apt-offline set --install-packages tomboy --update /media/xxx/usb/ao.sig
预计安装tomboy软件。注意参数有先后顺序,把update放前面,无法安装。有其他需求,请自行更换软件名称。
sudo apt-offline set --upgrade-type upgrade /media/xxx/usb/ao.sig
sudo apt-offline set --upgrade-type dist-upgrade /media/xxx/usb/ao.sig
前者相当於apt-get upgrade;后者相当於apt-get dist-upgrade
sudo apt-offline get /media/xxx/usb/ao.sig --bundle /media/xxx/usb/ao.zip
下载之前预计的软件库、软件。并包成ao.zip
sudo apt-offline get /media/xxx/usb/ao.sig --threads 5 --bundle /media/xxx/usb/ao.zip
五线下载!可加快下载速度。
sudo apt-offline install /media/xxx/usb/ao.zip
安装ao.zip内的套件。此步骤,只会把套件放到 /var/cache/apt/archives 内,不会真的安装。
2014年01月05日 16点01分 2
level 12
peterliu1218 楼主
先声明一下,我已经很多年没有用Windows了,目前也没有windows系统可供测试,所以以下的步骤,有关windows电脑的部份,请自行注意路径的设置。
以下是可连线电脑为windows:
先设定
无法连线或网路连线速度低的电脑为A(Ubuntu),正常网路连线的电脑为B(Windows)
1. 先在B电脑安装
apt-offline 是python所撰写,所以必须先安装python(http://www.python.org/download/),
再下载apt-offline(http://apt-offline.alioth.debian.org/),
解压缩后执行C:\> python setup.py build与C:\> python setup.py install(请自行修改setup.py路径)
2. 把apt-offline套件复制出来
http://packages.debian.org/sid/apt-offline 下载deb,再复制到随身碟中。
3. 到A电脑安装apt-offline(请自行修改来源目录)
sudo dpkg -i /media/xxx/usb/apt-offline*.deb
4. 清理A电脑中暂存的 .deb档,这步骤可以避免之前残留套件影响你下次的安装。所以也可以在第7步骤之前作。
sudo apt-get clean
5. 在A电脑的终端机,包裹你所要升级与更新的资讯(请自行修改目的目录,最好指向你的随身碟)
sudo apt-offline set --upgrade --update /media/xxx/usb/ao.sig
6. 取下随身碟,到B电脑,下载你所需要的套件与套件库:
python apt-offline get X:\ao.sig --bundle X:\ao.zip
7. 回到A电脑,放置套件
sudo apt-offline install /media/xxx/usb/ao.zip
8. 这时,所有下载的套件会放到 /var/cache/apt/archives
sudo dpkg -i /var/cache/apt/archives/*.deb
2014年01月05日 16点01分 3
首先谢谢指导!
2014年01月10日 17点01分
现在进行到了第6步,出现这些提示。
2014年01月10日 17点01分
看10L
2014年01月10日 17点01分
level 14
[乖]
2014年01月05日 16点01分 4
level 11
好帖要顶。不过我有一个疑问。你说的是软件更新,所以不存在没有相关依赖包的问题。假如我要安装一个从来没有的软件(deb格式的),用你那个offline来安装是不是还要自己搞到相关依赖包呢?请问不联网情况下相关依赖包你怎么搞到?难不成apt-offline软件自己编译安装了相关依赖包,那真牛逼啊!
2014年01月06日 05点01分 5
连同另一个贴的问题,一起回答。当你用--install-packages参数来下载「新的」软件时,他也会自行整理相关依赖包,让你在另一台电脑一起下载。不是只下载你指定的那个安装包。
2014年01月06日 05点01分
简单地说,他就是离线版的apt-get。
2014年01月06日 05点01分
回复 peterliu1218 :比如我安装virtualbox-4.1.deb的时候,终端提示缺少依赖: libqt4-network libqt4-opengl libqtcore4 libqtgui4 那个离线版的apt-get里面也不一定有对吧?如果没有我自己怎么从别人那里下载加进去呢?
2014年01月06日 06点01分
回复 peterliu1218 :如果是这样,那直接把下载下来的所有依赖deb包先安装一遍,然后再安装软件不就可以了吗?
2014年01月06日 06点01分
level 14
好帖学习了。我也有几个问题不明白。这个ao.zip大概有多大,有几个g? 如果ubuntu要添加ppa的话,具体应该怎么做?会有影响吗?
2014年01月06日 06点01分 6
ao.zip你可以自己命名。大小不一定,看该次下载的安装包多寡,通常第一次因为很多软件都要更新,大约会有200-300MB,不然一般都是顶多几十MB。至於添加ppa,比较麻烦,需直接修改/etc/apt/sources.list,之后一样按照以上的方法去update。
2014年01月06日 06点01分
回复 peterliu1218 :明白了
2014年01月06日 07点01分
level 12
peterliu1218 楼主
Nick_Aaron :比如我安装virtualbox-4.1.deb的时候,终端提示缺少依赖: libqt4-network libqt4-opengl libqtcore4 libqtgui4 那个离线版的apt-get里面也不一定有对吧?如果没有我自己怎么从别人那里下载加进去呢?
正常状况:我们会sudo apt-get install virtualbox,apt-get 会自动上网把 libqt4-network libqt4-opengl libqtcore4 libqtgui4,这些依赖抓下来装上。
离线状况:
sudo apt-offline set --install-packages virtualbox --update /media/xxx/usb/ao.sig
这个程式就会把需要安装virtualbox libqt4-network libqt4-opengl libqtcore4 libqtgui4的讯息包在ao.sig,你到可连线电脑下载的,就包含这些安装包。
还是你问的是dpkg -i virtualbox-4.1.deb,再以apt-offline处理依赖性问题?
apt-get处理这样的依赖性问题,应该也会出错吧
2014年01月06日 07点01分 7
楼主,你就是偶要找的人啊,我特么一真不会离线装软件
2016年09月29日 07点09分
level 12
peterliu1218 楼主
Nick_Aaron : 如果是这样,那直接把下载下来的所有依赖deb包先安装一遍,然后再安装软件不就可以了吗?
很多依赖包,你无法「先安装」,因为依赖包也有依赖包的....
甚至互相依赖,你只能一起,不能先后安装。
还有很重要的linux基本概念:缺什麼才装什麼。(ubuntu这点完全不像linux,简直就是windows的linux版)
你一定没经历过dependency hell ....[狂汗]
是说这种状况,现在这个网路时代也少见了...
2014年01月06日 07点01分 8
居然会有互相依赖不能”先安装”,涨姿势了。apt-offline能处理复杂的依赖关系,我收下了。不过这玩意要别人也在用ubuntu才行。如果别人只有Windows怎么办?
2014年01月06日 07点01分
说到依赖包,对于有的软件感觉好坑,像是Download for X 这个软体,安装在ubuntu12.04怎么安装都是依赖有问题[狂汗] ,处理的方式不对么?
2014年01月06日 07点01分
回复 Nick_Aaron :请看3楼。当下载电脑是windows时,可以使用apt-offline的python版。Debian系Linux的崛起,有一部分就是apt处理了复杂的依赖关系。RedHat系Linux后来也开发了类似工具yum。dependency hell就是依赖关系出现回圈所造成!没有apt, yum现在Linux使用者一定会更少。
2014年01月06日 08点01分
回复 王之判决 :我查了一下,最后更新是2007年...依赖有问题应该很正常...不是你的问题。
2014年01月06日 08点01分
level 11
学习
2014年01月06日 07点01分 9
level 6
PS C:\Python33> .\python.exe apt-offline get d:\ao.sig --bundle d:\ao.zip
Traceback (most recent call last):
File "apt-offline", line 25, in <module>
from apt_offline_core.AptOfflineCoreLib import main
File "C:\Python33\apt_offline_core\AptOfflineCoreLib.py", line 248
except socket.timeout, timeout:
^
SyntaxError: invalid syntax
2014年01月10日 17点01分 10
好象python setup.py install那一步就出现SyntaxError: invalid syntax的问题了
2014年01月10日 17点01分
回复 松野听风 :我刚刚比对了一下。apt-offline的windows版与Linux版,完全一样的code,也完全都是藉由python来启动。所以我猜是python的问题。查了一下,目前Linux预设的python是2.7版的。
2014年01月11日 04点01分
回复 松野听风 :而由你上面的文字,你的python是3.3版的。两者所使用的lib并不一样,可能会造成这样的问题。可否请您使用python2.7版的再试一次呢?非常抱歉,我没有windows系统可以测试(其实我也不会python啊![狂汗]
2014年01月11日 04点01分
level 13
好帖收藏
2014年01月10日 23点01分 11
level 7
还是yum方便,你只需要把软件源全部迅雷到某个目录,然后yum会根据版本号进行更新。这对于不能联网的电脑更新软件包方便多了
2014年05月09日 22点05分 12
level 7
我觉得那个帖子里的事情还是直接整个源服务器好了。到时候还能全面更新,维护起来也方便
2014年05月09日 23点05分 13
他要架设的是「内部封闭网路的大数据平台」。在这前提下,很多事情不应该做。不然解决方案多得是,根本用不到架设源服务器。还有,开个图形界面让一堆服务在背景跑,这是安全上的大忌,也违背他的前提。
2014年05月10日 03点05分
假如我是他的上层,我可以容忍他在需要时,暂开图形界面,但绝对无法容忍他要架一个源服务器。
2014年05月10日 03点05分
回复@peterliu1218 :更新的时候开机,更新完了关机就是了,单网卡,双网不互联
2014年05月10日 03点05分
回复 peterliu1218 :apache2在没人访问时看图形界面用chrome上网,apache2会不会很吃内存?(8GB SWAP)
2014年10月27日 09点10分
level 9
[真棒]
2014年08月01日 02点08分 14
1