Naiva cerība, ka neviens nepamanīja lapas prombūtni.

Tā kā labu brīdi nebiju savam serverim atjaunojis kerneli, tad saņēmos un ķēros pie lietas.Kā nu tas iesācējiem gadās, neveiksmīgas sistēmas atjaunināšanas rezultātā vispirms mazliet nobruka MySQL, pēc tam arī PHP5, līdz ar PHP5 prombūtni Apache atteicās startēties.

Sāku ar Gentoo lietotājiem pazīstamo Portage sinhronizāciju:

emerge sync

Kad šis process ir beidzies, varam mierīgu sirdi atjaunināt kerneli un visas saistītās programmas uz jaunāko pieejamo versiju.

emerge -Du gentoo-dev-sources

26 paciņas jāatjauno. Neko ļaunu nedomādams, atstāju uz nakti, lai viss notiek. Ap deviņiem vakarā man laipni paziņoja, ka esot atliecies MySQL un atsevišķas lapas izskatās nesmuki. Neko darīt, pacīnījos, pacīnījos un piedabūju MySQL atpakaļ pie dzīvības. Viss notiek. Pagāja kādas pāris stundas un rezultāts tas pats - MySQL ir miris, lai dzīvo MySQL. Tā kā vismaz pagaidām neviena komerciāla lapa uz servera neglabājas, tad atstāju salabošanu uz nākamo dienu.

No rīta atnākot uz darbu, secināju, ka kaut kas atjaunināšanas procesa pusceļā ir apstājies. Pārbaudīsim, cik nu esam tālu tikuši - atkārtojam iepriekšējo komandu un skatāmies, ka palikušas 3 paciņas, kas jāatjauno. Kārtējo reizi pierādīdams savu nezināšanu, ņēmu un kompilēju atlikušās 3 paciņas. Lieki būtu teikt, ka viena no tām kompilējās apmēram 6 stundas.

Nu tā, sistēma atjaunināta, varētu tā kā ķerties pie Apache palaišanas. Viss būtu jauki, ja vien nebūtu nepatīkamu pārsteigumu:

Apache2 has detected a syntax error in your configuration files:
Syntax error on line 6 of
/usr/lib/apache2/conf/modules.d/70_mod_php5.conf:
Cannot load /usr/lib/apache2/modules/libphp5.so into server:
libhistory.so.4: cannot open shared object file: No such file or directory

Nu, neko, parakos pa forums.gentoo.org un atradu, ka cilvēks ir šādu problēmu atrisinājis vienkārši pārkompilējot PHP. Ilgi nedomādams, salieku vajadzīgos USE karodziņus un laižu vaļā kompilēšanās procesu. Viss notiek līdz kaut kādā momentā dabūju kārtējo kļūdas paziņojumu par kaut kādu libstdc++.la. Forumi, es nāku! Kārtīga parakāšanās pa forumiem un secinājums tāds, ka pēc GCC atjaunināšanas ir bijis jāpalaiž kaut kāds maģisks skripts, kas nomaina GCC bibliotēku atrašanās vietas. Lieliski. Ņemam forumā doto piemēru:

/sbin/fix_libtool_files.sh 3.3.4

Un ceram, ka būs labāk. Nav. Pie PHP5 kompilēšanas tajā pašā vietā tāds pats kļūdas paziņojums. Rokamies tālāk pa forumiem, nelaime tāda, ka visiem ar šo pietiek. Dziļā izmisumā sāku kārtīgāk pētīt, kas tad īsti notiek ar to PHP5, kāpēc tas nekompilējas. Pastaigājoties pa kļūdas paziņojumā pieminētajām direktorijām secinu, ka man tādu direktoriju nemaz nav. Nākas secināt, ka mana GCC versija ir nevis vienkārši 3.3.4, bet 3.3.4-20050110.

gcc -v

Laižam vēlreiz iepriekš pieminēto skriptu, tikai nu jau versijas numuru aizvietojot ar tikko atrasto.

/sbin/fix_libtool_files.sh 3.3.4-20050110

Nu ko, mēģinām vēlreiz nokompilēt to pašu PHP5. Varbūt šoreiz izdosies.

Neizdevās.

Neveiksmīgs mēģinājums automātiski atjaunināt konfigurācijas failus, muļķīga servera pārstartēšana un varam doties gulēt, jo esam pārrakstījuši konfigurācijas failu, kurā atradās tīkla konfigurācijas informācija, bet serveris atrodas serveru telpā pie IPS otrā Rīgas galā. Neliela cīņa par iekļūšanu serveru telpā, tīkls beidzot darbojas. Tam seko kārtējā GCC pārkompilēšana un mēģinājums iedarbināt PHP. Vienu brīdi tiek palaists arī Apache bez PHP atbalsta, acīgākie varēja paspēt nospert dažu lapu izejas tekstus.

Šovakar metu jokus pie malas un pieveicu PHP kompilēšanas procesu ar ČŽ risinājumu. Tā kā PHP kompilējoties nemācēja atrast vajadzīgo gcc direktoriju (meklēja 3.4.3, lai gan gcc atrodas direktorijā 3.4.3-20050120), tad izveidoju simbolisko saiti (symlink) uz attiecīgo direktoriju. Pāris brīdinājumi kompilēšanas procesā un esam beidzot laimīgi tikuši pie strādājoša PHP.

Tā teikt, welcome back!

P.S. ja nu kādam ir saprašana par to, ko es izdarīju nepareizi GCC atjaunināšanas laikā, vai kā varētu iztikt bez maģiskās simboliskās saites /usr/lib/gcc/i586-pc-linux-gnu/ direktorijā, laipni lūgti izteikties komentāros.