Installazione di un pacchetto .deb nella home directory


31

È possibile installare un .debpacchetto completamente nella mia directory home su debian?


È possibile creare un pacchetto deb che si installa ovunque. Ma perché dovresti farlo? I pacchetti dovrebbero essere installati nel sistema.
Faheem Mitha,

5
@Faheem Mitha - Non tutti abbiamo accesso root alle nostre caselle Unix, sai, non so dove lavoro. Se avessimo bisogno di un pacchetto (RPM nel mio caso) per usare un software, sarebbe bello poterlo installare nello spazio utente piuttosto che parlare con l'IT e farli installare il pacchetto sul sistema per noi.
Mark Booth,

@FaheemMitha Un'altra cosa è testare una nuova versione di un pacchetto. Se voglio rendere disponibile un pacchetto specifico per un solo utente, non continuo a installarlo a livello di sistema.
Erathiel,

@Erathiel Bene, questo è davvero un caso d'uso per una macchina virtuale.
Faheem Mitha,

@FaheemMitha Forse o forse no;) Il mio caso d'uso era una macchina di sviluppo con diversi utenti che fungevano da ambienti di sviluppo. Avevo bisogno di trasferire un pacchetto su una nuova versione per un solo utente specifico, in modo da poter testare il comportamento della nuova versione. Ma il server è una macchina virtuale stessa, quindi hai in parte ragione;)
Erathiel,

Risposte:


19

Dipende da cosa intendi per "installa". È possibile estrarre il contenuto di un file .deb usando dpkg-deb -x <filename.deb>, ma se è possibile utilizzare effettivamente il software dopo averlo estratto localmente dipende da come è scritto. Molti software Linux si aspetteranno di trovare i propri file di risorse in percorsi standard specificati in fase di compilazione, come /usr/shareo /usr/lib, che non funzioneranno se il software non è installato nel solito percorso. Inoltre, qualsiasi file di configurazione a livello di sistema installato dal pacchetto, come i .desktopfile che creano voci nel menu di avvio, non funzionerà come previsto se installato nella posizione errata.


3
dovrebbe esseredpkg-deb -x app.deb /path/to/target/dir/
QED

o semplicemente dpkg -x app.deb / path / to / target / dir /
Erik Aronesty

5

Grazie per tutti i tuoi commenti e risposte. Era un software auto-impacchettato in cui vorrei fare alcuni controlli di base se la mia confezione era corretta. Sono root sul mio computer, ma non mi piacerebbe fare una vera installazione lì né voler usare un'immagine virtuale per il momento. Ho trovato questa soluzione: https://serverfault.com/questions/23734/is-there-any-way-to-get-apt-to-install-packages-to-my-home-directory che funziona perfettamente per io atm.


5
@Ivogel chiede "La pagina che hai collegato ha molti post e non posso dire quale sia la soluzione che ha funzionato per te. Potresti specificare?"
Dott.

4

Si noti che l'uso del sistema di pacchetti Debian richiede l'accesso come root. Pertanto, l'installazione di un pacchetto deb in una home directory degli utenti richiede l'accesso root. Se si dispone dell'accesso root, è più sensato installarlo nel sistema normalmente.

Se non si dispone dell'accesso root, non è possibile utilizzare il sistema di packaging Debian. Potresti certamente decomprimere un file deb nei suoi componenti e incollarlo nella tua home directory, ma farlo avrebbe poco senso imo. Ti suggerisco di andare con un'installazione locale. A seconda del software che si sta installando, il software potrebbe avere una sorta di sistema interno di gestione dei pacchetti che è possibile utilizzare.


Non so se sia stata aggiunta dopo che questa risposta è stata creata ma dpkg ha un'opzione --force-non-root che può essere usata per aggirare questo problema.
Bruce Adams,

@BruceAdams Non vedo questa opzione elencata nella pagina man. Potete fornire un riferimento?
Faheem Mitha,

Se esegui dpkg --help menziona --force-cosa. Se esegui dpkg --force-help fornisce maggiori dettagli. Vedi ad esempio askubuntu.com/questions/193695/…
Bruce Adams,

@BruceAdams Ok, lo vedo, ma non ho idea di come avrebbe funzionato: not-root Try to (de)install things even when not root.
Faheem Mitha,

Vedi la mia domanda stackoverflow.com/questions/47099045/… Tuttavia, al momento in cui scrivo non ha ancora una risposta. Quindi non ne ho idea neanche io.
Bruce Adams,
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.