solaris patches add

2024-01-15 18:18
文章标签 add patches solaris

本文主要是介绍solaris patches add,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://blog.chinaunix.net/article.php?articleId=23340&blogId=524

教你如何给Solaris打补丁

一、solaris补丁介绍

1.1补丁的种类及文件名
    solaris
的补丁分为两类,一类是Point补丁,另一类是Cluster补丁。
    a)Point
补丁程序:
   
这类补丁仅仅是针对某一问题或缺陷而发布的单个补丁程序,solaris7solaris8solairs9Patch一般为*.zip文件solaris2.6一般为.tar.Z.tar.gz文件,它有如下编号方式:
patch base code-revision num (
110668-04)
前面部分是这个补丁的主版本号(base code),后面部分是此补丁的修订号。两者合起来构成此补丁的Patch-ID。如上例编号为110668-04的补丁,110668为主版本号,04是修订号。此补丁是在110668-03的基础上做了新的修复。有一点需要指出,补丁版本号为110668的一系列补丁都是针对 /usr/sbin/in.telnetd 这一文件的不同问题的修复,110668-04发布以后,sun将不再提供110668-04以前的补丁,如110668-03等。
    b) Cluster
补丁程序:
cluster
补丁仅仅是一系列point补丁的重新包装,并带有自动安装程序。Cluster补丁的命名方式如下:
version_Recommended
如:9_x86_Recommended.zip是针对Solaris 9 for X86的补丁集。
    8_Recommended.zip
是针对Solaris 8 for Sparc 的补丁集。
每个Cluster补丁都对应一个CLUSTER_README文件,详细描述了该Cluster包含的补丁,以及安装的方法或注意事项。

1.2 关于补丁的其他信息

sun公司对每一版本的solaris都维护了一份Patch Reports,该Patch Reports包含了对应版本solaris所有补丁的描述。Patch Reports每月更新两次,可以从如下地址得到:
http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access&nav=patchpage
   
另外sun还维护了一份Sun Alert Patch Report,该文档按产品分类,并且随时更新。从这里可以找到所有sun产品的更新文档及相应补丁,当然也包括的solarisSun Alert 文档、Patch ID、简要说明等。Sun Alert Patch Report从这里可以得到:
http://sunsolve.sun.com/pub-cgi/show.pl?target=sunalert_patches
   
相应的solaris部分可从如下链接得到:
http://sunsolve.sun.com/pub-cgi/show.pl?target=sunalert_patches#Solaris
表格按时间排序,从Category表格中可以知道此问题属于安全缺陷修复还是应用优化。

二、补丁的下载

Cluster补丁可以从如下网址下载:

http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access&nav=patchpage

同样可以使用FTP协议下载,在sunsolve.sun.com/pacthroot/clusters可以找到所有的Cluster补丁。下载后为一个*_Recommended.zip文件。该压缩文件包含一份CLUSTER_README文件,建议安装前阅读此文件。
    Point
补丁由于其分散性不易下载与管理,可以使用Sun Alert Patch ReportPatch Reports来查看补丁情况,这两份文档相应的Patch ID及对应下载地址。另外sun网站提供的Patch Finder 功能也可以使我们在知道Patch ID的情况下很方便的找到该补丁,连接如下:
http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access&nav=patchpage
   
同样,利用ftp协议从sunsolve.sun.com/patchroot/all_unsigned目录下也可以下载指定Patch
    Sun
公司建议所有下载的补丁都放到/var/tmp目录下(这也是通常的做法),如此将不会导致补丁安装时出现的任何permission/ownership的问题。

三、solaris补丁的安装和删除

3.1 /var/sadm/patch目录
/var/sadm/patch目录下,记录了已安装的补丁。
: # ls /var/sadm/patch
107558-05 107594-04 107630-01 107663-01 107683-01
107696-01 107817-01 107582-01 107612-06 107640-03
建议不要对此目录做任何修改,此目录被破坏后将不能安装或删除任何补丁。

 

