站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

pkg-get-套件管理工具

前言

[What is Blastwave.org ?] 簡單來說 [Blastwave] 就是幫您把自由軟體收集起來讓 x86 及 Sparc 使用者容易安裝套件只要打 pkg-get install 套件名稱 就可清鬆安裝套件了;使用 pkg-get 安裝的套件開頭名稱為 CSW (Community Software for Solaris)。

實作環境

安裝及設定

步驟1.安裝 pkg-get 套件

首先利用 pkgadd 指令來安裝 [Blastwave] 所提供的套件

 #pkgadd -d http://www.blastwave.org/pkg_get.pkg          //安裝 pkg-get
 ## Downloading...
 ..............25%..............50%..............75%..............100%
 ## Download Complete
 The following packages are available:
  1  CSWpkgget     pkg_get - CSW version of automated package download tool
                   (all) 3.7.2
 Select package(s) you wish to process (or 'all' to process all packages).(default: all) [?,??,q]:  //按下 enter 繼續安裝
 Processing package instance <CSWpkgget> from <http://www.blastwave.org/pkg_get.pkg>
 pkg_get - CSW version of automated package download tool(all) 3.7.2 
 You may use and copy this software without charge, as you see fit.The software is copyright (C) Philip Brown, Nov 2000-2006
 Dont forget to update /opt/csw/etc/pkg-get.conf with your nearest archive site.(or /etc/opt/csw/pkg-get.conf)
 Dont stick with the default of ibiblio.org: it's very slow!
 The selected base directory </opt/csw> must exist before installation is attempted.
 Do you want this directory created now [y,n,?,q] y  //輸入 y 繼續安裝
 Using </opt/csw> as the package base directory.
 ## Processing package information.
 ## Processing system information.
 WARNING: setting mode of </opt/csw/bin> to default mode (755)
 WARNING: setting mode of </opt/csw/etc> to default mode (755)
 WARNING: setting mode of </opt/csw/share> to default mode (755)
 WARNING: setting mode of </opt/csw/share/man> to default mode (755)
 WARNING: setting mode of </opt/csw/share/man/man1m> to default mode (755)
   1 package pathname is already properly installed.
 ## Verifying disk space requirements.
 ## Checking for conflicts with packages already installed.
 ## Checking for setuid/setgid programs.
 This package contains scripts which will be executed with super-user permission during the process of installing this package.
 Do you want to continue with the installation of <CSWpkgget> [y,n,?] y
 Installing pkg_get - CSW version of automated package download tool as <CSWpkgget>
 ## Installing part 1 of 1.
 /opt/csw/bin/pkg-get
 /opt/csw/etc/pkg-get.conf.csw
 /opt/csw/share/man/man1m/pkg-get.1m
 /var/pkg-get/admin-fullauto
 [ verifying class <none> ]
 ## Executing postinstall script.
 Installing /opt/csw/etc/pkg-get.conf.csw to pkg-get.conf
 **** IMPORTANT ****
 A default configuration file for pkg-get has been created in
    /opt/csw/etc/pkg-get.conf
 You should edit it to change the 'site' configuration, to point to
 the most appropriate mirror for you, from the list at
   http://www.blastwave.org/mirrors
 Installation of <CSWpkgget> was successful.               //安裝 pkg-get 完成

步驟2.修改 pkg-get 設定檔

安裝 pkg-get 完成後,我們必須修改 pkg-get 設定檔來指定安裝套件時是到哪個 Mirror Sites 去下載套件,下面二個連結是 Mirror Sites 列表、狀態。可以設定為台灣銘傳大學的 Mirror Sites 這樣才不用安裝套件就要出國比賽了。

[Blastwave.org Software Mirror Locations] [Blastwave.org Software Mirror Sites Status]

 #vi /opt/csw/etc/pkg-get.conf
 url=http://ibiblio.org/pub/packages/solaris/csw/unstable       //預設站台是美國
 url=ftp://ftp.mcu.edu.tw/pub/Sun/metalab.unc.edu/csw/stable    //修改為台灣銘傳大學 (注意是 stable 哦)

Unstable 及 Stable 的差異性?

步驟3.修改 $PATH

因為 pkg-get 執行檔是安裝在 /opt/csw/bin 下,所以若是您只想打 pkg-get 來執行指令就必須修改您使用的 shell 內的 PATH。

 #vi ~/local.cshrc
 set path=(/bin /usr/bin /usr/sbin /usr/local/bin /usr/ucb /etc /opt/csw/bin .)    //加/opt/csw/bin
 #source ~/local.cshrc         //使修改生效
 #echo $PATH                   //查看 PATH 變數內容
 /bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/ucb:/etc:/opt/csw/bin:.

步驟4.安裝 gnupg 及 textutils

怎知道您下載的套件沒有被人打包惡意程式在裡面?因此 pkg-get 便有了安全性設定來確定您安裝的套件是安全的、沒有問題的。

 #pkg-get install gnupg textutils                  //開始安裝 gnupg 跟 textutils (會安裝一堆相關套件)
 [ verifying class <none> ]
 Installation of <CSWtextutils> was successful.    //終於裝完了

查看剛才安裝了哪些相關套件

 #ls -ladt /var/sadm/pkg/CSW*                      //列出剛才安裝的相關套件
 #ls -1 /var/sadm/pkg/ | grep CSW | xargs pkginfo  //查看相關套件的說明

