一、solaris補(bǔ)丁介紹
1.1補(bǔ)丁的種類及文件名
solaris的補(bǔ)丁分為兩類,一類是Point補(bǔ)丁,另一類是Cluster補(bǔ)丁。
a)Point補(bǔ)丁程序:
這類補(bǔ)丁僅僅是針對某一問題或缺陷而發(fā)布的單個補(bǔ)丁程序,solaris7、solaris8、solairs9的Patch一般為*.zip文件solaris2.6一般為.tar.Z或.tar.gz文件,它有如下編號方式:
patch base code-revision num (如110668-04)
前面部分是這個補(bǔ)丁的主版本號(base code),后面部分是此補(bǔ)丁的修訂號。兩者合起來構(gòu)成此補(bǔ)丁的Patch-ID。如上例編號為110668-04的補(bǔ)丁,110668為主版本號,04是修訂號。此補(bǔ)丁是在110668-03的基礎(chǔ)上做了新的修復(fù)。有一點(diǎn)需要指出,補(bǔ)丁版本號為110668的一系列補(bǔ)丁都是針對 /usr/sbin/in.telnetd 這一文件的不同問題的修復(fù),110668-04發(fā)布以后,sun將不再提供110668-04以前的補(bǔ)丁,如110668-03等。
b) Cluster補(bǔ)丁程序:
cluster補(bǔ)丁僅僅是一系列point補(bǔ)丁的重新包裝,并帶有自動安裝程序。Cluster補(bǔ)丁的命名方式如下:
version_Recommended
如9_x86_Recommended.zip是針對Solaris 9 for X86的補(bǔ)丁集。
8_Recommended.zip是針對Solaris 8 for Sparc 的補(bǔ)丁集。
每個Cluster補(bǔ)丁都對應(yīng)一個CLUSTER_README文件,詳細(xì)描述了該Cluster包含的補(bǔ)丁,以及安裝的方法或注意事項(xiàng)。
1.2 關(guān)于補(bǔ)丁的其他信息
sun公司對每一版本的solaris都維護(hù)了一份Patch Reports,該P(yáng)atch Reports包含了對應(yīng)版本solaris所有補(bǔ)丁的描述。Patch Reports每月更新兩次,可以從如下地址得到:
http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access&nav=patchpage
另外sun還維護(hù)了一份Sun Alert Patch Report,該文檔按產(chǎn)品分類,并且隨時更新。從這里可以找到所有sun產(chǎn)品的更新文檔及相應(yīng)補(bǔ)丁,當(dāng)然也包括的solaris的Sun Alert 文檔、Patch ID、簡要說明等。Sun Alert Patch Report從這里可以得到:
http://sunsolve.sun.com/pub-cgi/show.pl?target=sunalert_patches
相應(yīng)的solaris部分可從如下鏈接得到:
http://sunsolve.sun.com/pub-cgi/show.pl?target=sunalert_patches#Solaris
表格按時間排序,從Category表格中可以知道此問題屬于安全缺陷修復(fù)還是應(yīng)用優(yōu)化。
二、補(bǔ)丁的下載
Cluster補(bǔ)丁可以從如下網(wǎng)址下載:
http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access&nav=patchpage
同樣可以使用FTP協(xié)議下載,在sunsolve.sun.com的/pub/patches可以找到所有的補(bǔ)丁。
下載后為一個*_Recommended.zip文件。該壓縮文件包含一份CLUSTER_README文件,建議安裝前閱讀此文件。
Point補(bǔ)丁由于其分散性不易下載與管理,可以使用Sun Alert Patch Report或Patch Reports來查看補(bǔ)丁情況,這兩份文檔相應(yīng)的Patch ID及對應(yīng)下載地址。另外sun網(wǎng)站提供的Patch Finder 功能也可以使我們在知道Patch ID的情況下很方便的找到該補(bǔ)丁,連接如下:
http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access&nav=patchpage
同樣,利用ftp協(xié)議從sunsolve.sun.com的/pub/patches目錄下也可以下載指定Patch。
Sun公司建議所有下載的補(bǔ)丁都放到/var/tmp目錄下(這也是通常的做法),如此將不會導(dǎo)致補(bǔ)丁安裝時出現(xiàn)的任何permission/ownership的問題。
三、solaris補(bǔ)丁的安裝和刪除
3.1 /var/sadm/patch目錄
在/var/sadm/patch目錄下,記錄了已安裝的補(bǔ)丁。
如: # ls /var/sadm/patch
107558-05 107594-04 107630-01 107663-01 107683-01
107696-01 107817-01 107582-01 107612-06 107640-03
建議不要對此目錄做任何修改,此目錄被破壞后將不能安裝或刪除任何補(bǔ)丁。
3.2 管理solaris補(bǔ)丁
Solaris提供了兩個命令來管理補(bǔ)丁,Patchadd和patchrm。這兩個命令是在Solaris 2.6版本開始提供的,在2.6以前的版本中,每個補(bǔ)丁包中都提供了一個 installpatch 程序和一個 backoutpatch 程序來完成補(bǔ)丁的安裝和卸載。
Patchadd 用來安裝解壓縮后的補(bǔ)丁程序。Patchadd通過調(diào)用 pkgadd 命令來安裝補(bǔ)丁。安裝補(bǔ)丁前,我們需要將補(bǔ)丁解壓到/var/tmp下安裝。安裝補(bǔ)丁如下命令:
# cd /var/tmp
# patchadd 110668-04
Checking installed patches...
Verifying sufficient filesystem capacity (dry run method)
Installing patch packages...
如果當(dāng)前目錄下有110668-04目錄,patchadd將安裝此補(bǔ)丁。補(bǔ)丁安裝后,系統(tǒng)會備份原文件,以便在以后刪除此補(bǔ)丁。如果使用patchadd –d 選項(xiàng)安裝補(bǔ)丁,系統(tǒng)將不備份源文件,這意味著你將不能在以后刪除此補(bǔ)丁。使用Patchadd –p 選項(xiàng)可以檢驗(yàn)已安裝的patch,例如:
# patchadd -p
Patch: 106793-01 Obsoletes: Requires: Incompatibles:
Packages: SUNWhea
. . .
同樣,solaris提供了另一命令來查看已安裝的patch:
#showrev -p
Patch: 106793-01 Obsoletes: Requires: Incompatibles:
Packages: SUNWhea
. . .
Patchrm 如果因?yàn)槟撤N情況你想卸載某一補(bǔ)丁,你可以使用Patchrm命令來完成。此命令通過調(diào)用 pkgadd 來恢復(fù)安裝補(bǔ)丁前的文件備份來卸載補(bǔ)丁。使用Patch-ID作為Patchrm的參數(shù)就可以卸載補(bǔ)丁:
# patchrm 106793-01
Checking installed packages and patches...
Backing out patch 106793-01...
Patch 106793-01 has been backed out.
這里需要說明一下,在如下三種情況下,補(bǔ)丁將不能卸載:
1.在安裝patch時,用patchadd -d命令指定patchadd 不備份被更新的文件。這樣安裝的patch無法刪除。
2.另一Patch需要此Patch,即存在dependence(關(guān)聯(lián)性), 如一定要刪掉該patch,先刪掉另一patch。
3.要刪的patch已被另一更新的patch廢棄了。如安裝110668-04補(bǔ)丁后,如果以前安裝過110668-03,則110668-03將被110668-04廢棄,110668-03將無法刪除。
3.3 Cluster補(bǔ)丁的安裝
Cluster補(bǔ)丁為單個補(bǔ)丁的集合,下載解壓后,可以通過執(zhí)行./install_Cluster腳本來完成補(bǔ)丁集的安裝。執(zhí)行./install_Cluster后,腳本將檢查當(dāng)前目錄下的patch_order文件,此文件標(biāo)明了Patch的安裝順序,./install_Cluster將按照Patch_order文件給出的順序來安裝patch。如果沒有patch_order文件,則假定當(dāng)前目錄下所有以1開始的目錄名均為需要安裝的補(bǔ)丁目錄,并且假定這些目錄的名稱次序作為安裝Patch的次序。因此你可以通過修改patch_order文件來決定安裝或不安裝某Patch。
3.4 安裝Patch時的注意事項(xiàng)
由于在安裝Patch時需要更新文件,故此Solaris官方推薦在安裝補(bǔ)丁時進(jìn)入單用戶模式安裝。在某些重要服務(wù)器上可能帶來不便,因此你完全可以在多用戶模式下通過停止相關(guān)服務(wù)進(jìn)程來完成Patch的安裝。
sun推出的Patch并不是每個都一定要安裝的,因此需要在安裝patch前仔細(xì)閱讀README來確定是否需要安裝此補(bǔ)丁。另外,某些補(bǔ)丁具有依賴性,需要先安裝另一補(bǔ)丁才能完成此補(bǔ)丁的安裝,這些都會在README中標(biāo)明。總之,安裝補(bǔ)丁之前強(qiáng)烈建議你閱讀相應(yīng)的README(每個Patch都提供單獨(dú)的README文件)。
3.5 安裝PATCH過程中出現(xiàn)的問題
在安裝補(bǔ)丁的過程中,經(jīng)常出現(xiàn)一些錯誤提示。例如:
Installation of 123456-11 failed. Return code 2
通過Return code我們可以知道錯誤類型。需要注意的是,Return code 2說明此補(bǔ)丁已被安裝,Return code 8說明此補(bǔ)丁要修復(fù)的軟件沒有被系統(tǒng)安裝。因此,2和8是完全可以被忽略的錯誤提示。下表說明了各個Return code對應(yīng)的錯誤類型。
Exit code Meaning
0 No error
1 Usage error
2 Attempt to apply a patch that's already been applied
3 Effective UID is not root
4 Attempt to save original files failed
5 pkgadd failed
6 Patch is obsoleted
7 Invalid package directory
8 Attempting to patch a package that is not installed
9 Cannot access /usr/sbin/pkgadd (client problem)
10 Package validation errors
11 Error adding patch to root template
12 Patch script terminated due to signal
13 Symbolic link included in patch
14 NOT USED
15 The prepatch script had a return code other than 0.
16 The postpatch script had a return code other than 0.
17 Mismatch of the -d option between a previous patch install and the current one.
18 Not enough space in the file systems that are targets of the patch.
19 $SOFTINFO/INST_RELEASE file not found
20 A direct instance patch was required but not found
21 The required patches have not been installed on the manager
22 A progressive instance patch was required but not found < tr>
23 A restricted patch is already applied to the package
24 An incompatible patch is applied
25 A required patch is not applied
26 The user specified backout data can't be found
27 The relative directory supplied can't be found
28 A pkginfo file is corrupt or missing
29 Bad patch ID format
30 Dryrun failure(s)
31 Path given for -C option is invalid
32 Must be running Solaris 2.6 or greater
33 Bad formatted patch file or patch file not found
34 The appropriate kernel jumbo patch needs to be installed
35 Later revision already installed
Reference:
1.Solaris™8 Operating Environment System Administration I, (SA-238)
2.System Administration Guide, Volume 1, (805-7228),Solaris
3.SunSolve Patch Support Portal http://sunsolve.sun.com/pub-cgi/show.pl?target=patchpage
1.1補(bǔ)丁的種類及文件名
solaris的補(bǔ)丁分為兩類,一類是Point補(bǔ)丁,另一類是Cluster補(bǔ)丁。
a)Point補(bǔ)丁程序:
這類補(bǔ)丁僅僅是針對某一問題或缺陷而發(fā)布的單個補(bǔ)丁程序,solaris7、solaris8、solairs9的Patch一般為*.zip文件solaris2.6一般為.tar.Z或.tar.gz文件,它有如下編號方式:
patch base code-revision num (如110668-04)
前面部分是這個補(bǔ)丁的主版本號(base code),后面部分是此補(bǔ)丁的修訂號。兩者合起來構(gòu)成此補(bǔ)丁的Patch-ID。如上例編號為110668-04的補(bǔ)丁,110668為主版本號,04是修訂號。此補(bǔ)丁是在110668-03的基礎(chǔ)上做了新的修復(fù)。有一點(diǎn)需要指出,補(bǔ)丁版本號為110668的一系列補(bǔ)丁都是針對 /usr/sbin/in.telnetd 這一文件的不同問題的修復(fù),110668-04發(fā)布以后,sun將不再提供110668-04以前的補(bǔ)丁,如110668-03等。
b) Cluster補(bǔ)丁程序:
cluster補(bǔ)丁僅僅是一系列point補(bǔ)丁的重新包裝,并帶有自動安裝程序。Cluster補(bǔ)丁的命名方式如下:
version_Recommended
如9_x86_Recommended.zip是針對Solaris 9 for X86的補(bǔ)丁集。
8_Recommended.zip是針對Solaris 8 for Sparc 的補(bǔ)丁集。
每個Cluster補(bǔ)丁都對應(yīng)一個CLUSTER_README文件,詳細(xì)描述了該Cluster包含的補(bǔ)丁,以及安裝的方法或注意事項(xiàng)。
1.2 關(guān)于補(bǔ)丁的其他信息
sun公司對每一版本的solaris都維護(hù)了一份Patch Reports,該P(yáng)atch Reports包含了對應(yīng)版本solaris所有補(bǔ)丁的描述。Patch Reports每月更新兩次,可以從如下地址得到:
http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access&nav=patchpage
另外sun還維護(hù)了一份Sun Alert Patch Report,該文檔按產(chǎn)品分類,并且隨時更新。從這里可以找到所有sun產(chǎn)品的更新文檔及相應(yīng)補(bǔ)丁,當(dāng)然也包括的solaris的Sun Alert 文檔、Patch ID、簡要說明等。Sun Alert Patch Report從這里可以得到:
http://sunsolve.sun.com/pub-cgi/show.pl?target=sunalert_patches
相應(yīng)的solaris部分可從如下鏈接得到:
http://sunsolve.sun.com/pub-cgi/show.pl?target=sunalert_patches#Solaris
表格按時間排序,從Category表格中可以知道此問題屬于安全缺陷修復(fù)還是應(yīng)用優(yōu)化。
二、補(bǔ)丁的下載
Cluster補(bǔ)丁可以從如下網(wǎng)址下載:
http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access&nav=patchpage
同樣可以使用FTP協(xié)議下載,在sunsolve.sun.com的/pub/patches可以找到所有的補(bǔ)丁。
下載后為一個*_Recommended.zip文件。該壓縮文件包含一份CLUSTER_README文件,建議安裝前閱讀此文件。
Point補(bǔ)丁由于其分散性不易下載與管理,可以使用Sun Alert Patch Report或Patch Reports來查看補(bǔ)丁情況,這兩份文檔相應(yīng)的Patch ID及對應(yīng)下載地址。另外sun網(wǎng)站提供的Patch Finder 功能也可以使我們在知道Patch ID的情況下很方便的找到該補(bǔ)丁,連接如下:
http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access&nav=patchpage
同樣,利用ftp協(xié)議從sunsolve.sun.com的/pub/patches目錄下也可以下載指定Patch。
Sun公司建議所有下載的補(bǔ)丁都放到/var/tmp目錄下(這也是通常的做法),如此將不會導(dǎo)致補(bǔ)丁安裝時出現(xiàn)的任何permission/ownership的問題。
三、solaris補(bǔ)丁的安裝和刪除
3.1 /var/sadm/patch目錄
在/var/sadm/patch目錄下,記錄了已安裝的補(bǔ)丁。
如: # ls /var/sadm/patch
107558-05 107594-04 107630-01 107663-01 107683-01
107696-01 107817-01 107582-01 107612-06 107640-03
建議不要對此目錄做任何修改,此目錄被破壞后將不能安裝或刪除任何補(bǔ)丁。
3.2 管理solaris補(bǔ)丁
Solaris提供了兩個命令來管理補(bǔ)丁,Patchadd和patchrm。這兩個命令是在Solaris 2.6版本開始提供的,在2.6以前的版本中,每個補(bǔ)丁包中都提供了一個 installpatch 程序和一個 backoutpatch 程序來完成補(bǔ)丁的安裝和卸載。
Patchadd 用來安裝解壓縮后的補(bǔ)丁程序。Patchadd通過調(diào)用 pkgadd 命令來安裝補(bǔ)丁。安裝補(bǔ)丁前,我們需要將補(bǔ)丁解壓到/var/tmp下安裝。安裝補(bǔ)丁如下命令:
# cd /var/tmp
# patchadd 110668-04
Checking installed patches...
Verifying sufficient filesystem capacity (dry run method)
Installing patch packages...
如果當(dāng)前目錄下有110668-04目錄,patchadd將安裝此補(bǔ)丁。補(bǔ)丁安裝后,系統(tǒng)會備份原文件,以便在以后刪除此補(bǔ)丁。如果使用patchadd –d 選項(xiàng)安裝補(bǔ)丁,系統(tǒng)將不備份源文件,這意味著你將不能在以后刪除此補(bǔ)丁。使用Patchadd –p 選項(xiàng)可以檢驗(yàn)已安裝的patch,例如:
# patchadd -p
Patch: 106793-01 Obsoletes: Requires: Incompatibles:
Packages: SUNWhea
. . .
同樣,solaris提供了另一命令來查看已安裝的patch:
#showrev -p
Patch: 106793-01 Obsoletes: Requires: Incompatibles:
Packages: SUNWhea
. . .
Patchrm 如果因?yàn)槟撤N情況你想卸載某一補(bǔ)丁,你可以使用Patchrm命令來完成。此命令通過調(diào)用 pkgadd 來恢復(fù)安裝補(bǔ)丁前的文件備份來卸載補(bǔ)丁。使用Patch-ID作為Patchrm的參數(shù)就可以卸載補(bǔ)丁:
# patchrm 106793-01
Checking installed packages and patches...
Backing out patch 106793-01...
Patch 106793-01 has been backed out.
這里需要說明一下,在如下三種情況下,補(bǔ)丁將不能卸載:
1.在安裝patch時,用patchadd -d命令指定patchadd 不備份被更新的文件。這樣安裝的patch無法刪除。
2.另一Patch需要此Patch,即存在dependence(關(guān)聯(lián)性), 如一定要刪掉該patch,先刪掉另一patch。
3.要刪的patch已被另一更新的patch廢棄了。如安裝110668-04補(bǔ)丁后,如果以前安裝過110668-03,則110668-03將被110668-04廢棄,110668-03將無法刪除。
3.3 Cluster補(bǔ)丁的安裝
Cluster補(bǔ)丁為單個補(bǔ)丁的集合,下載解壓后,可以通過執(zhí)行./install_Cluster腳本來完成補(bǔ)丁集的安裝。執(zhí)行./install_Cluster后,腳本將檢查當(dāng)前目錄下的patch_order文件,此文件標(biāo)明了Patch的安裝順序,./install_Cluster將按照Patch_order文件給出的順序來安裝patch。如果沒有patch_order文件,則假定當(dāng)前目錄下所有以1開始的目錄名均為需要安裝的補(bǔ)丁目錄,并且假定這些目錄的名稱次序作為安裝Patch的次序。因此你可以通過修改patch_order文件來決定安裝或不安裝某Patch。
3.4 安裝Patch時的注意事項(xiàng)
由于在安裝Patch時需要更新文件,故此Solaris官方推薦在安裝補(bǔ)丁時進(jìn)入單用戶模式安裝。在某些重要服務(wù)器上可能帶來不便,因此你完全可以在多用戶模式下通過停止相關(guān)服務(wù)進(jìn)程來完成Patch的安裝。
sun推出的Patch并不是每個都一定要安裝的,因此需要在安裝patch前仔細(xì)閱讀README來確定是否需要安裝此補(bǔ)丁。另外,某些補(bǔ)丁具有依賴性,需要先安裝另一補(bǔ)丁才能完成此補(bǔ)丁的安裝,這些都會在README中標(biāo)明。總之,安裝補(bǔ)丁之前強(qiáng)烈建議你閱讀相應(yīng)的README(每個Patch都提供單獨(dú)的README文件)。
3.5 安裝PATCH過程中出現(xiàn)的問題
在安裝補(bǔ)丁的過程中,經(jīng)常出現(xiàn)一些錯誤提示。例如:
Installation of 123456-11 failed. Return code 2
通過Return code我們可以知道錯誤類型。需要注意的是,Return code 2說明此補(bǔ)丁已被安裝,Return code 8說明此補(bǔ)丁要修復(fù)的軟件沒有被系統(tǒng)安裝。因此,2和8是完全可以被忽略的錯誤提示。下表說明了各個Return code對應(yīng)的錯誤類型。
Exit code Meaning
0 No error
1 Usage error
2 Attempt to apply a patch that's already been applied
3 Effective UID is not root
4 Attempt to save original files failed
5 pkgadd failed
6 Patch is obsoleted
7 Invalid package directory
8 Attempting to patch a package that is not installed
9 Cannot access /usr/sbin/pkgadd (client problem)
10 Package validation errors
11 Error adding patch to root template
12 Patch script terminated due to signal
13 Symbolic link included in patch
14 NOT USED
15 The prepatch script had a return code other than 0.
16 The postpatch script had a return code other than 0.
17 Mismatch of the -d option between a previous patch install and the current one.
18 Not enough space in the file systems that are targets of the patch.
19 $SOFTINFO/INST_RELEASE file not found
20 A direct instance patch was required but not found
21 The required patches have not been installed on the manager
22 A progressive instance patch was required but not found < tr>
23 A restricted patch is already applied to the package
24 An incompatible patch is applied
25 A required patch is not applied
26 The user specified backout data can't be found
27 The relative directory supplied can't be found
28 A pkginfo file is corrupt or missing
29 Bad patch ID format
30 Dryrun failure(s)
31 Path given for -C option is invalid
32 Must be running Solaris 2.6 or greater
33 Bad formatted patch file or patch file not found
34 The appropriate kernel jumbo patch needs to be installed
35 Later revision already installed
Reference:
1.Solaris™8 Operating Environment System Administration I, (SA-238)
2.System Administration Guide, Volume 1, (805-7228),Solaris
3.SunSolve Patch Support Portal http://sunsolve.sun.com/pub-cgi/show.pl?target=patchpage