Ho installato un programma ottenendo il suo codice sorgente e quindi eseguendo `sudo make install`; come farne sapere `apt-get`?


46

Ho installato il programma (chiamalo, per esempio, progA) costruendolo dal codice sorgente, e infine chiamando sudo make installe sudo ldconfig.

Tuttavia, sembra che apt-getil memo non sia stato ottenuto, perché durante l'installazione progB, da cui dipende progA, apt-getmi consiglia di installare anche progA. Perché è questo e cosa potrei fare?


Penso che anche tu debba installarlo progBmanualmente ...
Parto

11
Non si può presumere che la versione "personalizzata" che hai creato sia la stessa del pacchetto, ovvero una dipendenza. Un collegamento (non consigliato) sarebbe installare il pacchetto reale e quindi sovrascrivere il binario con il tuo 'speciale'. Dato che non sei stato specifico, non posso fornire ulteriori consigli.
david6,

6
Basta non farlo. Mantenere sempre il software gestito dalla gestione dei pacchetti rigorosamente separato dal software compilato dall'utente.
Reinier Messaggio

Risposte:


56

TL; DR checkinstall è tuo amico ;)

sudo apt-get install checkinstall

Dopo un'installazione con sudo make installil gestore dei pacchetti non si sa assolutamente nulla di questa installazione. Ma sa tutto di un pacchetto con lo stesso nome nei repository Ubuntu o in un PPA.

Utilizzare sudo checkinstallinvece di sudo make installe utilizzare una versione successiva come versione nel repository per essere sicuri che il gestore pacchetti accetti questa versione come dipendenza corretta per ProgB.


Ulteriori informazioni:

checkinstallè davvero elegante, poiché segue ciò che il make installcomando farebbe, per capire come costruire un pacchetto.

Ciò significa che se installi un programma usando make install, ma poi vuoi pentirti per i tuoi peccati, tutto ciò che devi fare è sudo checkinstall -D make installe quel comando:

  1. segui make installper capire cosa fa

  2. copy-cat make install, tranne nel modulo del pacchetto * .deb

  3. installa dal pacchetto (esattamente come make installavrebbe dovuto, dato il punto 1)) tranne che apt-getinformalo e quindi sovrascrivi tutti i file esattamente dove li make installavresti messi fintanto che scegli SÌ per includere i file inseriti make installnella home directory anche nel pacchetto - un paio di opzioni durante il checkinstallprocesso ti permetteranno di scegliere (ovviamente, però, la scelta è lì in modo che tu possa esercitarla caso per caso)

Bonus: puoi anche rimuovere un pacchetto (chiamalo di progAnuovo) installato usando make installquel odes che non ha make uninstallsupporto seguendo il checkinstallprocesso finora descritto e semplicemente facendo:

dpkg -r progA

18
Wow checkinstall- IL MONDO deve saperlo!

Ho aggiunto qualche dettaglio in più alla tua risposta, basandomi sul tentativo di implementarlo ieri, e i consigli di questa meta domanda : non esitare a modificarlo ulteriormente!

Quali dettagli intendi?
AB,

Oh, penso che non siano ancora apparsi, perché è in revisione recensione - se fai clic sul link alla meta domanda, vedrai quali sono (in origine, li avevo inseriti nel corpo della domanda, ma il la raccomandazione era di inserirli nell'organismo di risposta accettato).

La directory della documentazione del pacchetto ./doc-pak non esiste. Devo creare un set predefinito di documenti pacchetto?
n8chz,


1

Consiglierei di utilizzare uupdateda devscriptse compilare il pacchetto come l'originale è stato creato in precedenza.

Installa i pacchetti richiesti

$ sudo apt-get install build-essential devscripts

Scarica il vecchio pacchetto dal repository ufficiale (userai MediaWikicome esempio) e la nuova tar-ball dall'upstream.

$ mkdir ~/Downloads/mediawiki
$ cd ~/Downloads/mediawiki
$ apt-get source mediawiki
$ wget https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz

Esegui uupdateper creare una nuova cartella di origine dalla tar-ball upstream e dalla vecchiadebian/control

$ cd mediawiki-1.19.14+dfsg   # depends on your Ubuntu version
$ uupdate ../mediawiki-1.26.0.tar.gz 1.26.0
$ cd ../mediawiki-1.26.0

Ora dovresti verificare se è necessario apportare modifiche ai debian/controlfile ecc. Se hai finito puoi creare il pacchetto deb e installarlo

$ dpkg-buildpackage -us -uc
$ cd ..
$ sudo dpkg -i *.deb
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.