闲着没事教教大家以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. 第7讲 SPI和RAM IP核

    学习目的: (1) 熟悉SPI接口和它的读写时序: (2) 复习Verilog仿真语句中的$readmemb命令和$display命令: (3) 掌握SPI接口写时序操作的硬件语言描述流程(本例仅以写 ...

  2. 解决Installation failed with message Failed to finalize session : INSTALL_FAILED_INVALID_APK的问题

    Android Studio 运行AVD的时候出现: Installation failed with message Failed to finalize session : INSTALL_FAI ...

  3. 【小白的CFD之旅】24 稳态和瞬态

    小白最近在练习案例的时候,对稳态和瞬态的问题,产生了一些疑问.譬如说,为什么有的案例用稳态,而有的案例用瞬态?有时候相同的案例既可以用稳态也可以用瞬态,而有的案例却只能用瞬态计算?小白决定找小牛师兄问 ...

  4. 每日英语:The Power of Parents Who Say 'No'

    I grew up in an affluent area. Most kids owned multiple Cabbage Patch dolls and Gear bags and pairs ...

  5. Lua中的模块与module函数详解

    很快就要开始介绍Lua里的“面向对象”了,在此之前,我们先来了解一下Lua的模块. 1.编写一个简单的模块 Lua的模块是什么东西呢?通常我们可以理解为是一个table,这个table里有一些变量.一 ...

  6. sql语句插入百万测试数据

    开发的过程中,很多时候我们需要插入百万数据来测试功能和性能,今天我来教大家最简单的插入方法 -----------------1.新建表--------------------- CREATE TAB ...

  7. 腾讯云主机安装登录mysql失败--解决方案[重置root密码并实现远程连接]

    登录MySQL时报错:Access denied for user 'root'@'localhost' (using password: YES) 解决步骤: 1.使用ssh工具连接主机,使用mys ...

  8. 使用canvas制作简单表格

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  9. c++11并发机制

    传统意义上OS提供的并发机制包含进程和线程两个级别.考虑到实际复杂性,c++11仅提供了线程并发机制. c++11提供的线程并发机制主要位于四个头文件中:..... 线程并发机制包括线程管理.原子操作 ...

  10. ubuntu rar文件解压中文乱码问题

    http://blog.csdn.net/android_huber/article/details/7382867 前段时间经常要在ubuntu系统中去解压rar的文件,但是每次解压出来却总是出现中 ...