[转帖]Debian和Ubuntu离线安装软件的方法

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
anway
帖子: 403
注册时间: 2007-07-22 12:13

[转帖]Debian和Ubuntu离线安装软件的方法

#1

帖子 anway » 2008-04-15 9:13

我的电脑现在没有装网线,由于Linux软件包的依赖关系,下载安装软件很不方便。经过十来天的摸索,尝试很多方法,终于得出一种有效的离线下载安装软件包的方法。
首先准备一个500MB以上的U盘,我用的U盘是1GB的。我用的Ubuntu7.04第一张光盘就是在网吧里下载,然后拿回家里刻碟安装。

一、升级apt源:
找个网速快的网吧,登录一个有安装包的ftp站点,如:ftp://debian.cn99.com或者ftp://security.ubuntu.com,然后下载以下安装包信息文件,目录与文件的保存位置与Ftp网站的一样,其中bz2的包可以不用下载。debian.cn99.com和security.ubuntu.com的文件信息包总共约70多MB,不过网吧的下载速度快,几分钟搞定,1.5元/小时,给一元给老板就够 了。我用的是FlashFtp下载这些包的,网吧里没有安装,我去http://www.jonahome.net下载的,它的FlashFTP还有注册码,顺便把flashget下载到手,由于http://www.jonahome.net是教会同工做的,不到万不得已不要去那里下载,增加他们的流量,增加建站费用。
然后回家,在普通用户的目录下建立一个debian.cn99.com和security.ubuntu.com两个文件夹,把那些东东分对拷进去。其实每个FTP站点的东东都差不了多少。
文件清单,其中*.gz, *.bz2, *.gpg, Realease都是文件,其它的ubuntu, feisty, source……是文件夹,ftp服务器里每个文件夹里都可能包含很多文件,我只下载ls-lR.gz, Contents-i386.gz, Release, Release.gpg, Packages.bz2, Packages.gz, Source.gz这些包含文件包信息的文件,手工创建相应的文件夹。

-------------------------------------------软件包信息清单------------------------------------------------
liuhaixiao@LHX88:~$ ls -R security.ubuntu.com
security.ubuntu.com:
ubuntu

security.ubuntu.com/ubuntu:
dists ls-lR.gz

security.ubuntu.com/ubuntu/dists:
feisty # 因为我用的是Ubuntu7.04,所以下载feisty里的东东。其它版本就不是这个文件夹了

security.ubuntu.com/ubuntu/dists/feisty:
Contents-i386.gz Release Release.gpg main multiverse restricted universe

security.ubuntu.com/ubuntu/dists/feisty/main:
binary-i386 source

security.ubuntu.com/ubuntu/dists/feisty/main/binary-i386:
Packages.bz2 Packages.gz Release

security.ubuntu.com/ubuntu/dists/feisty/main/source:
Release Sources.bz2 Sources.gz

security.ubuntu.com/ubuntu/dists/feisty/multiverse:
binary-i386 source

security.ubuntu.com/ubuntu/dists/feisty/multiverse/binary-i386:
Packages.bz2 Packages.gz Release

security.ubuntu.com/ubuntu/dists/feisty/multiverse/source:
Release Sources.bz2 Sources.gz

security.ubuntu.com/ubuntu/dists/feisty/restricted:
binary-i386 source

security.ubuntu.com/ubuntu/dists/feisty/restricted/binary-i386:
Packages.bz2 Packages.gz Release

security.ubuntu.com/ubuntu/dists/feisty/restricted/source:
Release Sources.bz2 Sources.gz

security.ubuntu.com/ubuntu/dists/feisty/universe:
binary-i386 source

security.ubuntu.com/ubuntu/dists/feisty/universe/binary-i386:
Packages.bz2 Packages.gz Release

security.ubuntu.com/ubuntu/dists/feisty/universe/source:
Release Sources.bz2 Sources.gz

-----------------------------------------------------------------------------------------------------

然后打开控制台,转到超级用户,编辑source.list

liuhaixiao@LHX88:~$ sudo -i
Password:*****************************************************
root@LHX88:~# gedit /etc/apt/sources.list

