linux自动升级软件APT使用教程

发表于:2007-07-04来源:作者:点击数: 标签:
APT-HOWTO_CLE 關於 CLE 的升級系統 我採用的是 APT 套件,這套在 debian 上相當著名的套件,不久前巴西的 Conectiva 公司將其移植到 RPM 系統上,而我把它移植到 CLE 上來 相信有用過 debian 或玩過 apt 的人,應該都不會太陌生才是 由 網中人 所建立。 最後修

  APT-HOWTO_CLE
  關於 CLE 的升級系統 我採用的是 APT 套件,這套在 debian 上相當著名的套件,不久前巴西的 Conectiva 公司將其移植到 RPM 系統上,而我把它移植到 CLE 上來 相信有用過 debian 或玩過 apt 的人,應該都不會太陌生才是
  
  由 網中人 所建立。 最後修改時間為 2003-06-26 16:13:48 ,已有 1 人觀看過本文。
  本文件可以在 ftp://cle.linux.org.tw/pub/CLE/APT-HOWTO_CLE.txt 取得
  
  #!/bin/bash
  ## Copyright (C) 2001-2002 Chung-Yen Chang
  ##
  ## This program is free software; you can redistribute it and/or
  ## modify it under the terms of the GNU General Public License
  ## as published by the Free Software Foundation; either version 2
  ## of the License, or (at your option) any later version.
  ##
  ## This program is distributed in the hope that it will be useful,
  ## but WITHOUT ANY WARRANTY; without even the implied warranty of
  ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  ## GNU General Public License for more details.
  ##
  ## You should have received a copy of the GNU General Public License
  ## along with this program; if not, write to the Free Software
  ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  ## 02111-1307, USA.
  ##
  ## Jun 26 2002
  ## Last modified by Chung-Yen Chang
  #
  # =================
  # APT Server 的架設
  # =================
  #
  BASEDIR=/var/ftp/gaga
  #
  cd $BASEDIR
  rm -rf SRPMS.gaga
  ln -sf SRPMS SRPMS.gaga
  #
  cd RedHat
  rm -rf RPMS.gaga
  ln -sf RPMS RPMS.gaga
  #
  sh /usr/bin/genbasedir --topdir=/var/ftp/gaga --bloat --bz2only --progress RedHat gaga
  #
  # ================
  # APT Clients 部份
  # ================
  #
  關於 CLE 的升級系統
  我採用的是 APT 套件,這套在 debian 上相當著名的套件,不久前巴西的 Conectiva
  公司將其移植到 RPM 系統上,而我把它移植到 CLE 上來
  相信有用過 debian 或玩過 apt 的人,應該都不會太陌生才是
  
  事實上在過年前我就已經在測試了,目前運作的狀況還算可以接受
  目前僅供 RedHat 7.0 以上的系統進行升級
  我測試過的,全新安裝一台英文版的 RedHat7 後,再以 apt 來升級,
  升級完成後,就跟 CLE 1.0 是一樣的了,這樣也不失為一個不錯的升級管道
  目前我在升級新套件時,都已經是用 apt 在運作了...
  
  ** 注意 **
  本套件仍在發展階段,因此,並不保證一定適合每個人的狀況,所以,請要使用的人
  可以的話,最好先備份一下您的重要資料(而我已使用了一段時間了,一切都很正常)
  若您因為使用這個套件而造成損失,我將不負任何責任
  
  一、所需套件:
  至 CLE 網站下載以下兩個套件
  ftp://cle.linux.org.tw/pub/CLE/i386/RedHat/RPMS/
  apt-0.3.19cnc55-5.i386.rpm
  apt-devel-0.3.19cnc55-5.i386.rpm
  下載回來後,以 rpm -ivh 將其安裝起來
  
  二、主要設定檔:
  1./etc/apt/sources.list
  這是最重要的設定檔了,記載著 Server repository 的一些資訊,內容如下:
  
  # Package repository URLs
  #
  # CLE 1.1(gaga) Mirrors
  #
  rpm ftp://cle.linux.org.tw/pub/CLE/i386 RedHat gaga freshrpms
  rpm-src ftp://cle.linux.org.tw/pub/CLE/i386 RedHat gaga freshrpms
  
  這是內定的,若您知道有距離您更近的站有提供同樣的服務時,可以依照您的
  需求更改或是增加您要的站台
  目前國內有提供 apt 服務的列表可參考底下網址:
  http://cle.linux.org.tw/index.php?SCREEN=story_view&sid=&pathway=71&node=277
  
  2.其他在 /etc/apt 目錄下的一些設定檔 apt.conf rpmpriorities vendors.list
  使用內定的即可,若有需要變更,請 man 一下或是自行參考 apt 的說明文件
  
  三、主要指令:
  主要有 apt-cache apt-cdrom apt-config apt-get 這四個指令,一般使用者比較
  會用到的,應該就是 apt-get 指令了,其他更詳細的說明請自行 man 或是參考相關
  的說明文件
  
  =======
  apt-get
  =======
  1.apt-get update
  更新套件資訊,要升級之前,最好都先執行一次本指令和 Server 端的資訊同步
  一下
  
  2.apt-get check
  檢查你系統上套件的相依性狀況
  
  3.apt-get dist-upgrade 和 apt-get upgrade
  執行整個升級動作,建議用 apt-get dist-upgrade 比較好
  
  4.apt-get install 套件名稱
  安裝某一個套件及其相關的套件
  如 apt-get install xcin
  這樣就會幫您安裝好 xcin 了,連 libtabe 也會一併幫您安裝好
  
  5.apt-get remove 套件名稱
  移除某套件,和 rpm -e 功能一樣,同時還會幫您把相關的套件一併移除
  
  6.apt-get source 套件名稱
  抓回 source rpm
  例: apt-get source --compile zhcon
  抓回 source rpm 並編譯成 binary rpm
  --compile 參數就如同 rpm -ba 一般
  
  7.apt-get clean
  刪除下載回來的檔案
  
  =========
  apt-cdrom
  =========
  在您安裝好系統後,可以使用 apt-cdrom 來把這三片光碟加入 apt 的 sources.list 中
  用法如下:
  
  $ apt-cdrom add
  Using CD-ROM mount point /mnt/cdrom/
  Unmounting CD-ROM
  Please insert a Disc in the drive and press enter
  Mounting CD-ROM
  Identifying.. [af0e7c988f7ae057a4a3bclearcase/" target="_blank" >ccc8008134d-2]
  Scanning Disc for index files.. Found 1 package indexes and 0 source indexes.
  Please provide a name for this Disc, such as 'MyDistro 6.0 Disk 1':
  Gaga V1.1 disc1
  This Disc is called:
  'Gaga V1.1 disc1'
  Reading Indexes... Done
  Writing new source list
  Source List entries for this Disc are:
  rpm cdrom:[Gaga V1.1 disc1]/ RedHat gaga
  Repeat this process for the rest of the CDs in your set.
  
  $ apt-cdrom add
  Using CD-ROM mount point /mnt/cdrom/
  Unmounting CD-ROM
  Please insert a Disc in the drive and press enter
  Mounting CD-ROM
  Identifying.. [de0703cd627985ce5ea8d9647abc3e4a-2]
  Scanning Disc for index files.. Found 1 package indexes and 0 source indexes.
  Please provide a name for this Disc, such as 'MyDistro 6.0 Disk 1':
  Gaga V1.1 disc2
  This Disc is called:
  'Gaga V1.1 disc2'
  Reading Indexes... Done
  Writing new source list
  Source List entries for this Disc are:
  rpm cdrom:[Gaga V1.1 disc2]/ RedHat gaga
  Repeat this process for the rest of the CDs in your set.
  
  $ apt-cdrom add
  Using CD-ROM mount point /mnt/cdrom/
  Unmounting CD-ROM
  Please insert a Disc in the drive and press enter
  Mounting CD-ROM
  Identifying.. [0daa110860c40f563b2179487f11fdcf-2]
  Scanning Disc for index files.. Found 1 package indexes and 0 source indexes.
  Please provide a name for this Disc, such as 'MyDistro 6.0 Disk 1':
  Gaga V1.1 disc3
  This Disc is called:
  'Gaga V1.1 disc3'
  Reading Indexes... Done
  Writing new source list
  Source List entries for this Disc are:
  rpm cdrom:[Gaga V1.1 disc3]/ RedHat gaga
  Repeat this process for the rest of the CDs in your set.
  
  在加完三片光碟後,您應該可以在您的 /etc/apt/sources.list 裡看到如下三行:
  
  rpm cdrom:[Gaga V1.1 disc3]/ RedHat gaga
  rpm cdrom:[Gaga V1.1 disc2]/ RedHat gaga
  rpm cdrom:[Gaga V1.1 disc1]/ RedHat gaga
  
  這樣以後就可以使用 apt-get 來安裝之前未安裝的套件了
  
  範例如下:
  若您並沒有連上網路,請修改您的 /etc/apt/sources.list
  把其他各行都刪除或是註解起來,只留下底下這三行
  rpm cdrom:[Gaga V1.1 disc3]/ RedHat gaga
  rpm cdrom:[Gaga V1.1 disc2]/ RedHat gaga
  rpm cdrom:[Gaga V1.1 disc1]/ RedHat gaga
  
  $ apt-get update
  Ign cdrom://Gaga V1.1 disc3 RedHat release.gaga
  Ign cdrom://Gaga V1.1 disc2 RedHat release.gaga
  Ign cdrom://Gaga V1.1 disc1 RedHat release.gaga
  Ign cdrom://Gaga V1.1 disc3 RedHat/base/mirrors
  Ign cdrom://Gaga V1.1 disc2 RedHat/base/mirrors
  Ign cdrom://Gaga V1.1 disc1 RedHat/base/mirrors
  Processing File Dependencies... Done
  Reading Package Lists... Done
  Building Dependency Tree... Done
  W: cdrom:[Gaga V1.1 disc3]/ will not be authenticated.
  W: cdrom:[Gaga V1.1 disc2]/ will not be authenticated.
  W: cdrom:[Gaga V1.1 disc1]/ will not be authenticated.
  
  $ apt-get install zhcon
  Processing File Dependencies... Done
  Reading Package Lists... Done
  Building Dependency Tree... Done
  The following NEW packages will be installed:
  zhcon
  0 packages upgraded, 1 newly installed, 0 to remove(replace) and 0 not
  upgraded.
  Need to get 0B/3098kB of archives. After unpacking 5466kB will be used.
  Media Change: Please insert the disc labeled 'Gaga V1.1 disc3' in the drive
  '/mnt/cdrom/' and press enter
  
  Get:1 cdrom://Gaga V1.1 disc3 RedHat/gaga zhcon 0.14-6 [3098kB]
  Fetched 3098kB in 4m35s (11.3kB/s)
  Executing RPM (-U)...
  Preparing... ########################################### [100%]
  1:zhcon ########################################### [100%]
  
  
  根據指示放入 'Gaga V1.1 disc3' 第三片光碟即可
  也可免除要新增套件時,不知道該套件到底是放在哪一片光碟片上而要找半天的麻煩
  
  
  如何把 iso檔加入 sources.list 用 apt-get 來安裝之前未安裝的套件?
  
  $ mount -o loop gaga-20020625-1.iso /mnt/cdrom/
  $ apt-cdrom add -m -d /mnt/cdrom
  Using CD-ROM mount point /mnt/cdrom/
  Identifying.. [af0e7c988f7ae057a4a3bccc8008134d-2]
  Scanning Disc for index files.. Found 1 package indexes and 0 source indexes.
  Please provide a name for this Disc, such as 'MyDistro 6.0 Disk 1':
  Gaga V1.1 disc1
  This Disc is called:
  'Gaga V1.1 disc1'
  Reading Indexes... Done
  Writing new source list
  Source List entries for this Disc are:
  rpm cdrom:[Gaga V1.1 disc1]/ RedHat gaga
  Repeat this process for the rest of the CDs in your set.
  
  ========================================================
  -m 參數表示我們自己已經 mount CDROM 了,不用再 mount 一次
  -d /mnt/cdrom 用來指定我們的掛載點
  
  重覆此步驟把三個 iso 檔都加入 sources.list 中
  接下來
  
  $ apt-get update
  Ign cdrom://Gaga V1.1 disc3 RedHat release.gaga
  Ign cdrom://Gaga V1.1 disc2 RedHat release.gaga
  Ign cdrom://Gaga V1.1 disc1 RedHat release.gaga
  Ign cdrom://Gaga V1.1 disc3 RedHat/base/mirrors
  Ign cdrom://Gaga V1.1 disc2 RedHat/base/mirrors
  Ign cdrom://Gaga V1.1 disc1 RedHat/base/mirrors
  Processing File Dependencies... Done
  Reading Package Lists... Done
  Building Dependency Tree... Done
  W: cdrom:[Gaga V1.1 disc3]/ will not be authenticated.
  W: cdrom:[Gaga V1.1 disc2]/ will not be authenticated.
  W: cdrom:[Gaga V1.1 disc1]/ will not be authenticated.
  
  $ apt-get install zhcon
  Processing File Dependencies... Done
  Reading Package Lists... Done
  Building Dependency Tree... Done
  The following NEW packages will be installed:
  zhcon
  0 packages upgraded, 1 newly installed, 0 to remove(replace) and 0 not
  upgraded.
  
  Need to get 0B/3098kB of archives. After unpacking 5466kB will be used.
  Media Change: Please insert the disc labeled 'Gaga V1.1 disc3' in the drive
  '/mnt/cdrom/' and press enter
  
  此時再開個視窗手動把 disc3 iso 掛載到 /mnt/cdrom 下即可
  
  =========
  apt-cache
  =========
  1.apt-cache showpkg
  顯示套件資訊
  例: apt-cache showpkg zhcon
  
  2.apt-cache stats
  顯示相關的統計資訊
  
  3.apt-cache dump
  顥示 cache 中每個套件的簡短資訊
  
  4.apt-cache unmet
  檢查所有未符合相依性的相關資訊
  
  5.apt-cache show
  顯示套件資訊,同 rpm -qi 一般
  
  6.apt-cache search
  尋找檔案
  例: apt-cache search zhcon
  
  7.apt-cache depends
  顯示套件的相依性
  例: apt-cache depends zhcon
  
  8.apt-cache pkgnames
  尋找符合的套件名稱
  例: $ apt-cache pkgnames openss
  openssh-askpass
  openssl096
  openssl-perl
  openssl095a
  openssl-python
  openssh-clients
  openssl-devel
  openssh-askpass-gnome
  openssh
  openssl
  openssh-server
  
  ==========
  apt-config
  ==========
  1.apt-config dump
  顯示目前的設定狀態
  
  ==============================================================================
  
  以上這些是比較常用到的指令
  
  基本上,若要升級,只要定期執行 apt-get update 和 apt-get dist-upgrade 就
  可以維持和 CLE 最新的套件同步的狀況了...
  
  另外我也寫了一個選單式的 script,您可以直接執行 apt ,然後選擇您要的指令
  即可....
  還有一個不錯用的圖形介面 apt 前端程式 synaptic,您可以在底下網站下載到:
  ftp://cle.linux.org.tw/mirror/freshrpms/valhalla/synaptic/
  
  注意:
  在升級一些特殊的套件時,尤其像是 kernel 和 glibc 等,升級的先後順序也很重要
  請您還是先download回來後,再用 rpm -Uvh 去升級比較保險
  至於其他的套件,就比較沒關係了,放心的用 apt 去升級
  若遇到無法用 apt 升級時,那就改用 rpm 先去升級該套件吧
  
  --
  Chung-Yen Chang (candyz at linux.org.tw)
  RHCE Cert Number: 806200500202093
  ICQ Number: 13917113
  http://cle.linux.org.tw/
  --
  
  補充 by netman:
  另一篇<<從無到有,CLE 的 APT 之旅>>的文章﹐也是非常值得大家參考的﹕
  http://cle.linux.org.tw/~candyz/index.htm
  

原文转自:http://www.ltesting.net