php4 + oracle

Sezione dedicata alle problematiche sull'uso dei tool di installazione e gestione di pacchetti, in una distribuzione Debian-based.
Rispondi
piviul
Newbie
Newbie
Messaggi: 6
Iscritto il: 05/12/2005, 11:54

php4 + oracle

Messaggio da piviul »

Ho provato a ricompilare php4 con il supporto a oracle e sono a buon punto. Ci sono però alcune cose che non riesco a risolvere. :conf:

Anzitutto qualcuno sa spiegarmi come mai se si scaricano i sorgenti di php4 vengono scaricati quelli della versione 4:4.3.10-15 mentre la versione di php4 corrente è la 4:4.3.10-16? I repository che uso sono quelli ufficiali sia per i sorgenti che per i binari (http://packages.debian.org/debian)

Ho quindi scaricato a manina i diff, orig e dsc di php4, poi ho scompattato il dsc e ricompilato il pacchetto. Li ho quindi installati con dpkg -i. Ora però ho i pacchetti che sono la stessa versione di quelli correnti ed ogni volta che faccio un upgrade mi vuole aggiornare libapache-mod-php4, libapache2-mod-php4, php4-cgi e php4-cli.

Che strada mi consigliate? C'è modo di crearli magari con una subvesrion maggiore di quella nei repository ufficiali oppure... è difficile fare un repository per i miei pacchetti? In fondo dovrebbe soltanto essere necessario creare un Packages.gz... o è molto più complesso? Avete qualche documentazione da fornirmi?

Grazie mille

Piviul
Avatar utente
MaXeR
Hero Member
Hero Member
Messaggi: 3211
Iscritto il: 22/12/2004, 17:01
Località: Garda - VR
Contatta:

Re: php4 + oracle

Messaggio da MaXeR »

potresti metterli in hold (dicesi anche pinnarli) in modo da evitare gli aggiornamenti...

apt, da un po' di tempo, fa in modo da scaricare i pacchetti dai repository ufficiali anche se già presenti ed alla stessa versione, nel pc; ma provenienti da altre fonti

questioni di sicurezza, direi...
http://leevee.it - Leevee Soluzioni Informatiche
piviul
Newbie
Newbie
Messaggi: 6
Iscritto il: 05/12/2005, 11:54

Re: php4 + oracle

Messaggio da piviul »

Grazie mille. Va bene, devo pinnare ma come? Ti dico anzitutto cosa ho fatto finora...

Ho creato la mia binary con i .deb ricompilati; ho creato il packages.gz (con dpkg-scanpackages) e il file Release

Codice: Seleziona tutto

Archive: stable_oci
Component: main
Origin: csa
Label: php4 con supporto Oracle
Architecture: i386
Quindi ho fatto un update, disinstallato tutti i moduli di php4, apache2-mod-php4, li ho purgati e poi ho installato di nuovo i vari moduli di php4 ma niente.. continua ad installare quelli vecchi.

Ho letto quindi la tua risposta e provato a pinnare i pacchetti php4 miei. Ho quindi creato /etc/apt/preferences

Codice: Seleziona tutto

Package: *
Pin: release o=csa
Pin-Priority: 1100


Package: *
Pin: release o=Debian
Pin-Priority: 1000
e anche /etc/apt/apt-conf

Codice: Seleziona tutto

APT::Default-Release "stable_oci";
APT::Cache-Limit 10000000;
Apt::Get::Purge;
APT::Clean-Installed;
APT::Get::Fix-Broken;
APT::Get::Fix-Missing;
APT::Get::Show-Upgraded "true";
...ma non ho rimediato niente lo stesso. Dove sbaglio? :cry:

Grazie mille

Piviul
piviul
Newbie
Newbie
Messaggi: 6
Iscritto il: 05/12/2005, 11:54

Re: php4 + oracle

Messaggio da piviul »

Ci riprovo: non è possibile in fase di compilazione cambiare il numero di revisione? In questo modo basta che nel mio repository esista sempre una revisione maggiore che nei repository di debian.

Grazie ancora

Piviul
Avatar utente
MaXeR
Hero Member
Hero Member
Messaggi: 3211
Iscritto il: 22/12/2004, 17:01
Località: Garda - VR
Contatta:

Re: php4 + oracle

Messaggio da MaXeR »

secondo me hai sbagliato la priprità...
io starei sotto il mille...

comunque puoi effettuare il pinning anche relativamente alla versione del pacchetto (risulta più facile, però, farlo tramite aptitude)...

per bloccarlo ad una determinata versione..

Codice: Seleziona tutto

Package: apt
Pin: version 0.4.0
Pin-Priority: 1001
quindi, teoricamente, basta aggiungere solo il tag release...

aumentare la revisione, imho, non è conveniente, in quanto posticipi il problema, senza affrontarlo :ciauz:
http://leevee.it - Leevee Soluzioni Informatiche
piviul
Newbie
Newbie
Messaggi: 6
Iscritto il: 05/12/2005, 11:54

Re: php4 + oracle

Messaggio da piviul »

Sono riuscito a fare il pinning dei pacchetti necessari inserendo in Packages i nomi dei pacchetti da pinnare e in Pin la release... a questo punto però mi sembra inutile mantenere il repository dei pacchetti e li installerei con dpkg -i ma non saprei come pinnarli senza la release... E' giusto oppure c'è un modo per differenziare i miei pacchetti dai suoi? Forse in fase di compilazione dovrei inserire qualche informazione utile successiva al pinnaggio; si ma come?

Scusa la mia quasi totale incompetenza ma non è molto che ho abbracciato linux... ma credo di aver preso la strada giusta con debian.

Grazie mille ancora

Piviul
Avatar utente
MaXeR
Hero Member
Hero Member
Messaggi: 3211
Iscritto il: 22/12/2004, 17:01
Località: Garda - VR
Contatta:

Re: php4 + oracle

Messaggio da MaXeR »

secondo i miei 'calcoli' la release ti impedisce di farli scaricare dal sito ufficiale a parità di versione (occhio che sto andando ad intuizione, non ho mai provato)...

quindi ti conviene, imho, mantere il repository locale (tanto non dovrebbe essere molto grande)...
ovviamente sei obbligato a gestire da solo il fattore sicurezza, in quanto i pacchetti relativi a php non verranno aggiornati automaticamente...

Riguardo l'"incompetenza"... siamo tutti qua per imparare... l'importante è affacciarsi a GNU/Linux con il giusto spirito :-)
http://leevee.it - Leevee Soluzioni Informatiche
piviul
Newbie
Newbie
Messaggi: 6
Iscritto il: 05/12/2005, 11:54

