1. 程式人生 > >Solaris 11配置IPS安裝系統包(類似linux中的yum源)

Solaris 11配置IPS安裝系統包(類似linux中的yum源)

參考:http://blog.chinaunix.net/uid-8860-id-3777457.html

一、 概述:

Solaris 11被稱為第一個雲作業系統,因此在很多方面體現了雲系統的一些特點,在程式包管理方面,Solaris 11做了很大的修改,原有的一些方式方法都已經不再適用一些新的內容了。

Solaris 11的軟體分發採用IPS(Image Packaging System)方式進行分發,IPS裡面存放了所有的Solaris11支援的軟體包,軟體包存放在叫repositories的庫裡面,通過publisher來進行釋出,一般來說,作業系統安裝完畢,預設情況下IPS的分佈包指向為ORACLE網站的更新release:

http://pkg.oracle.com/solaris/release 。
完整文件可參考我豆丁文件:http://www.docin.com/p1-671236987.html

二、 如何建立本地IPS

目前Solaris 11採用IPS的方式來分發軟體,補丁程式也是通過SRU的方式來進行更新,不再出類似Solaris 10及以前的形式的補丁號和補丁集了,因此,Solaris 11下所有軟體包的更新都必須使用IPS。

安裝Solaris 11使用的txt光碟,在初始化安裝的時候,只安裝了kernel以及比較核心和常用的軟體,其他軟體一概不安裝,如果需要安裝就須通過IPS進行作業系統的更新。

如果需要建立IPS,必須在oracle網站下載repo的檔案,以下為SPARC和X86合併的一個repo檔案兩個下載部分連線:

http://download.oracle.com/otn/solaris/11_1/sol-11_1-repo-full.iso-a

http://download.oracle.com/otn/solaris/11_1/sol-11_1-repo-full.iso-b

下載後把這兩個檔案ftp到系統裡面,放在諸如/opt/sun/os目錄下,使用以下命令將這個兩個檔案合併成一個完整的ISO檔案:

# cd /opt/sun/os

# cat sol-11_1-repo-full.iso-a sol-11_1-repo-full.iso-b > sol-11_1-repo-full.iso

建立IPS有兩個方法,第一個方法就是直接使用ISO檔案,第二方法使用拷貝的方法。

1. 直接ISO檔案方法

如果直接使用ISO檔案方法,對客戶來說,這只是一個臨時的方法,除非使用相關指令碼來設定,使得機器reboot後仍然能夠使用。

# lofiadm -a /opt/sun/os/sol-11_1-repo-full.iso(建立lofi裝置/dev/lofi/1)

# mkdir /repo

# mount –F hsfs /dev/lofi/1 /repo

# pkg set-publisher –g file:///repo/repo solaris(直接釋出IPS軟體包)

此時,IPS釋出完畢,可以使用pkg publisher命令檢視釋出資訊,結果和以下資訊類似:

# pkg publisher

PUBLISHER TYPE STATUS P LOCATION

solaris origin online F file:///repon/repo/

 

至此就可以使用pkg install來進行軟體的安裝了,比如pkg install soalris-desktop來安裝Solaris 11的圖形介面程式了。也可以使用pkg list|grep solaris-desktop命令來檢視相關軟體資訊了,比如pkg list solaris-desktop輸出如下:

# pkg list solaris-desktop

NAME (PUBLISHER) VERSION IFO

group/system/solaris-desktop 0.5.11-0.175.1.0.0.24.3 i—

 

2. 第二種建立本地IPS的方法

在Solaris 11系統中建立永久的和效能較好的IPS,可以採用第二種拷貝的方法。

IPS支援兩種型別的repository:origin和mirror方式。origin方法裡面包含了repository的所有資料,比如catalogs,manifests和search indexes,是一種效能比較好和安全性較高的存放方法,而mirror方法存放的repository裡面只包含了檔案。

a. 建立zfs檔案系統

# zfs create rpool/export/repoSolaris11

# zfs set atime=off rpool/export/repoSolaris11(atime關閉,主要是為了獲取高效能)

b. 原始檔案訪問設定

IPS的原始檔即為sol-11_1-repo-full.iso,假設ISO檔案mount到了/reposource目錄下,將ISO檔案的所有內容拷貝到上面步驟中建立的zfs檔案系統中。

# lofiadm –a /opt/sun/os/ sol-11_1-repo-full.iso(產生/dev/lofi/1檔案)

# mount –F hsfs /dev/lofi/1 /reposource

# rsync -aP /reposource /export/repoSolaris11

(rysnc命令主要可以支援增量拷貝,如果是一個全新的目錄,該命令和tar功效一樣)

使用tar命令來拷貝方法如下:

