Come dire a apt che le dipendenze vengono risolte manualmente?


14

Diciamo che esiste un software che non voglio installare apt, ma manualmente. (TeXLive, perché voglio usare la versione 2011 e aptha solo la versione 2009.)

Diciamo che esiste un altro software che mi piacerebbe installare apt, che tuttavia dipende dal primo software. (Vim LaTeXSuite, in quanto è un problema installarlo manualmente per l'uso a livello di sistema.)

Per impostazione predefinita, aptnon "vede" il primo software e procede all'installazione di molte cruft non necessarie e indesiderate (ad esempio TeXLive 2009) solo per soddisfare i metadati di dipendenza.

Come posso:

  • Dire aptche un determinato pacchetto (ad es. texlive) È installato per tutti gli scopi pratici e che non dovrebbe essere installato come dipendenza di qualche altro pacchetto?

  • Dire aptdi installare un determinato pacchetto (ad es. vim-latexsuite) Senza preoccuparsi delle sue dipendenze?

Ho passato al setaccio varie aptpagine man relative e mi sono trovato vuoto, e ho anche trovato questa domanda su questo sito, ma senti che ci deve essere un modo meno aggressivo per farlo, no?

(Dai miei tempi di Gentoo, ricordo emerge --injecte /etc/portage/package.provides, e sostanzialmente sto cercando gli aptequivalenti.)


TeX Live 2011 è stato recentemente aggiunto a Debian Sid, quindi dovrebbe propagarsi prima o poi anche a Mint (ma Ubuntu 12.04 lo ha "perso", quindi non prima della fine di ottobre con Ubuntu 12.10). Se sei davvero avventuroso potresti forse prendere i pacchetti da Debian Sid, ma poiché in questo caso riguarda molti pacchetti, probabilmente non è una buona soluzione. C'è un PPA su launchpad.net/~texlive-backports/+archive/ppa impostato (vedi questo bug report in Ubuntu ) che forse puoi usare anche in Mint.
Daniel Andersson,


Nessun commento negativo tre anni dopo ... ti interessa spiegare?
DevSolar,

@DevSolar: sembra che qualcuno abbia retrocesso in serie la domanda ed entrambe le risposte tre anni dopo, senza chiarire il perché. Meglio scrollare le spalle e andare avanti, immagino :-).
Daniel Andersson,

Risposte:


13

È necessario utilizzare il equivspacchetto per generare meta-pacchetti che forniscono queste dipendenze e quindi utilizzare dpkgper installare questi pacchetti.

Installare equivse leggere la sua documentazione dovrebbe essere sufficiente, ma questa guida per Ubuntu è piuttosto estesa e dovrebbe applicarsi anche ad altri sistemi APT.


Inoltre, se ritieni che un pacchetto debba essere installato senza la dipendenza specificata, dovresti presentare un bug sul pacchetto, spiegando il caso in cui la dipendenza non è necessaria.

In questo caso , texlive-base-binsembra essere solo "Consigliato" e non una "Dipendenza" nella distribuzione Debian di base almeno (probabilmente in parte dato che texliveè un pacchetto così enorme), ma perché è comune installare TeX Live su Debian dal la versione di distribuzione è spesso molto indietro (per il motivo che il pacchetto è talmente bestiale che spesso non può essere impacchettato senza un lavoro sostanziale, che è fatto principalmente da una o poche persone, che affermano di avere vite accanto a Debian), il equivsil trucco è spesso usato con TeX Live (wow, quella frase è sfuggita di mano :-)).


Aggiunta : per istruzioni più dettagliate per coloro che desiderano installare TeXLive al di fuori del sistema di pacchetti, queste istruzioni su TeX.SX sono più estese e molto probabilmente continueranno a essere aggiornate. Includono anche istruzioni più esplicite relative al equivspassaggio.


Non so come sia successo, ma Linux Mint rende texlive una dipendenza "difficile" ... proverà il equivspacchetto.
DevSolar,

equivsha funzionato alla grande. Ho creato la versione 9999 di texlive-base-bin, sovrascrivendo il pacchetto "fittizio" originale con lo stesso nome (fornito da texlive-binaries) e installato vim-latexsuitesenza problemi.
DevSolar,

1

Puoi usare il --nodepsflag su dpkg, che dovrebbe installare il pacchetto senza dipendenze.

   --ignore-depends=package,...
          Ignore  dependency-checking for specified packages (actu-
          ally, checking is performed, but only warnings about con-
          flicts are given, nothing else)

C'è una domanda molto simile su Serverfault che vale anche la pena guardare


Uh ... niente del genere? (Almeno non sulla confezione di Linux Mint 12 che ho qui.)
DevSolar il

1
hm, mi sembra di aver fatto un errore - è per dpkg, non apt-get - ha modificato la mia risposta per riflettere questo
Journeyman Geek

Questo è qualcosa che mi confonde a non finire con i derivati ​​Debian: la moltitudine di interfacce del gestore pacchetti. Presumo che non ci siano tripfalls coinvolti nel mescolarli? O dovrei attenermi a uno di loro?
DevSolar,

tutto è basato su dpkg, essenzialmente, apt e aptitude sono front-end a quello, e ci sono front-end per apt e aptitude. dpkg viene solitamente utilizzato quando si desidera installare pacchetti da un file .deb. Tendo ad attenermi a apt-get e dpkg per la maggior parte da solo. Mescolare i gestori di pacchetti debian "predefiniti" di solito dovrebbe essere ragionevolmente sicuro
Journeyman Geek

Questo rende la tua risposta la mia soluzione preferita per il mio vero problema, poiché nulla dipende da Vim-latexsuite a sua volta. Tuttavia, questa soluzione non contrassegna "texlive" come presente , ma semplicemente impedisce a vim-latexsuite di richiederlo. Pertanto, la risposta di Daniel si adatta meglio al titolo della domanda. Il segno di spunta va da lui, i miei complimenti vanno da te. ;-)
DevSolar il

1

Quanto segue rimuoverà la dipendenza da un file .deb, in questo caso rimuovendo la dipendenza libperl5.20 da freeradius:

dpkg-deb -x freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb freeradius
dpkg-deb -e freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb freeradius/DEBIAN
sed -i  -e 's/, libperl5.20 (>= 5.20.2)//g' freeradius/DEBIAN/control
dpkg-deb -b freeradius freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb

Ciò consente di installare il pacchetto senza apt sapere che esiste la dipendenza.

Se stai installando manualmente versioni specifiche di pacchetti, potresti anche voler interrompere l' apt-get upgradeaggiornamento del pacchetto in futuro:

apt-mark hold freeradius
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.