Kasper Dupont wrote:
> Per Thomsen wrote:
>
>>Det går sådan set fint nok, derfor kopierer jeg den nye .so over hvor
>>den gamle lå, og genstarter apache
>
>
> Det synes jeg så ikke lyder som nogen god idé. Jeg ville
> enten installere det hele med make install eller også
> byge en rpm fil udfra .src.rpm filen.
>
> For at modificere og bygge udfra .src.rpm filen skal du
> gøre følgende:
> 1. Opret en ~/.rpmmacros fil med et indhold i stil med:
> %_topdir /home/foo/redhat
> 2. Opret de nødvendige directories, f.eks. med:
> cp -r /usr/src/redhat ~
> 3. Installer .src.rpm filen. Hvis du fik de første to
> skridt udført rigtigt burde installationen forløbe
> fint uden at kræve root permissions.
> 4. Smid den patch du vil teste ind i SOURCES directoriet.
> 5. Ret i .spec filen i SPECS directoriet, du skal tilføje
> navnet på patchen to steder (der er sikkert masser af
> eksempler at se på). Jeg plejer at smide patches ind
> efter alle de eksisterende. Jeg vil anbefale, at du
> tilføjer noget til release nummeret, f.eks. initialer
> plus et nummer, som du ændrer hvis du har brug for
> flere forsøg.
> 6. Prøv først at bygge en ny .src.rpm fil med:
> rpmbuild -bs whatever.spec
> 7. Prøv derefter at bygge en .rpm fil med:
> rpmbuild -bb whatever.spec
> 8. Hvis det lykkedes at bygge .rpm filen, så prøv at
> installere den på samme måde som du ville gøre med
> enhver anden opdatering (kræver naturligvis root).
>
Kanon... så fik jeg det til at virke. Tak for at du pegede mig i
retningen af RPM :)
Nu var det jo ikke fordi jeg havde en patch, men skulle først lave en.
Det jeg endte med at gøre var:
Jeg startede med pkt 1 og 2 i ovenstående.
Jeg hentede og installerede så
<
http://fedora.server4you.net/fedora/core/updates/4/SRPMS/php-5.0.4-10.3.src.rpm>
Da jeg havde installeret den, så jeg, at der var en
~/redhat/SOURCES/php-5.0.4.tar.gz
Så gjorde jeg følgende:
cd ~/src
tar zxvf ~/redhat/SOURCES/php-5.0.4.tar.gz
cd php-5.0.4/ext/mysqli
cp mysqli_nonapi.c mysqli_nonapi.c.fix
Så rettede jeg det der skulle rettes i mysqli_nonapi.c og:
cd ~/src
gendiff php-5.0.4 .fix >php-5.0.4-mysqli-fc4-x86_64.patch
cp php-5.0.4-mysqli-fc4-x86_64.patch ~/redhat/SOURCES/.
og så var det jeg måtte ind i spec filen (~/redhat/SPECS/php.spec)
Jeg fandt en sektion der startede med kommentaren:
# Fixes for extension modules
og heri var der linjer af denne type:
Patch27: php-5.0.4-gd.patch
Jeg tilføjede så
Patch28: php-5.0.4-mysqli-fc4-x86_64.patch
(den næste sektion startede med Patch30, så 28 var ledig).
Længere nede fandt jeg så linjer af denne art:
%patch27 -p1 -b .gd
og jeg tilføjede:
%patch28 -p1 -b .mysqli-fc4-x86_64
(Jeg gik ud fra det var du mente med at der var to steder jeg skulle
rette, for jeg kunne ikke finde andre - og det virker jo).
Så var det jeg gav mig til at rode med Release-numret.
Til at starte med satte jeg Release version for hele rpm'en til
10.3pert1, men det gav mig senere nogle problemer, når jeg forsøgte at
installere php-mysql-5.0.4-10.3pert1.x86_64.rpm (det var jo kun den jeg
ville opdatere).
Den klagede over at den manglede alle mulige *-10.3pert1.x86_64
dependencies (alle sammen fra rpm'en). Jeg kunne måske have installeret
hele pakken, men det var jo ikke det jeg ville :).
Så lod jeg selve pakkens Release-nummer være 10.3
Jeg fandt i stedet for sektionen med:
%package mysql
I denne sektion tilføjede jeg efter "Group: Development/Languages"
Version: 5.0.4
Release: 10.3pert1
og ændrede:
Requires: php = %{version}-%{release}
til:
Requires: php = %{version}-10.3
Måske kunne jeg godt have undværet "Version: 5.0.4", men det virkede, så
jeg lod den være.
Så:
cd ~/redhat/SPECS
rpmbuild -bs php.spec
rpmbuild -bb php.spec
su -
cd /home/pert/redhat/RPMS
rpm -U --test php-mysql-5.0.4-10.3pert1.x86_64.rpm
Den brokkede sig ikke over noget (det var den der brokkede sig over
versionnumret tidligere), derfor:
rpm -U php-mysql-5.0.4-10.3pert1.x86_64.rpm
tail -f /etc/httpd/logs/error_log
og i en ny terminal:
apachectl graceful
og sørme... ingen klager i error_log.
Så rettede jeg mit tidligere patch af phpMyAdmin tilbage, og startede
det op... og heller ingen klager der.
Tusind tak for hjælpen.
Og skulle nogen være interesseret:
http://www.pert.dk/RPMS/php-mysql-5.0.4-10.3pert1.x86_64.rpm
MVH Per Thomsen,
http://www.pert.dk/