Ubuntu离线安装软件的方法
我的电脑现在没有装网线,由于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/里,插入第一张光盘,打开“新立得软件包管理器”,就和有网线一样地安装软件包了。
从此,我过上幸福美满的生活了。