Creare repository PHP 7

Sezione dedicata alle problematiche sull'uso dei tool di installazione e gestione di pacchetti, in una distribuzione Debian-based.

Creare repository PHP 7

Messaggioda mrgreen » 08/01/2016, 11:30

Ciao,
uso Debian Jessie. Ho complilato PHP 7.0.1 e creato un pacchetto con checkinstall.
Ho installato il pacchetto mediante dpkg su un altro server, diverso da quello di compilazione. Tutto OK.
Ora è uscito PHP 7.0.2. Vorrei installare questa versione al posto della 7.0.1.
A questo punto ho pensato che sarebbe carino se riuscissi a fare quello che si fa quando si aggiorna un pacchetto nel repository nativo tipo apt-get install php-7.0.2 o apt-get upgrade.

Come faccio a creare un pacchetto utilizzabile come aggiornamento?
Avevo intenzione di creare un Private Package Archive (PPA) semplice, solo per distribuire (a me) questo pacchetto. Suggerimenti?

Grazie

M.
Avatar utente
mrgreen
Newbie
Newbie
 
Messaggi: 40
Iscritto il: 17/05/2009, 11:40

Re: Creare repository PHP 7

Messaggioda Ombra » 08/01/2016, 14:03

Ciao,
sul nostro wiki abbiamo una guida che spiega come creare repository ;)
tu non avrai i sorgenti in formato "Debian" quindi dovrai mettere solo il pacchetto binario.
uso Debian Jessie. Ho complilato PHP 7.0.1 e creato un pacchetto con checkinstall.

A tal proposito ti ricordo che checkinstall è usato in sostituzione di make install ma non è un modo appropriato per creare pacchetti .deb, tra le altre cose non vengono individuate correttamente le dipendenze e i conflitti con altri pacchetti, per non parlare del fatto che alle librerie eventualemnte costruite non verrà assegnato un numero di versione coerente con quelli di Debian, insomma anche se adesso funziona in futuro protresti avere problemi se non stai molto attento.
Un modo inizialmente più rognoso ma che ti crea una configurazione più stabile potrebbe essere quella di fare un backport di php usando i sorgenti Debian presenti in Sid ( c'è la 7.0 adesso), se ti interessa questa strada fammi sapere che cerco ti do qualche indicazione
Ombra
wiki member
wiki member
 
Messaggi: 472
Iscritto il: 11/08/2007, 18:06
Località: Bologna

Re: Creare repository PHP 7

Messaggioda mrgreen » 08/01/2016, 15:41

Ciao,
potrebbe interessarmi tenendo presente che ho bisogno di avere anche PHP 5.x perché non tutto è ancora compatibile.
Se il sistema del backport, è compatibile con questa esigenza, forse è più appropriato.

Grazie
Avatar utente
mrgreen
Newbie
Newbie
 
Messaggi: 40
Iscritto il: 17/05/2009, 11:40

Re: Creare repository PHP 7

Messaggioda Ombra » 08/01/2016, 20:12

Per provare a fare il backport fai così
1) installa i tool di sviluppo debian, credo sia sufficiente
Codice: Seleziona tutto
#apt-get install dpkg-dev build-essential fakeroot

2) aggiungi 2 righe per unstable nel tuo sources.list
Codice: Seleziona tutto
deb http://http.debian.net/debian sid main
deb-src http://http.debian.net/debian sid main

e aggiorni la lista dei pacchetti con
Codice: Seleziona tutto
apt-get update

3) da utente normale ti crei una dir di lavoro nella tua home, ti collochi all'interno e scarichi i sorgenti da unstable
Codice: Seleziona tutto
$ mkdir /home/mrgreen/php7

Codice: Seleziona tutto
cd php7

Codice: Seleziona tutto
$ apt-get -t unstable source php7.0


a questo punto devi soddisfare le dipendenze per la compilazione; all'interno dei sorgenti c'è un file di testo /debian/control, al suo interno alla voce "Build Depends trovi un elenco completo delle librerie necessarie; per automatizzare il tutto c'è il comando
Codice: Seleziona tutto
#apt-get build-dep php7.0

occhio che potrebbe installarti una tonnellata di librerie di sviluppo da unstable: ho dato una occhiata ai pacchetti e secondo me ci sono tutti anche su jessie. Prova a impostare il pinning per pescare solo da jessie, in modo da sporcarti il meno possibile il sistema
Una volta soddisfatte tutte le dipendenze puoi rimuovere dal sources.list le righe relative a unstable e dare apt-get update.

Per costruire il pacchetto ti collochi nella directory dei sorgenti (che sono già stati spacchettati da apt-get source) e poi dai
Codice: Seleziona tutto
$ dpkg-buildpackage -us -uc

se il processo termina senza errori avrai nella directory superiore una serie di pacchetti deb pronti da installare

Più lunga da scrivere che da fare, se hai dubbi chiedi pure e posta eventuali errori
Ombra
wiki member
wiki member
 
Messaggi: 472
Iscritto il: 11/08/2007, 18:06
Località: Bologna


Torna a Apt-get and friends

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite