闲着没事教教大家以Ubuntu Linux系统三种方法添加本地软件库,ubuntu Linux使用本地软件包作为安装源——转2007-04-26 19:47新手重新系统的概率很高,每次重装系统后都要经过漫长的apt-get install来装回那些我们自己所需要的,但系统安装光盘里又没有的软件,实在是件痛苦的事。

方法一:

每一次install时系统下载的软件包,包括各个软件所依赖的包都会保存在/var/cache/apt/archives/目录下,选定某一次通过网 络安装完自己所常用到的所有软件之后,将该文件夹下的所有文件都复制到一个不常格式化的分区里面,作为以后重装系统时的本地源,可谓省时省心省力。

以下为操作过程,为验证,特意重装一次系统,无语。

一、在自己的根目录下建立一个目录,用于放所有下载的软件包,目录名随自己喜欢,建议新手在自己的根目录下进行以下操作,以避免操作权限问题的困扰。

mkdir ~/ packs

二、复制文件到packs文件夹下,目录依各人情况变化。

sudo cp /var/cache/apt/archives/* ~/packs

三、将建立Packages.gz包,里面记录了packs文件夹下面的软件包信息,包括依赖信息。

dpkg-scanpackages packs /dev/null |gzip > packs/Packages.gz

完成此操作后,将packs文件夹复制到一个不常格式化的分区中,作为长久使用,比如我将它放在一个fat32的分区时面,路径是 /media/hda6/linux/soft/packs

四、加本地源

sudo gedit /etc/apt/sources.list

加入 deb linux/soft/packs/">file:///media/hda6/linux/soft/packs/ edgy main ,注意,这里只是我电脑上的路径,请依实际位置修改.edgy 是我的ubuntu版本(7.04's version feisty),main也不是固定的,也可以用restricted等,只是在下面第五步中的操作中对应建立的目录结构不同而已,这里只举 main的例子。有兴趣的同仁可以加一个试试,系统的出错提示会有文件夹设置信息。

五、设置packs目录下的目录结构

在packs目录下建立这样的结构

packs/dists/edgy/main/binary-i386/

packs/packs/ #也就是在packs下再建立一个packs

以上这两层的目录用于放置不同类型的包,据我电脑上试验过程中的提示,好像binary-386目录下放的是各种软件的安装包,packs/packs/ 目录下放的是各个依赖的包以及系统更新的包,基本上是以lib开头的,最保险的办法是把所有包都复制到这两个文件夹下面。

六、设置完成

完成以上设置和文件复制之后,就可以开始正常使用本地的源了和使用网络上的源一样操作。

sudo apt-get update

sudo apt-get dist-upgrade

sudo apt-get install XXX

方法二:

一下更简单的办法,完第一个目录结构后,把Packages.gz那个包放在binary-i386文件夹下面,然后把所有的deb包复制到/var/cache/apt/archives/下就可以了。

估计apt-get install的工作原理是这样的,先从Packages.gz包里读取软件列表和包依赖信息,安装某个软件时先扫描本地archieves目录,如果可以找到对应的包,就开始安装,否则从源里下载该包。

其实我实现这些操作的思路很简单啊
1、备份手上已有的软件包
2、建立这些软件列表和依赖信息 packages.gz
3、建立目录结构,可随意在本地源地址后加上 main、 restricted之类的关键字,然后apt-get update,系统会给出出错提示,里面就包含了各个关键字对应的目录结构,
4、添加本地源 deb file:/// dir/dir/dir/……

建议大家在碰到系统错误时认真看系统的提示,linux的系统出错提示可不像比尔先生的那样都是说废话

方法三:

下载DVD版本,然后把它作为源. 有两种方式:

1. 可以直接放在硬盘上,然后mount到某个目录里,比如: sudo mount -t iso9660 -o loop xxx.iso /mnt

然后修改sources.list,改成 deb file:///mnt edgy main …… 后面和你的原来的格式一样.

2. 刻盘.然后在新立得里面用将CD Rom设置为源

下次要是再sudo apt-get update时,有可能有新的包文件,是不是还要这样添加呢,还有如果自己从别的站点下载的包,可否也加入到其中而用sudo apt-get install xxx来安装呢?

它的原理是从Packages.gz里面读取软件包及依赖信息,如果你往里面加了新的包,就要重新执行

dpkg-scanpackages packs /dev/null |gzip > packs/Packages.gz

来更新里面的文件信息了,然后再sudo apt-get udpate应该就OK了,如果是你自己下载的包,那必須是deb的包,而且保证把它所依赖的包都 下到本地。最好是在那准备重装系统之前把/var/cache/apt/archives/下面的文件都保存下来,再建立这些文件的packages.gz把你下载的东西放一个地方,然后用sudo ln -s 到/var/cache/apt/archives一切OK!Ubuntu Linux系统三种方法添加本地软件库。

Ubuntu Linux系统三种方法添加本地软件库的更多相关文章

  1. LoadRunner监控Linux的三种方法

    方法一.LR + SiteScope/nmon 方法二.使用rstatd包 1.下载rpc.rstatd-4.0.1.tar.gz 2.解压缩 tar -zxvf rpc.rstatd-4.0.1.t ...

  2. js三种方法添加image

    1 var img = new Image(); 2 var img = document.createElement('image'); 3 img.innerHtml = '<img src ...

  3. Linux系统下修改环境变量PATH路径的三种方法

    这里介绍Linux的知识,比如把/etc/apache/bin目录添加到PATH中有三种方法,看完之后你将学会Linux系统下如何修改环境变量PATH路径,需要的朋友可以参考下 电脑中必不可少的就是操 ...

  4. Linux 添加开机启动项的三种方法

    linux 添加开机启动项的三种方法. (1)编辑文件 /etc/rc.local 输入命令:vim /etc/rc.local 将出现类似如下的文本片段: #!/bin/sh## This scri ...

  5. Linux CentOS7 VMware 安装软件包的三种方法、rpm包介绍、rpm工具用法、yum工具用法、yum搭建本地仓库

    一.安装软件包的三种方法 Linux下游三种安装方法,rpm工具.yum工具.源码包.rpm按装一个程序包时,有可能因为该程序包依赖另一个程序包而无法安装:yum工具,可以连同依赖的程序包一起安装. ...

  6. 安装Ubuntu Linux系统时硬盘分区最合理的方法

    无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为棘手的环节,网上的一些Ubuntu Linux安装教程一般都是自动分区,给初学者带来很大的不便,下面我就根据多年来在合 ...

  7. MYSQL添加远程用户或允许远程访问三种方法

    添加远程用户admin密码为password GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY \'password\' WIT ...

  8. HOSt ip is not allowed to connect to this MySql server, MYSQL添加远程用户或允许远程访问三种方法

    HOSt ip is not allowed to connect to this MySql server 报错:1130-host ... is not allowed to connect to ...

  9. linux 环境变量PATH路径的三种方法

    转:http://www.jb51.net/LINUXjishu/150167.html 总结:修改1.#PATH=$PATH:/etc/apache/bin  或者#vi /etc/profile ...

随机推荐

  1. iOS中的事件处理

    前言:iOS中事件处理,是一个非常重要也非常难得地方.涉及到响应者链的地方的面试题,非常多工作两三年的老鸟也未必能回答的非常专业.这里具体介绍一下iOS中的事件处理,以及响应者链. 1. 三大事件 触 ...

  2. (原创)c++11改进我们的模式之改进单例模式

    我会写关于c++11的一个系列的文章,会讲到如何使用c++11改进我们的程序,本次讲如何改进我们的模式,会讲到如何改进单例模式.观察者模式.访问者模式.工厂模式.命令模式等模式.通过c++11的改进, ...

  3. python(39):argparse的用法,从外部传入指定参数

    直接上例子: # /usr/bin/env python # coding=utf8 import os import argparse import logging import sys FORMA ...

  4. 【Socket】linux广播技术

    1.mystery引入        1)本学期学的ARP协议和NTP协议都属于广播技术的实现,所以借此机会了解下广播技术的底层原理    2)在IP地址中,如果最后一个数字为255,则一定是一个广播 ...

  5. Linux操作系统入门学习总结(2015.10)

    用了差不多45天的时间把Linux操作系统入门的资料学习了下.主要阅读了以下几本书: 鸟哥的私房菜:Linux基础学习篇(第三版) "Running Linux" <LINU ...

  6. js实现默认或者触发一个事件选中元素内容的方法

    方法一:非文本框.文本域的选中内容方法 <!Doctype html> <html> <head> <script type="text/javas ...

  7. C# FileStream 文件复制

    方法: /// <summary> /// 文件复制 /// </summary> /// <param name="source">源文件,例 ...

  8. DjangoUeditor 使用七牛云存储

    DjangoUeditor 是一个相当赞的django 富文本编辑器,你可以在 https://github.com/zhangfisher/DjangoUeditor 查看相关信息. 我一直想着把D ...

  9. iOSUIPickerView使用

    #import <UIKit/UIKit.h> @interface ViewController : UIViewController<UIPickerViewDelegate,U ...

  10. oracle的db link

    cd $ORACLE_HOME/network/admin vi tnsnames.ora 添加 CCPBS_19 =  (DESCRIPTION =    (ADDRESS_LIST =      ...