步驟5.匯入 PGP Public Key

 #pkg-get install wget                             //安裝 wget 套件
 #/opt/csw/bin/wget --output-document=pgp.key http://www.blastwave.org/mirrors.html  //下載 PGP Key
 --16:22:37--  http://www.blastwave.org/mirrors.html
           => `pgp.key'
 Resolving www.blastwave.org... 66.225.151.251
 Connecting to www.blastwave.org|66.225.151.251|:80... connected.
 HTTP request sent, awaiting response... 200 OK
 Length: 18,937 (18K) [text/html]
 100%[=============================================================================>] 18,937        31.03K/s
 16:22:38 (30.92 KB/s) - `pgp.key' saved [18937/18937]

匯入 PGP Public Key

 #gpg --import pgp.key        //匯入 PGP Public Key
 gpg: Command not found.
 #rehash                      //重建hash table,才不會出現找不到指令的情形
 #gpg --import pgp.key
 gpg: directory `/export/home/weithenn/.gnupg' created
 gpg: can't open `/gnupg/options.skel': No such file or directory
 gpg: keyring `/export/home/weithenn/.gnupg/secring.gpg' created
 gpg: keyring `/export/home/weithenn/.gnupg/pubring.gpg' created
 gpg: /export/home/weithenn/.gnupg/trustdb.gpg: trustdb created
 gpg: key E12E9D2F: public key "Distribution Manager <dm@blastwave.org>" imported
 gpg: Total number processed: 1
 gpg:               imported: 1
 gpg: no ultimately trusted keys found

確定 pkg-get 設定檔是否開啟 PGP 及 MD5 功能

 #vi /opt/csw/etc/pkg-get.conf 
 #use_gpg=false                   //預設使用 pgp
 #use_md5=false                   //預設使用 md5

步驟6.檢查 PGP 機制是否正常運作

匯入 PGP Public Key 後如何知道機制是否正常運作呢? 可從二個方面下手。

 #pkg-get -U
 WARNING: gpg not found
 WARNING: gpg not available.
 #grep top-3.6 /var/pkg-get/catalog-ibiblio.org      //查尋 top 套件的 checksum
 top 3.6,REV=2007.01.01 CSWtop top-3.6,REV=2007.01.01-SunOS5.8-i386-CSW.pkg.gz 50c4a05275d3cd639db71764b4e2ee32

修改 catalog-ibiblio.org 內 checksum 值,將 checksum 值最後 32 改成 78

 #grep top-3.6 /var/pkg-get/catalog-ibiblio.org      //本機 catalog checksum 已經改變top 3.6,REV=2007.01.01 CSWtop top-3.6,REV=2007.01.01-SunOS5.8-i386-CSW.pkg.gz 50c4a05275d3cd639db71764b4e2ee78

試著安裝 top 套件看看

 #pkg-get install top
 No existing install of CSWtop found. Installing...
 Trying http://ibiblio.org/pub/packages/solaris/csw/unstable/i386/5.10/top-3.6,REV=2007.01.01-SunOS5.8-i386-CSW.pkg.gz--17:23:56--  
 http://ibiblio.org/pub/packages/solaris/csw/unstable/i386/5.10/top-3.6,REV=2007.01.01-SunOS5.8-i386-CSW.pkg.gz          
 => `top-3.6,REV=2007.01.01-SunOS5.8-i386-CSW.pkg.gz'
 Resolving ibiblio.org... 152.46.7.80
 Connecting to ibiblio.org|152.46.7.80|:80... connected.
 HTTP request sent, awaiting response... 200 OK
 Length: 56,821 (55K) [text/plain]
 100%[=============================================================================>] 56,821        43.11K/s
 17:23:58 (43.03 KB/s) - `top-3.6,REV=2007.01.01-SunOS5.8-i386-CSW.pkg.gz' saved [56821/56821]
 ERROR: checksum top-3.6,REV=2007.01.01-SunOS5.8-i386-CSW.pkg.gz does not match  remote checksum   //跟你說 checksum 不對
 (perhaps you need to pkg-get -U ?)                                                                //叫你更新 catalog

補充 pkg-get 使用說明

參數說明
-i or install安裝套件
-u or upgrade升級已經安裝的套件
-a or available列出可安裝的套件及版本
-c or compare比對本地端(Lcalhost)跟遠端(Mirror Site)間套件(是否安裝、版本是否一樣)
-l or list列出本地端(Localhost)已安裝的套件名稱
-d or download僅下載套件而不執行安裝
-D or describe列出可安裝套件的功能說明
-U or updatecatalog更新套件安裝列表 catalog (/var/pkg-get/catalog-ibiblio.org、desc-ibiblio.org)
-S or sync將套件版本同步跟 Mirror Site 一樣
-f在安裝套件途中不尋問任何問題 (See /var/pkg-get/admin-fullauto)
-s ftp://site/dir -U若指定的 FTP/HTTP 站台無法連結可使用此參數改變連結的站台

參考

[How To Get Started With Blastwave.org for Solaris 10 Users]

[Solaris pkg-get tool]

[fei翻译了《Solaris pkg-get 工具》--献给大家-Solaris上的软件包管理 - China Linux Forum]

[Blastwave.org Software Mirror Locations]

[Blastwave.org Software Mirror Sites Status]

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com