在source.list里加入:
把liuhaixiao换成你的普通用户名。
deb file:/home/liuhaixiao/debian.cn99.com/ubuntu/ feisty main restricted multiverse universe
deb-src file:/home/liuhaixiao/debian.cn99.com/ubuntu/ feisty main restricted multiverse universe

deb file:/home/liuhaixiao/security.ubuntu.com/ubuntu/ feisty main restricted multiverse universe
deb-src file:/home/liuhaixiao/security.ubuntu.com/ubuntu/ feisty main restricted multiverse universe

保存关闭。

root@LHX88:~# apt-get update

然后打开“新立得软件包管理器”(Synaptic),哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈!!!!!

二、下载软件包。
在“新立得软件包管理器”里尽情地选择那些眼红了半个多月的软件包:xlibdev tcl mplayer xemacs qt glade gstream-* wqy ……
然后是File -> Generate package Download Script 保存成下载脚本file_list.txt。
关闭新立得,直接Quit,因为没有软件包,所以现在还不能装。
把刚才的file_list.txt的属性改为777,这是root建立的,另存一份也可以。
root@LHX88:~# chmod 777 /home/liuhaixiao/file_list.txt

用Gedit打开这个file_list.txt,把第一行“#!/bin/sh”删掉,
把所有包含cdrom的行删掉,
剩下的就是要从网上下载的软件包了。用Gedit里的Search -> Replace把所有的“wget -cfile:/home/liuhaixiao”换成“ftp:/”。
保存这个重要的file_list.txt,复制到U盘。

好!现在拿着这份清单跑到网吧,先装一个Flashget,然后双击用“记事本”一打开,咦,怎么乱掉了?那是因为换行符的问题,没有关系,小问题,改用“写字板”打开,哈哈,几百行记录,整齐吧?!!网吧老板看得眼都直的。
全选,复制,然后在Flashget悬浮窗里右击“粘贴URL”,就会出现“批量下载”的设置框了。要记得设置为单任务单线程,否则会给ftp服务器踢掉的。
半个小时后,凯旋而归!!!

三、安装。
把下载到的deb包复制到/var/cache/apt/archives/里,插入第一张光盘,打开“新立得软件包管理器”,就和有网线一样地安装软件包了。

从此,我过上幸福美满的生活了。
头像
anway
帖子: 403
注册时间: 2007-07-22 12:13

#2

帖子 anway » 2008-04-18 15:26

昨天试过了,似乎只要下载sources.gz。
头像
eldxyldx
帖子: 150
注册时间: 2007-04-26 17:32

#3

帖子 eldxyldx » 2008-04-18 19:21

二楼的能不能把你的过程详细的说下
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#4

帖子 BigSnake.NET » 2008-04-18 19:27

^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#5

帖子 BigSnake.NET » 2008-04-18 19:32

其实貌似只需复制这些文件就可以

/var/lib/apt/lists/
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
anway
帖子: 403
注册时间: 2007-07-22 12:13

#6

帖子 anway » 2008-04-20 9:00

BigSnake.NET 写了:viewtopic.php?t=87977
这个方法比我说的那个更有效啊!

免去了手动下载那么多文件和建立多个文件夹目录树的麻烦。
用命令行方式就是简单,而这里说的是图形方式,操作更直观。
头像
drvicar
帖子: 1285
注册时间: 2007-12-17 18:07
来自: 西安

#7

帖子 drvicar » 2008-04-20 20:06

:lol: 真的哦 copy回去研究研究,马上要装新的了
头像
drvicar
帖子: 1285
注册时间: 2007-12-17 18:07
来自: 西安

#8

帖子 drvicar » 2008-04-24 9:57

:lol: 网吧速度也不快
头像
drvicar
帖子: 1285
注册时间: 2007-12-17 18:07
来自: 西安

#9

帖子 drvicar » 2008-04-28 20:45

:wink: 哪个debian的还是上不去?
seal-203
帖子: 13
注册时间: 2008-11-27 13:48

Re: [转帖]Debian和Ubuntu离线安装软件的方法

#10

帖子 seal-203 » 2008-12-07 11:12

参考此方法,我就直接:wget -r -c ftp://debian.ustc.edu.cn/ubuntu/dists/intrepid/ ,之后修改源
然后需要安装软件就 apt-get --print-uris -y install softname | grep http | awk '{print $1}' | sed "s/'//g" :em06
回复