La procedura che utilizzo è questa:
Ottieni il sorgente (tramite apt-get src).
Applica una patch o fai qualsiasi cosa debba essere modificata.
eseguire debchange --nmu
e digita una descrizione della modifica apportata. Questo incrementerà automaticamente il numero di versione in modo che il sistema non tenti di "aggiornare" il tuo pacchetto personalizzato a quello standard.
Esegui debuild
.
Goditi i tuoi file deb.
Ho trovato la seguente guida sui forum di Ubuntu per ricostruire il pacchetto del gestore di rete qui
Ri:come applicare una patch al sorgente di un deb
Citazione:Inserito originariamente da cord
Voglio fondamentalmente ricostruire il pacchetto del gestore di rete con una sorta di patch personalizzata per testare qualcosa. Quindi voglio:1. ottieni il codice sorgente per la "versione" Ubuntu del gestore di rete
Codice:
sudo apt-get source network-manager
Citazione:2. correggilo con la mia patchI file sorgente verranno scaricati nella directory di lavoro. Vedi questo per ulteriori informazioni.
Citazione:3. crea un file deb che posso installare al posto dell'attuale gestore di rete.
Esegui codice:
nella directory creata.dpkg-buildpackage -rfakeroot -uc -b
È stato trovato anche questo articolo:Debian New Maintainers' GuideChapter 6 - Building the package
Per quanto riguarda le tue modifiche perse a causa di un aggiornamento dai repository ufficiali, non ne sono sicuro. Puoi sempre inviare la tua patch a monte ai manutentori del pacchetto compiz-gnome o creare il tuo repository per il pacchetto aggiornato.
La risposta ai punti 3 e 4 è che dovresti mettere il pacco in hold stato dopo aver installato la tua versione. Questo dice al sistema di gestione dei pacchetti Debian di "bloccare" eventuali modifiche future a questo pacchetto, in effetti ti consente di gestire il pacchetto manualmente.
Dalle FAQ Debian:
7.11 Cosa si intende per sconosciuto, installa, rimuovi, elimina e trattieni lo stato del pacchetto?
Questi flag "want" indicano ciò che l'utente voleva fare con un pacchetto (come indicato dalle azioni dell'utente nella sezione "Select" di dselect o dalle invocazioni dirette dell'utente a dpkg).
I loro significati sono:
unknown - l'utente non ha mai indicato se vuole il pacchetto>
install - l'utente desidera che il pacchetto sia installato o aggiornato
remove - l'utente vuole che il pacchetto venga rimosso, ma non vuole rimuovere alcun file di configurazione esistente.
purge - l'utente desidera che il pacchetto venga rimosso completamente, inclusi i suoi>file di configurazione.
hold - l'utente desidera che questo pacchetto non venga elaborato, ovvero desidera mantenere la>versione corrente con lo stato corrente qualunque esso sia.
7.12 Come faccio a mettere in attesa un pacco?
Ci sono tre modi per trattenere i pacchetti, con dpkg, aptitude o con dselect.
Con dpkg, devi esportare l'elenco delle selezioni dei pacchetti, con:
dpkg --get-selections *> selections.txt
Quindi modifica il file selections.txt risultante, modifica la riga contenente il pacchetto che desideri conservare, ad es. libc6, da questo:
installazione di libc6
a questo:
libc6 attesa
Salva il file e ricaricalo nel database dpkg con:
dpkg --set-selections
Con aptitude, puoi tenere un pacco usando
aptitude mantiene nome_pacchetto
e rimuovi la sospensione con
aptitude sblocca nome_pacchetto
Con dselect, devi entrare nella schermata [S]elect, trovare il pacchetto che desideri conservare nel>suo stato attuale e premere il
=' key (or
H'). Le modifiche verranno applicate immediatamente>dopo che sarai uscito dalla schermata [S]eletti.
Nota: Le persone hanno riscontrato problemi con il blocco attitudinale comando, quindi imho dovresti preferire il comando dpkg per contenere il pacchetto. In alternativa, puoi conservare il pacchetto tramite l'interfaccia GUI del gestore di pacchetti Synaptic (Pacchetto> Blocca versione). La mia preferenza è usare dpkg perché ha funzionato bene per me.
Hai già una buona risposta per il resto, quindi non azzarderò la mia opinione su quelli.