Puncte:4

Pot instala apt ./meta-pkg_1.0_all.deb care va depinde de .deb local?

drapel us

Am un număr de pachete .deb pe care le creez și le instalez:

  • pkg1_1.0_all.deb
  • pkg2_1.0_all.deb
  • pkg3_1.0_all.deb

Pot să le instalez folosind sudo dpkg -i pkg1_1.0_all.deb.

Acum vreau să creez un meta pachet care va depinde de toate, permițându-mi doar să instalez sudo dpkg -i meta_1.0_all.deb.

obisnuiam echivalente pentru a crea un fișier de control:

Sectiunea: diverse
Prioritate: optional
Standarde-Versiune: 3.6.2

Pachet: bla
Versiune: 1.0
Depinde:
Descriere:
 descriere lungă și informații
 .
 al doilea paragraf

și instalați-l.

Apoi am modificat Depinde: a depinde de un pachet cunoscut: Depinde: tmux și l-a instalat.

Apoi, am încercat să depind de pachetele mele personalizate: Depinde: pkg1 si acum instalarea s-a stricat:

dpkg: problemele de dependență împiedică configurarea bla:
 bla depinde de pkg1; in orice caz:
  Pachetul pkg1 nu este instalat.

ceea ce este de înțeles, așa cum pachet 1 într-adevăr nu este instalat.

Am adăugat directorul meu local ca sursă Debian după aceasta ghid (a schimbat un lucru - adăugat [de încredere=da] la lista surselor fișier deb [de încredere=da]:... deci ar merge)

Am sperat că asta îmi va permite sudo apt install ./meta_1.0_all.deb și ar găsi pachetul dependent în directorul meu curent, dar a eșuat din nou cu aceeași eroare.

Ce pot face pentru a permite utilizatorului să instaleze un singur .deb și să-l facă să instaleze mai multe pachete .deb locale?

drapel ru
Nu va instala automat fișierele locale .deb care nu se află într-un depozit. Ar trebui să faceți asta manual - `apt install bla /local/path/local1.deb /local/path/local2.deb ...` - dacă nu adăugați și aceste 'pachete locale' la un server de depozit.
CIsForCookies avatar
drapel us
@ThomasWard, deci dacă ar fi fost încărcate pe un server - aș fi putut instala un .deb și aș fi putut să le obțin pe toate, dar dacă sunt într-un depozit local - nu sunt?
user.dz avatar
drapel ng
Soluția posibilă este depozitul plat/trivial, poate fi doar un director local (nu este nevoie de server, dacă nu trebuie partajat prin rețea). Consultați https://askubuntu.com/a/615932/26246
mchid avatar
drapel bo
De asemenea, cineva din [secțiunea de comentarii](https://www.linuxwave.info/2009/04/adding-local-directory-to-apt.html#c2620391824185814815) a menționat că trebuie să utilizați `deb file:/home /foo/debs /` în loc de `file:// /home/foo/debs` pe versiunile mai noi de Ubuntu.
CIsForCookies avatar
drapel us
@mchid asta e ciudat. L-am încercat pe Ubuntu20.04 și 18.04 cu formatul `file:///` și a funcționat (dacă nu mai nou este mai nou decât 20.04)
CIsForCookies avatar
drapel us
@user.dz Nu sunt sigur care este diferența dintre soluția dvs. (fișierele `Release` și `Packages` fac de fapt diferența aici? Am și fișierul meu `Packages.gz` și nu a funcționat ca dvs. soluție), dar funcționează! Îmi spune că pachetul nu poate fi autentificat (evident), dar nu e nimic vechi `da | sudo apt install ` nu se poate descurca. Mulțumiri!! (Vrei să-l scriu ca răspuns ca să-l pot accepta?)
user.dz avatar
drapel ng
@CIsForCookies `dpkg` este instrumentul de bază, dar nu este conștient de depozite, doar gestionează pachetele `.deb` individual. `apt` (sau `apt-get`) este un instrument de nivel superior care gestionează următoarele dependențe de pachete prin depozite.Deci pachetele dvs. ar trebui să fie servite prin depozit (chiar dacă este doar un director local). Ultimul pas pentru a remedia autentificarea este să semnați fișierul Release urmând acest https://wiki.debian.org/SecureApt#Setting_up_a_secure_apt_repository . Poți scrie răspunsul care funcționează pentru tine, nu mă deranjează.
user.dz avatar
drapel ng
@CIsForCookies Btw, Packages.gz poate să nu funcționeze din cauza modului în care repo este declarat în sources.list sau locația packages.gz nu este acolo unde `apt` se așteaptă.
mchid avatar
drapel bo
Dacă răspunsul pentru [Ce aspect/fișiere ar trebui să aibă depozitul Debian?](https://askubuntu.com/questions/606527/what-layout-files-should-debian-repository-have), îl putem închide ca un duplicat.
nobody avatar
drapel gh
Căutați acest https://help.ubuntu.com/community/MetaPackages?
Puncte:3
drapel bo

Puteți glob (utilizați un wildcard *) comanda de instalare:

sudo apt install ./*.deb

Aceasta va selecta toate pachetele de instalat, la fel cum ar selecta aceste pachete dintr-un depozit. Deoarece toate dependențele sunt satisfăcute cu o singură comandă, nu veți avea probleme de dependență.

CIsForCookies avatar
drapel us
De fapt, nu am dependențe „adevărate”. Am vrut doar să creez metapachetul pentru a permite o singură comandă de instalare. Cu soluția dvs., ar trebui să pot sări peste acel meta pachet, dar nu sunt sigur că wildcard este ceva ce vreau să am

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.