歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> Ubuntu Linux系統三種方法添加本地軟件庫

Ubuntu Linux系統三種方法添加本地軟件庫

日期:2017/3/2 16:54:00   编辑:Linux服務器

ubuntu 使用本地軟件包作為安裝源——轉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 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!


Copyright © Linux教程網 All Rights Reserved