Re: php4 + oracle

Messaggio da piviul »

Grazie mille Max anche per la pazienza... dunque fammi ricapitolare per vedere se ho capito bene.

Se faccio un repository per i miei pacchetti e metto i riferimenti del repository in sources.list a questo punto ho due distribuzioni, ma quella originale ha la priorità. Il pinning non dovrebbe essermi utile in questo caso poiché, sempre che abbia capito bene, serve per impedire che alcuni pacchetti vengano sostituiti durante gli aggiornamenti.
Io invece vorrei che i miei pacchetti non ancora installati siano visti dal sistema come più aggiornati o più affidabili e che quindi vengano aggiornati. Questo mi sarebbe utile poiché ad ogni successivo aggiornamento devo soltanto aggiornare il repository.

Se invece volessi agire con il pinning devo soltanto creare i miei pacchetti, installarli con dpkg -i e pinnarli. Mi sembra inutile creare il repository. Ma come pinnarli dal momento che non riesco a trovare un modo per differenziare i pacchetti miei da quelli originali? Probabilmente una volta installati con dpkg -i li potrei pinnare con la versione e lui sa che non deve modificare i pacchetti correntemente installati con quella versione... forse!

...ma forse non ho capito niente sul pinning

Grazie mille ancora

Piviul
Avatar utente
MaXeR
Hero Member
Hero Member
Messaggi: 3211
Iscritto il: 22/12/2004, 17:01
Località: Garda - VR
Contatta:

Re: php4 + oracle

Messaggio da MaXeR »

il pinning ti permette di fare quello che vuoi:
dal

Codice: Seleziona tutto

$ man apt_preferences
si ottiene una piccola spiegazione riguardo la priorità:
How APT Interprets Priorities
Priorities (P) assigned in the APT preferences file must be positive or negative
integers. They are interpreted as follows (roughly speaking):

P > 1000
causes a version to be installed even if this constitutes a downgrade of
the package

990 1000, così da rendere possibile il downgrade (in pratica i pacchetti verranno mantenuti alla versione presente nel tuo repository) ed in caso di aggiornamenti del tuo repository, questi verranno installati :s6:
http://leevee.it - Leevee Soluzioni Informatiche
piviul
Newbie
Newbie
Messaggi: 6
Iscritto il: 05/12/2005, 11:54

Re: php4 + oracle

Messaggio da piviul »

teoricamente, quindi, dovresti mettere al tuo repository una priorità > 1000, così da rendere possibile il downgrade (in pratica i pacchetti verranno mantenuti alla versione presente nel tuo repository) ed in caso di aggiornamenti del tuo repository, questi verranno installati
Bene, ci sono quasi. In linea teorica effettivamente dovrebbe funzionare e mi piace anche molto poiché se trovassi qualche altro pacchetto da personalizzare basterebbe inserirlo nel mio repository, ricreare il file Package.gz e magicamente... con il pinning inoltre se anche la versione originale si aggiornasse rimarrebbe installata la mia... certo, è vero, poi devo aggiornarla, ma lo farò, non è un problema!

Però... si, ho ancora un però e ti prego non mandarmi a quel paese... Mettiamo che io abbia un pacchetto già installato nella versione originale e che voglia sostituirlo con la mia versione personalizzata. Scarico i sorgenti, lo ricompilo, creo il mio deb lo metto nel repository, ricreo la packages.gz e... il pacchetto avendo la stessa versione dell'originale non viene 'upgradato'. C'è quindi un modo di dire a debian: ricontrolla tutti i pacchetti e reinstallali nel caso siano cambiati anche se hanno la stessa versione?

Grazie mille ancora

Piviul
Avatar utente
MaXeR
Hero Member
Hero Member
Messaggi: 3211
Iscritto il: 22/12/2004, 17:01
Località: Garda - VR
Contatta:

Re: php4 + oracle

Messaggio da MaXeR »

ma con quel pinning il tuo repository ha precedenza su quello uficiale, così tanta precedenza da permettere perfino i downgrade... quindi anche nel caso di installazione di pacchetti con le stesse versioni, il tuo repository avrà la precedenza..

comunque fai delle prove :-D
http://leevee.it - Leevee Soluzioni Informatiche
Rispondi