3.2 管理solaris补丁

Solaris提供了两个命令来管理补丁,patchaddpatchrm。这两个命令是在Solaris 2.6版本开始提供的,在2.6以前的版本中,每个补丁包中都提供了一个installpatch 程序和一个backoutpatch 程序来完成补丁的安装和卸载。
    patchadd
用来安装解压缩后的补丁程序。patchadd通过调用pkgadd 命令来安装补丁。安装补丁前,我们需要将补丁解压到/var/tmp下安装。安装补丁如下命令:
    # cd /var/tmp
    # patchadd 110668-04
      Checking installed patches...
      Verifying sufficient filesystem capacity (dry run method)
      Installing patch packages...
   
如果当前目录下有110668-04目录,patchadd将安装此补丁。补丁安装后,系统会备份原文件,以便在以后删除此补丁。如果使用patchadd -d 选项安装补丁,系统将不备份源文件,这意味着你将不能在以后删除此补丁。使用patchadd -p 选项可以检验已安装的patch,例如:
    # patchadd -p
      Patch: 106793-01 Obsoletes: Requires: Incompatibles:
      Packages: SUNWhea
      . . .
   
同样,solaris提供了另一命令来查看已安装的patch
    # showrev -p
      Patch: 106793-01 Obsoletes: Requires: Incompatibles:
      Packages: SUNWhea
      . . .
    patchrm
如果因为某种情况你想卸载某一补丁,你可以使用patchrm命令来完成。此命令通过调用 pkgadd来恢复安装补丁前的文件备份来卸载补丁。使用Patch-ID作为patchrm的参数就可以卸载补丁:
    # patchrm 106793-01
      Checking installed packages and patches...
      Backing out patch 106793-01...
      Patch 106793-01 has been backed out.
   
这里需要说明一下,在如下三种情况下,补丁将不能卸载:
    1).
在安装patch,patchadd -d命令指定patchadd不备份被更新的文件。这样安装的patch无法删除。
    2).
另一patch需要此patch,即存在dependence(关联性), 如一定要删掉该patch,先删掉另一patch
    3).
要删的patch已被另一更新的patch废弃了。如安装110668-04补丁后,如果以前安装过110668-03,则110668-03将被110668-04废弃,110668-03将无法删除。

3.3 Cluster补丁的安装

Cluster补丁为单个补丁的集合,下载解压后,可以通过执行./install_Cluster脚本来完成补丁集的安装。执行./install_Cluster后,脚本将检查当前目录下的patch_order文件,此文件标明了Patch的安装顺序,./install_Cluster将按照patch_order文件给出的顺序来安装patch。如果没有patch_order文件,则假定当前目录下所有以1开始的目录名均为需要安装的补丁目录,并且假定这些目录的名称次序作为安装Patch的次序。因此你可以通过修改patch_order文件来决定安装或不安装某Patch

3.4 安装Patch时的注意事项

由于在安装Patch时需要更新文件,故此Solaris官方推荐在安装补丁时进入单用户模式安装。在某些重要服务器上可能带来不便,因此你完全可以在多用户模式下通过停止相关服务进程来完成Patch的安装。
    Sun
推出的Patch并不是每个都一定要安装的,因此需要在安装patch前仔细阅读README来确定是否需要安装此补丁。另外,某些补丁具有依赖性,需要先安装另一补丁才能完成此补丁的安装,这些都会在README中标明。总之,安装补丁之前强烈建议你阅读相应的README(每个Patch都提供单独的README文件)。

3.5 安装PATCH过程中出现的问题

在安装补丁的过程中,经常出现一些错误提示。例如:

Installation of 123456-11 failed. Return code 2 通过Return code我们可以知道错误类型。需要注意的是,Return code 2说明此补丁已被安装,Return code 8说明此补丁要修复的软件没有被系统安装。因此,28是完全可以被忽略的错误提示。下表说明了各个Return code对应的错误类型。
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#

这篇关于solaris patches add的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/609779

相关文章

