Dpkg-hold

From ICO wiki
Revision as of 15:12, 4 January 2014 by Asong (talk | contribs)
Jump to navigationJump to search

Sissejuhatus

Dpkg-hold võimaldab kasutajal soovitud paki panna ootele selliselt, et selle järgmist paki versiooni ei uuendata ja paigaldatud versioon on külmutatud. See osutub kasulikuks nt. kui on avastatud mõnest olulisest uuendusest turvaauk, ning ei soovita seda järgmise uuendusega kasutusele võtta. Pakkidele on võimalik külge panna lipukesi, mis ütlevad, mida selle pakiga tohib teha. Võimalused on unknown, install, remove, purge ja hold.

Hold – kasutaja soovib paki hetke oleku ja versiooni külmutada. Ehk pakk on märgitud ootele, kuigi seda märget ei halda otseselt dpkg, juhul kui ei ole sunnitud seda toimingut käsuga

–force-hold.


Süntaks

    dpkg –set-selection
    dpkg –get-selection


Kasutamine

Dpkg-hold kasutamisel on kas varianti. Kas väljastada nimekiri kõikidest pakkidest ja seda muuta ning see uuesti sisse lugeda või teha muudatus otse käsurealt.


Variant üks

Oletame, et soovime nt. tekstiredaktor nano paki seisu talletada ja ootele panna. Dpkg-ga tuleb kõigepealt tekitada nimekiri pakkide valikust. Valiku suuname tekstifaili nimega selections.txt


Näide:

    dpkg --get-selections \* > selections.txt


Seejärel muuta faili selections.txt sisu. Muuta tuleb seda pakki, mida soovime just ootele panna, antud juhul siis nano. Oluline on, et tühjad read ning '#' märgiga kommenteeritud read ei ole lubatud.

    nano                                           install


muudame:

    nano                                           hold


salvestame faili selections.txt ning laeme selle dpkg andmebaasi tagasi:

    dpkg --set-selections < selections.txt

Tulemus: nano pakki järgmise uuendusega enam ei uuendata.


Antud varjant osutub kasulikus, kui soovime mitut või suuremat hulka pakke ootele panna. Üksikute pakkite puhul on tülikas läbi nii mitme käsu seda teha. Seepärast on võimalik pakke ootele panna ka läbi käsurea.

Varjant kaks

Kui on teada, et nt. nano pakis on turvaauk ja on kriitiline, et seda järgmise uuendusega ei uuendataks. Ühe paki puhul ei pea väljastama faili, saab otse käsurealt selle muudatuse teha.


Näide:

    Dpkg -l nano     

või

    Dpkg -l | grep nano


Nano kõrval vasakul asetsev ’ii’ tähistab, et nano on võimalik uuendada.


Paneme paki ootele:

    echo nano hold | dpkg --set-selections


Kontrollime:

    Dpkg -l nano


Tulemus:

Vasakul ’ii’ on asendunud tähisega ’hi’. ’hi’ tähistab paki ootel olekut.


Piirangu eemaldamiseks kasutame hold asemel install.


    echo nano install | dpkg --set-selections


uuesti selekteerides dpkg-l nano, näeme, et ’hi’ on jälle asendunud ’ii’ tähisega. Sellist kontrolli saab rakendada ka esimese variandi puhul, kus valikud loeti sisse failist


Kokkuvõte

Dpkg-hold on oluline tööriist erinevatel põhjustel. Kui soovime talletada valitud paki hetke seisu ning kaitsta seda uuenduste eest. Põhjuseks kasvõi uuendustega tulnud turvaaugud. Üksikutel juhtudel saab kiirelt toiminguid teha läbi käsurea, kuid suurema valiku puhul on kasulik kasutada failist sisse lugemist.

Kasutatud kirjandus

  1. http://man7.org/linux/man-pages/man1/dpkg.1.html
  2. http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html
  3. http://www.debianadmin.com/how-to-prevent-a-package-from-being-updated-in-debian.html


Autor

Aare Song

AK21

2013