制作本地源,不联网apt-get

发布时间:2009-06-08 15:50:17 | 文章编号:#4802

昨天搞的,此人linux菜鸟一个,唯独擅长放狗放毒,所以也就搜到了……啥叫本地源呢?就是说,大家都知道,安装软件最省心最快速的方法就是用apt-get从网上的源里下下来自动安装,但是如果没有网络环境了,就非常麻烦了(只能找现存的deb包)。而本地源就是趁你有网络环境的时候,把整个源拖到机子上来,比如放到移动硬盘上,然后即使没有网络,也可以自己从移动硬盘上apt-get,这样就方便多了。



另外还有个部分本地源的概念,就是说,源里的软件没有必要都拖下来,拖一部分自己用到的软件下来做成本地源,这样比一个完整的本地源节省空间。这样重装系统后也可以直接用这个源安软件了——虽然现在装SD卡,很多软件不用重复装了,不过还是有些需要的,比如firefox、gvim、atomix、gnuchess,还有一些我记不得了……= =

在制作之前,首先提醒一下,制作部分本地源可能稍好些,不过制作完整本地源需要足够的耐心和时间,并且有重刷固件的可能,请大家自行斟酌……= =||

1.首先,如果你要将本地源建立在移动硬盘上的NTFS分区里,请首先apt-get下NTFS支持,即ntfs-3g和ntfs-config这两个软件。另外提醒一句这两个软件可以保证读取ntfs分区,但是无法写入。我们现在假设你准备用移动硬盘作为本地源的载体。
制作本地源需要另外一个软件包dpkg-dev,请sudo apt-get install dpkg-dev

2.然后当然是先把源下下来,用CuteFTP Pro这种能登陆http站点的ftp软件,或者Teleport Pro这种http站点下载软件,把整个站点拖下来;制作部分本地源的话,把自己用到的deb包和其依赖包放到一起就行;另外,如果以前是apt-get下载过的deb包的话,它们都在/var/cache/apt/archives里头,直接拿出来就好了。提醒下,整个源里的软件加起来有16G,这是我昨天下下来的数据……= =

3.好,无论是完整的本地源还是部分本地源,请把所有deb包放在一个文件夹下,可以保持源里的文件夹结构方便归类,也可以直接放到一起,总之确保在一个文件夹底下就可以……以我的为例,我存在了卷标为Media的移动硬盘分区的smartq5文件夹下。

4.准备在Q5上制作本地源了!先给Q5插上电源,打开OTG,插上移动硬盘(注意外接电源),请查看一下移动硬盘的位置,以我的为例,我的源在Q5上的位置是/media/Media/smartq5(请注意区分大小写)。然后打开本地源所在文件夹的上一层文件夹,对于我这个源而言,就是打开/media/Media,在当前位置打开终端,执行:
sudo dpkg-scanpackages smartq5 /dev/null |gzip >/home/user/Packages.gz
注意最后那部分,因为无法写ntfs分区,所以只能将生成的Packages.gz放到非ntfs分区里,最后通过电脑转移到smartq5文件夹中。如果你存储的不是NTFS分区,自然可以直接放到本地源文件夹里。
那么现在你可以不管Q5了,分析过程开始了,根据你的软件包数目不同消耗的时间各异,如果你像我一样把整个16G的源拖了下来,那么你也应该像我一样分析14个小时,当然最发指的是这个东西在结束前没有进度提示,除非中间出了点什么错误可以看到整到哪个字母的软件了(虽然不影响继续)……

5.漫长的时间过去了,当你一觉醒来,看到一大堆软件列表底下熟悉的终端提示符的时候,请不要冲动……
把生成的Packages.gz通过SD卡在电脑上搞到移动硬盘里的本地源文件夹底下。我生成的大约18M,生成期间提示过几个deb包错误,不过不影响使用。

6.那么使用本地源的方法就是编辑/etc/apt/sources.list,在最前头加上(如果你是完整的本地源,保留了文件夹结构)
deb file:///media/Media/smartq5/ hasty main universe multiverse
或者
deb file:///media/Media/ smartq5/
注意斜杠和空格!
这样的话apt-get的时候会优先使用本地源,本地源不在的时候会继续照sources.list里头的源的顺序下载。
注意,本地源apt-get的时候是不会下到cache里头的!也就是说,用了本地源,apt-get的时候不会增加rootfs的大小了,安全避开login!

7.必须要说的是,刚说完login,我们就要面对这个问题……
好吧,假如有心在制作Package.gz的时候看一下rootfs的剩余空间,你会发现——很早的时候就已经剩余空间为0了……= =
原因是在这里的:所有软件包的信息被存储在了/var/lib/dpkg/info下,在制作完本地源后,里头的文件数目惊人的多,但是不要全删除!因为里头还包括你已经装过的软件包的信息,包括固件自带的软件……
如果是制作部分本地源并且并不大的话,应该可以自己手动清除,如果是制作完整本地源的话,推荐大家像我学习,直接重刷固件就好了……
(PS:所以我至今还是没见到过login)

好的,重刷完固件后别忘了修改source.list,安装NTFS程序(如果你的源在ntfs分区下),你的本地源就时刻为你服务了!

题外话:在网上还可以搜到一种制作本地源的方法是用apt-mirror,源里是有这个的,在apt-setup底下有,是个udeb包,我没有去尝试,感兴趣的同志也可以自行搜索一下……

 

新闻来源智器粉丝团