Puncte:3

Cum să prindeți codurile de ieșire care provin din fișierul preinst în timpul instalării pachetului debian?

drapel cn

Încerc să instalez un pachet Debian pe cutia mea , printr - un script shell , adică în scriptul shell pe care îl dau dpkg -i comanda . În interior există o preinst fișierul care este utilizat. Acum, în acest fișier, una dintre condiții eșuează, să spunem când x=0 ies cu iesirea 2

Vreau ca, indiferent de codul de ieșire cu care se iese fișierul preinst , ar trebui să pot să prind acel cod de ieșire și în fișierul meu install.sh, voi face o declarație de tipărire pe baza acestuia

Problema este când fac eco $? îmi dă întotdeauna 1, afirmând că instalarea dpkg a eșuat, dar acel cod de returnare pe care nu îl primesc. Există vreo modalitate de a face asta, mulțumesc anticipat

Puncte:1
drapel cn

Presupun că o anumită condiție nu este îndeplinită în fișierul preinst al pachetului deb. Cred că ar fi mai bine să mutați verificările de la preinst la scriptul wrapper, adică fișierul install.sh.

de exemplu:

#!/bin/bash

if [ "$x" -eq "0" ]; atunci
   echo Verificarea x = 0 a eșuat
   ieșirea 1;
fi
#Pune toate celelalte astfel de verificări aici...

dpkg -i pachet.deb

Acest lucru presupune că puteți modifica preinst și installer.sh!

Acest blog la instalare wrapper este o citire bună de 10-15 minute!

Punct cheie de pe blog:

Instalarea ambalajelor sunt de obicei necesare pentru unul dintre următoarele motive (nu se limitează la acestea):

  1. Cerințe pre/post
  2. Pre / Post scripting, de exemplu: ștergeți un fișier / comandă rapidă, creați o cheie de registry
  3. Verificarea stării înainte de instalare, de exemplu: sistemul de operare corect, numele computerului corect (sau o parte a numelui)
  4. Verificați versiunea unei cerințe prealabile instalate, de exemplu: versiunea de MS Office
  5. Verificați dacă un utilizator este conectat
  6. Verificați dacă un program este utilizat de utilizator, de exemplu: în cazul unui upgrade
ThunderBird avatar
drapel ru
Într-o zi, pot apărea probleme de legătură între acest site și blogul la care ați făcut referire în răspunsul dvs. Ați putea, vă rog, să subliniați pașii esențiali aici, dacă nu toți?
Atharva Ranade avatar
drapel cn
Mulțumesc pentru sugestie!

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.