# cd /resposource; tar cf - . |(cd /export/repoSolaris11; tar xf -)

拷貝完畢檔案後,就可以建立search的索引了,方法如下:

# pkgrepo -s /export/repoSolaris11 refresh

至此就可以使用pkg set-publisher來進行釋出了,根據不同的使用目的,可以採用不同的釋出方法,以下主要介紹NFS和HTTP的方法。

三、 IPS釋出方法介紹

IPS只有分佈給系統後,才能進行軟體包的安裝和系統軟體包的update,IPS的釋出方法根據不同的需求有多種方法相適應之。如果用local方式的話,那麼每臺主機系統都需要進行IPS包的下載和分佈,這樣會造成網路上大量資料的傳輸,管理員需要花費大量的時間進行資料的拷貝和傳輸,造成了管理上的不方便,也使得雲作業系統優勢無法盡情發揮。

1. 採用NFS方式分佈

該方法只要在一臺主機系統上進行IPS包的部署,然後其他各主機通過NFS的方式進行軟體包的獲取和升級更新,部署的方法可以參考以上的建立local IPS方法的第二種方法,只是建立ZFS檔案系統時候需要開啟NFS,具體方法如下:

# zfs create rpool/export/repoSolaris11

一般solaris 11作業系統採用zfs封裝系統盤,如果採用ufs的話,zfs create需要制定rpool名字以及磁碟等資訊。

# zfs set share=name=solaris11repo,path=/export/repoSolaris11,prot=nfs rpool/export/repoSolaris11

注意zfs set share=name=solaris11repo只能在Solaris 11上使用,在10的任何版本不支援。

# zfs set sharenfs=on rpool/repoSolaris11

# pkg set-publisher -G ’*’ -M ’*’ -g /net/`hostname `/export/repoSolaris11/ solaris

該釋出取消所有原有的origin和mirror的publisher,增加新的一個origin的分佈內容。

其他主機系統使用nfs釋出來更新的方法就比較省時和簡單了,只需要將檔案系統mount到本地,然後直接釋出和更新就可以了,實際上就是省掉了檔案的拷貝過程:

首先,將遠端nfs檔案系統mount到本地,dfshares 遠端主機名可以看到share出來的路徑,假設將nfs mount到本地的/solaris11reo(沒有該mount point,mkdir建立之),最後一步就是直接分佈即可,pkg set-publisher –g /solaris11repo(如果本機有其他釋出,就使用-G 和-M的option將其他釋出remove掉),此時就可以使用pkg命令進行安裝軟體包和更新系統了。

2. 採用http方式釋出

在建立本地local IPS釋出的基礎上,通過網路,也可以採用http的方式將IPS包釋出到網路裡所有的其他solaris 11系統主機。Solaris 11帶有一個pkg/server的web服務程式應用包,首先將應用enable起來,系統將執行pkg.deportd程序來提供服務:

# svccfg -s application/pkg/server setprop pkg/inst_r oot=/export/repoSolaris11

# svccfg -s application/pkg/server setprop pkg/readonly=true

使用ps來檢視是否具有pkg.deportd程序:

# ps -ef |grep pkg.depotd

root 1188 1 0 17:43:56 ? 0:08 /usr/bin/python2.6 /usr/lib/pkg.depotd --cfg svc:/application/pkg/server:default

預設情況下pkg/server程式包使用80埠作為程式pkg.deportd的監聽埠,如果系統中有其他應用程式使用80埠,那麼就必須使用以下命令改變pkg.deportd的監聽埠:

svccfg -s application/pkg/server setprop pkg/port=port_number

port_number可以根據系統具體情況進行設定。

修改好埠號以及定製好其他屬性後,就可以重新啟動web服務程序了:

# svcadm refresh application/pkg/server

# svcadm enable application/pkg/server

 

至此可以通過pkg set-publisher進行釋出了:

# pkg set-publisher -G ’*’ -M ’*’ -g http://localhost:port_number/ solaris

客戶端可以直接使用pkg set-publisher設定http服務端的分佈,然後可以通過瀏覽器或者pkg命令直接管理和安裝軟體包和update系統了。下圖顯示瀏覽器訪問介面:

圖片無法顯示,請參考我的豆丁文件:http://www.docin.com/p1-671236987.html

至此solaris 11的repository的設定和釋出以及pkg命令set-publisher以及安裝等簡單使用初步介紹了,IPS的管理和修改,以及pkg命令如何更新系統等等介紹請參考後續的文件。
---------------------
作者:長煙慢慢
來源:CSDN
原文:https://blog.csdn.net/cymm_liu/article/details/50172375
版權宣告:本文為博主原創文章,轉載請附上博文連結!