前言
RPM 會有煩人的 Dependence 的問題...當然就會有人想辦法來解決...在 Debian 中出了 apt 來解決這個問題...然後巴西的公司將其移植到 RPM 系統上 ...然後 cle 的 candyz 則是將它收入 cle 裡...
個人在使用一段時間之後...發現實在很方便...一旦整個系統裝好之後...把 APT Server on 起來...您的光驅就很少會再用到...因為所有的安裝都交給 APT 來做...建議大家可以把 APT Server 裝起來試試...超好用的…
准備
測試系統: Red Hat Linux 7.3
所需套件: apt-0.3.19cnc55-5.i386.rpm , apt-devel-0.3.19cnc55-5.i386.rpm
參考網站: http://cle.linux.org.tw/
Candyz 文件
底下是 Candyz 的發表文件...您也可以在其站上找到這篇...
#!/bin/bash
## Copyright (C) 2001-2002 Chung-Yen Chang <candyz at linux.org.tw>
##
## 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 <candyz at linux.org.tw>
#
# =================
# 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.. [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.
$ 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 前端程序,選單模式的 aptitude 及圖形接口的 synaptic,
aptitude 已納入 gaga 中,而 synaptic 則可以在底下網站下載到:
ftp://cle.linux.org.tw/mirror/freshrpms/valhalla/synaptic/
注意:
在升級一些特殊的套件時,尤其像是 kernel 和 glibc 等,升級的先後順序也很重要
請您還是先download回來後,再用 rpm -Uvh 去升級比較保險
至於其它的套件,就比較沒關系了,放心的用 apt 去升級
若遇到無法用 apt 升級時,那就改用 rpm 先去升級該套件吧
可以維持和 CLE 最新的套件同步的狀況了...
另外我也寫了一個選單式的 script,您可以直接執行 apt ,然後選擇您要的指令即可
其它還有幾個不錯的 apt 前端程序,選單模式的 aptitude 及圖形接口的 synaptic,
aptitude 已納入 gaga 中,而 synaptic 則可以在底下網站下載到:
ftp://cle.linux.org.tw/mirror/freshrpms/valhalla/synaptic/
注意:
在升級一些特殊的套件時,尤其像是 kernel 和 glibc 等,升級的先後順序也很重要
請您還是先download回來後,再用 rpm -Uvh 去升級比較保險
至於其它的套件,就比較沒關系了,放心的用 apt 去升級
若遇到無法用 apt 升級時,那就改用 rpm 先去升級該套件吧