Puncte:1

Instalați o versiune specifică a pachetului prin meta-pachet

drapel in

Am un meta-pachet pentru tensorrt care este doar o listă de dependențe de versiuni specifice de biblioteci. Aici este Control dosarul acestuia:

Pachet: tensorrt
Sursa: tensorrt (7.1.3-1+cuda10.2)
Versiune: 7.1.3.4-1+cuda10.2
Arhitectură: amd64
Menținător: cudatools <[email protected]>
Dimensiune instalată: 11
Depinde: libnvinfer7 (= 7.1.3-1+cuda10.2), libnvinfer-plugin7 (= 7.1.3-1+cuda10.2), libnvparsers7 (= 7.1.3-1+cuda10.2), libnvonnxparsers7 (= 7.1 .3-1+cuda10.2), libnvinfer-bin (= 7.1.3-1+cud
a10.2), libnvinfer-dev (= 7.1.3-1+cuda10.2), libnvinfer-plugin-dev (= 7.1.3-1+cuda10.2), libnvparsers-dev (= 7.1.3-1+ cuda10.2), libnvonnxparsers-dev (= 7.1.3-1+cuda10.2), libnvinfer-samples
 (= 7.1.3-1+cuda10.2), libnvinfer-doc (= 7.1.3-1+cuda10.2)
Secțiune: multivers/dezvoltare
Prioritate: optional
Descriere: Meta pachet de TensorRT
 Meta pachetul TensorRT.

Acum, când vreau să instalez tensorrt se spune:

Următoarele pachete au dependențe neîndeplinite:
 tensorrt : Depinde: libnvinfer-dev (= 7.1.3-1+cuda10.2) dar 8.0.3-1+cuda11.3 trebuie instalat
            Depinde: libnvinfer-plugin-dev (= 7.1.3-1+cuda10.2) dar 8.0.3-1+cuda11.3 urmează să fie instalat
            Depinde: libnvparsers-dev (= 7.1.3-1+cuda10.2) dar 8.0.3-1+cuda11.3 trebuie instalat
            Depinde: libnvonnxparsers-dev (= 7.1.3-1+cuda10.2) dar 8.0.3-1+cuda11.3 trebuie instalat
            Depinde: libnvinfer-samples (= 7.1.3-1+cuda10.2) dar nu va fi instalat
E: Nu puteți corecta problemele, ați reținut pachete sparte.

Dacă luăm o anumită lib, de exemplu libnvinfer-dev, conform politica apt-cache, am mai multe versiuni ale acestuia disponibile:

(ubuntu-xenial-amd64)svc_moma_usr@PL1LXD-529389:/$ politica apt-cache libnvinfer-dev
libnvinfer-dev:
  Instalat: 7.1.3-1+cuda10.2
  Candidat: 8.0.3-1+cuda11.3
  Tabel de versiuni:
     8.0.3-1+cuda11.3 500
        500 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 Pachete
     8.0.3-1+cuda10.2 500
        500 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 Pachete
     8.0.1-1+cuda11.3 500
        500 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 Pachete
     8.0.1-1+cuda10.2 500
        500 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 Pachete
     8.0.0-1+cuda11.3 500
        500 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 Pachete
     8.0.0-1+cuda11.0 500
        500 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 Pachete
     8.0.0-1+cuda10.2 500
        500 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 Pachete
 *** 7.1.3-1+cuda10.2 500
        500 Pachete https://repository.ttgroup.com/repository/rozbad-xenial xenial/main amd64
        100 /var/lib/dpkg/status
     7.0.0-1+cuda10.2 500
        500 fișier:/var/nv-tensorrt-repo-cuda10.2-trt7.0.0.11-ga-20191216 Pachete
        500 Pachete https://repository.ttgroup.com/repository/rozbad-xenial xenial/main amd64

După cum puteți vedea, am reușit să instalez versiunea pe care o vreau în mod explicit apt install libnvinfer-dev=7.1.3-1+cuda-10.2, chiar dacă versiunea este mai veche, dar instalarea acestei versiuni nu este posibilă prin tensorrt meta-pachet, deși versiunile mai vechi sunt, de asemenea, menționate în mod explicit acolo. Cum pot face ca APT să instaleze acest pachet?

Știu că este posibil să schimbi prioritățile în /etc/apt/preferences.d, dar acest lucru se face la nivel de sistem, în timp ce vreau să spun APT să instaleze aceste pachete prin intermediul Control fişier.

muru avatar
drapel us
Nu poți, nu doar folosind setările de dependență ale pachetului meta
Piotr G avatar
drapel in
Ce zici de o soluție? De exemplu, știu că pot instala dependențele manual cu o anumită versiune. Când sunt în fișierele pachetelor debian (control. rules, etc) aș putea adăuga comanda bash în care instalez pachetele, și nu cu mecanismul de rezoluție a dependențelor.
muru avatar
drapel us
Nici asta nu va funcționa, deoarece sistemul de gestionare a pachetelor este blocat în timp ce o instalare este în curs, așa că comenzile de instalare din scripturile de întreținere vor eșua. Puteți furniza un script pentru a vă instala pachetul care poate face apoi lucruri precum `apt-get install meta-pkg=x.y dep1=a.b dep2=c.d`, etc., sau puneți toate dependențele în depozitul dvs. și adăugați acel repo cu un prioritatea pinului.
Piotr G avatar
drapel in
Mulțumiri. Dar aș putea rula comenzile bash care conțin `apt-get ...` înainte de instalare. Nu am menționat asta inițial, dar trebuie să instalez `tensorrt` pentru a construi un alt pachet folosind `sbuild` și instalarea lui `tensorrt` a fost declanșată de la `debian/control`. Poate aș putea rula aceste comenzi `apt-get` înainte ca instalarea tensorrt să fie declanșată, dar nu sunt foarte sigur de ordinea în care sunt rulați pașii `sbuild`. Ideea mea a fost să trec peste sth. în `debian/rules`

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.