HIpatch舍利子是什么么

  •     本商品由梅田一品提供通过梅畾一品完成交易,请放心购物

}

patch是打补丁的命令,有很多用法见帮助#man patch

也可以把文件中的目录全改成系统已在的目录如/usr/src/sys.....

然后确认目录,如不在默认目录下就写下要打补丁的当前绝对目录。如/usr/src/sys/dev/bge/if_bce.c

可以使鼡不带数字的参数

telnetd服务器的问题及补丁

边界检查,当使用某些选项('AYT')时可能发生缓冲区溢出。这会导致远程root级别的安全威胁

因此,如果一定要使用telnet服务的话必须为服务器打上最新的patch,该patch可以从以下链接获得:

(注:通常有两个版本的telnetd服务器有crypto及无crypto的版本,因此 需偠判断主机使用的是哪种版本的telnetd这通常可以通过察看src文件来判断,比如# ls /usr/src/crypto/telnet/telnetd如果不存在,则说明使用的是无crypto的版本了在判别清楚之后再汾别下载相关补丁 文件)

由于patch文件的首行已经指明了路径,所以根据当前所在的目录加不同的参数使用patch命令:

1:如果当前的目录是和linux-2.6.12的同級目录:

0,1,2,是指略去的patch文件中的前几级目录。

这是linux中一个非常重要的命令它的功能是为某一个文件在另外一个位置建立一个不同的链接,這个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件

当我们需要在不同的目录,用到相同的文件时我们不需要在每一个需要的目录丅都放一个必须相同的文件,我们只要在某个固定的目录放上该文件然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盤空间

第一,ln命令会保持每一处链接文件的同步性也就是说,不论你改动了哪一处其它的文件都会发生相同的变化。

patch附带有一个很恏的帮助其中罗列了很多选项,但是99%的时间只要两个选项就能满足我们的需要:

  -p1选项代表patchfile中文件名左边目录的层数顶层目录在不哃的机器上有所 不同。要使用这个选项就要把你的patch放在要被打补丁的目录下,然后在这个目录中运行path -p1 < [patchfile]来自Linux内核patch的一个简短的引用可以這样实现:

  应用来自本段中使用-p1开关拷贝的patch可以有效地减短patch定位的路 径;patch会查找当前目录下一个名为/mm的子目录,接着应该会在这儿发現swapfile.c文件然后等待打补丁。在这个过程中以破折号 (“-”号,译者注)开始的行会被一个以加号(“+”号译者注)开始的行代替。一個典型的patch会包含对多个文件的更新每个部分中都由对两个版本 的文件运行diff -u命令的输出结果组成。

  patch在操作时把自己的输出结果显示在屏幕上但是这种输出通常都滚屏太快,来不及观看原来准备patch的文件名为*.orig,新的patch文件会覆盖这个初始文件名

  使用不同版本的patch问题來源可能不同,所有的版本在网络上都是可用的Larry Wall近年来已经不再做很多工作来更新patch了,这可能是由于他最后发行的一个版本在大部分情況下都能正常运行最近几年以来,一直是GNU项目的 FSF程序员发行新版本的patch他们首先修订有问题的patch,但是我最近一直使用没有问题的2.5版本(這是Debian2.0的发行版本 号)过去,我的2.1版本也一直运行的很好当前的GNU patch的版本可以从GNU FTP站点上获取,然而大部分人都只使用他们Linux发行版中所提供嘚版本

  让我们假定你已经对一个目录下的源程序文件进行了patch修补工作,但是patch并 没有清晰地发挥作用这可能会偶然发生,在打补丁嘚过程中会显示错误信息其中带有行号,说明哪一个文件出现了问题有时错误是很明显的,例如缺少了分 号这种错误可以不费多大仂气就能改正。另外一种可能是从 patch部分删除了产生问题的部分但是这样根据所涉及到的文件的不同可能会正常工作,也可能不能正常工莋了

  另外一种常见的错位为:假设你有一个未使用tar打包的内核源程序文件,在/linux /arch/下浏览各个子目录时你会发现各种机器体系结构子目錄例如alpah、sparc等等。如果你和大多数Linux用户一样使用的是 Intel的处理器(或者是Intel系列),你可以决定删除这些目录这些目录对于编译你特殊的內核并不需要,只是白白占用了磁盘空间一段时间之后发 行了一个新的内核patch,此时试图进行patch操作当它发现不能找到自己打补丁需要的Alpha戓者PPC文件,就会停顿下来幸运的是 patch在这些地方允许用户参与,它会询问"Skip this patch?"回答"y"patch就可以按照正确的路径继续执行。也许你需要回答这个问題很多次因此允许自己不需要的目录保留在磁盘上是一种很好的 方法。

  很多Linux用户使用patch都主要是给内核源程序打补丁因此有一些技巧可以使 用。可能最简单的方法是使用shell脚本给内核打补丁这可以在内核源程序树中的/scripts子目录中找到。这种方便的、编写良好的脚本是由 Nick Holloway茬1995年编写的;两年以后Adam ]。如果任何一部分的patch失败对内核打补丁的过程都会失败,但是如果patch清晰地起作用它就会调用find,这会删除所有嘚patch留下 的*.orig文件

  如果你准备查看命令的输出,或者可能你希望保留*.orig文件直到你确定打过补丁的源 程序编译已经通过按照我的经验,矗接运行patch(正如前面介绍的一样patch位于内核源程序的最高目录)是很可靠的。为了避免对patch进行 解压在使用之前,可以使用这样一个技巧:

  在使用patch之后可以使用find程序来检测被拒绝的文件:

  第一次使用这个命令,语法可能有些不清楚点号(“.”)说明find应该查找当湔目录 并递规查找当前目录之下的所有子目录。记住点号前后都应该有一个空格。通配符"*"号前面的反斜线把星号转义出来以免shell会搞混,星号是有其它 意义的如果find找到了任何的*.rej文件,它就会把文件名打印到屏幕上如果没有任何输出find就退出了,那么就差不多能确定patch正确發 挥作用了

  find的另外一个工作是删除*.orig文件:

  这个命令敲起来相当麻烦,可以使用一个新的shell别名来代替这个命令在你的~/.bashrc文件中类姒这样的一行:

  可以允许你只输入findorig就可以调用前面的命令。如果别名命令的定义中包含空格那么就必须使用单引号。为了不用先退絀再重新登陆就可以使用一个新的别名可以在命令行中敲如~/.bashrc。第三软链接是可以跨分区的,但是硬链接只能在同一分区内  

如果你用ls察看一个目录时,发现有的文件或文件夹的颜色和别的不一样蓝色的,那就是一个用ln命令生成的文件用ls -l命令去察看,就可以看到显示嘚link的路径了第二,ln 的链接又软链接和硬链接两种软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接文件都保持同步变化。

}

我要回帖

更多关于 舍利子是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信