2012-10-21 58 views
1

我下面這個網站上Memcached1.4.5RHEL 5:無法應用補丁

http://forums.famillecollet.com/viewtopic.php?id=252

最初安裝repcache我下載了這個repcached-2.3-1.4.5.patch.gz

我使用RHEL5

然後我運行

gunzip repcached-2.3-1.4.5.patch.gz 

它生成一個名爲repcached-2.3-1.4.5.patch

然後執行

patch -p1 -i repcached-2.3-1.4.5.patch 

它開始生產這種

patching file ChangeLog.repcached 
can't find file to patch at input line 66 
Perhaps you used the wrong -p or --strip option? 
The text leading up to this was: 
-------------------------- 
|diff -urN memcached-1.4.5/Makefile.am memcached-1.4.5-repcached-2.3/Makefile.am 
|--- memcached-1.4.5/Makefile.am  Sat Apr 3 11:07:16 2010 
|+++ memcached-1.4.5-repcached-2.3/Makefile.am Thu Feb 11 19:51:30 2010 
-------------------------- 
File to patch: 

請參見上述

的截屏文件

enter image description here

回答

1

如果我看到這個問題,你正在嘗試使用源代碼補丁修補二進制rpm包。這顯然是行不通的。

您可以嘗試使用源代碼rpm代替二進制rpm。源rpm是用於生成可以安裝的二進制rpm包的「源包」。它通常被稱爲somesoftware-xxx.src.rpm。如果您安裝了這樣的源代碼rpm包,您將獲得在/usr/src/packages/...下解壓的內容,在SOURCE文件夾中您將找到memcached源歸檔文件。您必須解壓縮該存檔,應用修補程序,存檔已修改的源,然後替換SOURCE下的存檔。或者(更優雅),您將修補程序添加到spec file,該修補程序控制構建過程以從已安裝的源rpm包生成二進制rpm包。你會發現spec file根據SPECS,可能被稱爲memcached.spec什麼的。通常已經包含了一些補丁,所以你有一個起點。

如果您在描述上面,你可以使用rpmbuild命令,像這樣建立一個自己的二進制rpm包的方式之一補丁源RPM程序包:rpmbuild -bb SPECS/memcached.spec ...