你的应用与Solaris 11兼容吗?

用户现在可以下载开发者预览版的Solaris 11,它内置在名为Solaris 11 Express的软件产品中,甲骨文已在去年11月发布了该产品。如今,甲骨文发布了一款新的甲骨文Solaris 11兼容性检查工具(Oracle Solaris 11 Compatibility Checker Tool),加强了Solaris 11方面的开发工作。对于甲骨文和Solaris的用户来说,这是重

Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.B

一个bug日志 FATAL EXCEPTION: main03-25 14:24:07.724: E/AndroidRuntime(4135): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.syyx.jingubang.ky/com.anguotech.android.activity.Init

ubuntu16.04 Git add 使用tab键卡死

以前使用Ubuntu14.04 进行git add 操作时使用TAB键可以很快自动补全,但自从使用16.04使用TAB半天没有反应。 一开始以为是Git版本问题,后验证与Git无关。 搜索发现与Dash有关,以下是博客原文: http://www.51testing.com/html/50/n-1245050.html 今天碰到一个问题git 后面的参数用Tab键无法补全

Add All -uva优先队列的应用

题目的解法属于贪心,因为cost=a1+a2,所以要保证每次的cost最小,所以说,每次将队列中最小的两个相加,得出来的数放入队列中,再取2个最小的相加,直到全部加完,所以这就涉及了一个取2个最小数的问题,我说一下我一开始的做法 #include<stdio.h>#include<iostream>#include<stdlib.h>using namespace std;#define

Android studio jar包多层嵌套,Add library '__local_aars__:...@jar' to classpath问题

在添加jar包,早app下的build.gradle中的 implementation files('libs/jar包的名字.jar') 修改为 api files('libs/jar包的名字.jar') implementation 单层引用,只引用当前jar包层, api 多层引用,应用当前jar包层,已经jar包引用的jar包层

unable to access android sdk add-on list解决办法

mac环境,由于不小心删掉了sdk文件夹的内容,拷贝别人的文件内容过来后,发现sdkmanager不见了。 慌乱中重装了Android Studio。 打开app后发现如下提示:unable to access android sdk add-on list 解决办法: 在 Android Studio 安装目录 bin/idea.properties 文件最后追加一句 disabl

GIT:git add命令指定文件夹

git add命令可以指定文件夹来添加文件到git仓库中。 1、使用相对路径         当你在命令行中使用git add命令时,可以通过相对路径指定文件夹。例如,如果你的文件夹名为myfolder,可以使用以下命令将整个文件夹添加到git仓库中: git add myfolder/ 注意,路径名后面的斜杠是必需的,它表示将文件夹中的所有文件都添加。如果不加斜杠,命令会视为添加具

LeetCode 67 Add Binary

题意: 两个二进制数相加,输出结果 思路: 各种模拟均可,比如先把A和B倒过来,再按位相加,最后把结果再倒回来。 不过为了快,我是这样做的——假设A比B长,那么我对位相加B的长度。这时如果没有进位,那么A长出B的部分就不会变了;如果有进位,那么继续往A的高位加,直到某一次进位为0,那么更高位的A就不变了;如果直到最后还有进位,那就最前面添加一个最高位1。 代码: cla

【C++】win7 64下VC++6.0(Unable to register this add-in because its DLLRegisterServer return an error)

 FileTool.exe用于替换 Visual C++ 使用开发人员 Studio 对象模型中的打开和添加到项目菜单项。也是一个修复 VC6.0打开文件时出错退出的插件。 1. 下载FileTool.exe,并解压 2. 打开VC6.0,点击File-Open Workspace,选择刚解压出来的FileTool.dsw,并确定 3. 点击Bulid-Build FileTool.

Add, Search, Delete Node in BST.

Add Node, Search Node, Delete Node, 的基本操作,被问了两次了。写出来。 http://quiz.geeksforgeeks.org/binary-search-tree-set-1-search-and-insertion/   // add the node;public TreeNode addNode(TreeNode root, int val)