ฉันต้องแก้ไขเซิร์ฟเวอร์ CentOS 4.9 เก่าดังนั้นฉันจึงดึง RPM ของแหล่งที่มาล่าสุดจาก Red Hat FTP และเพิ่มแพตช์อัปสตรีมจาก GNU FTP ขั้นตอนด้านล่าง:
ก่อนอื่นให้ทำตามขั้นตอน "ตั้งค่า" จากhttp://bradthemad.org/tech/notes/patching_rpms.php :
echo "%_topdir /home/$(whoami)/src/rpm" > ~/.rpmmacros
mkdir -p ~/src/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS
mkdir -p ~/src/rpm/RPMS/{i386,i486,i586,i686,noarch,athlon}
จากนั้นเรียกใช้คำสั่งต่อไปนี้จาก% _topdir ของคุณ:
cd ~/src/rpm
wget http://ftp.redhat.com/redhat/linux/updates/enterprise/4ES/en/os/SRPMS/bash-3.0-27.el4.src.rpm
rpm -ivh bash-3.0-27.el4.src.rpm
cd SOURCES
wget http://ftp.gnu.org/gnu/bash/bash-3.0-patches/bash30-017
cd ..
Patch SPECS / bash.spec ด้วย diff นี้:
4c4
< Release: 27%{?dist}
---
> Release: 27.2%{?dist}
28a29
> Patch17: bash30-017
110c111,112
< #%patch16 -p0 -b .016
---
> %patch16 -p0 -b .016
> %patch17 -p0 -b .017
จากนั้นจบด้วยคำสั่งเหล่านี้:
rpmbuild -ba SPECS/bash.spec
sudo rpm -Uvh RPMS/i386/bash-3.0-27.2.i386.rpm
แก้ไข:ความคิดเห็นล่าสุดใน Red Hat Bugzilla บอกว่าแพทช์ไม่สมบูรณ์ ID ใหม่คือ CVE-2014-7169
แก้ไข:มีแพตช์เพิ่มเติมสองรายการจาก gnu.org ดังนั้นดาวน์โหลดเหล่านั้นลงในไดเรกทอรี SOURCES เดียวกัน:
wget http://ftp.gnu.org/gnu/bash/bash-3.0-patches/bash30-018
wget http://ftp.gnu.org/gnu/bash/bash-3.0-patches/bash30-019
จากนั้นแก้ไข SPECS / bash.spec ดังต่อไปนี้ (การกำหนดหมายเลข "Release" เป็นทางเลือก):
4c4
< Release: 27%{?dist}
---
> Release: 27.2.019%{?dist}
28a29,31
> Patch17: bash30-017
> Patch18: bash30-018
> Patch19: bash30-019
110c113,116
< #%patch16 -p0 -b .016
---
> %patch16 -p0 -b .016
> %patch17 -p0 -b .017
> %patch18 -p0 -b .018
> %patch19 -p0 -b .019