Dpkg-hold: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Asong (talk | contribs)
No edit summary
Asong (talk | contribs)
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 4: Line 4:
AK21
AK21


2013
Jaanuar 2014




Line 10: Line 10:
== Sissejuhatus ==
== 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.  
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. [http://man7.org/linux/man-pages/man1/dpkg.1.html]
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.
== Eeldused ==


Eelduseks juhendi kasutajale on baas teadmised linuxi käsurea kasutamisest, paki paigaldusest ja [[dpkg]]-st üldisemalt. Antud juhendis on kasutatud ubuntu-server v.12.04.3 LTS. Antud juhendis toodud käsud tuleb täita juurkasutaja õiguseid.


== Süntaks ==
== Süntaks ==
   
   
dpkg pakihaldus töötab süntaksil.
    dpkg [option...] action


    dpkg –set-selection
ent valikusse lihtsalt kirjutades võti ''hold'' ei anna meile soovitud tulemust, ning pakki ootele ei panda. Süntaksi puhul on võimalik valida kahe toimingu vahel.
    dpkg –get-selection


    dpkg --get-selections
    dpkg --set-selections
või
    echo [package...] hold | dpkg --set-selections


== Kasutamine ==
== Kasutamine ==
Line 34: Line 40:


Oletame, et soovime nt. tekstiredaktor nano paki seisu talletada ja ootele panna.  
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
Dpkg-ga tuleb kõigepealt tekitada nimekiri pakkide valikust. Valiku suuname tekstifaili nimega selections.txt[http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html]




<ins>Näide</ins>:
<ins>Näide</ins>:


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




Seejärel muuta faili selections.txt sisu. Muuta tuleb seda pakki, mida soovime just ootele panna, antud juhul siis <ins>nano</ins>. Oluline on, et tühjad read ning '#' märgiga kommenteeritud read ei ole lubatud.
Seejärel muuta faili selections.txt sisu. Muuta tuleb seda pakki, mida soovime just ootele panna, antud juhul siis <ins>nano</ins>. Oluline on, et tühjad read ning '#' märgiga kommenteeritud read ei ole lubatud.[http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html]


     nano                                          install
     nano                                          install
Line 61: Line 67:
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.
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 ===
=== Variant 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.
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.[http://www.debianadmin.com/how-to-prevent-a-package-from-being-updated-in-debian.html]




<ins>Näide</ins>:
<ins>Näide</ins>:


     Dpkg -l nano     
     dpkg -l nano     
või
või
     Dpkg -l | grep nano
     dpkg -l | grep nano




Line 86: Line 92:
<ins>Kontrollime</ins>:
<ins>Kontrollime</ins>:


     Dpkg -l nano
     dpkg -l nano




Line 96: Line 102:




Piirangu eemaldamiseks kasutame hold asemel install.
Piirangu eemaldamiseks kasutame hold asemel install.[http://www.debianadmin.com/how-to-prevent-a-package-from-being-updated-in-debian.html]




Line 102: Line 108:




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


Line 108: Line 114:
== Kokkuvõte ==
== 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.
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.  
dpkg-hold on lihtne kasutada, kas ühte või teist pidi kasutades. Võimalusi on veelgi, aga esimese hooga lihtsalt paki versiooni peatamiseks on nendest võimalustest piisavalt. Natukene eksitav on eeldus, et dpkg-hold kohe teeb midagi, ent tegelikult tuleb see soovitud tulemus välja läbi teiste käskude. Minu hinnangul on tegemist väga vajaliku ning olulise tööristaga, mille keerukus tuleb välja vastavalt vajadusele. Paki ootele panek on lihtne ja lühike toiming.
 
 


== Kasutatud kirjandus ==
== Kasutatud kirjandus ==
{{reflist}}


# http://man7.org/linux/man-pages/man1/dpkg.1.html
# http://man7.org/linux/man-pages/man1/dpkg.1.html

Latest revision as of 13:17, 10 January 2014

Autor

Aare Song

AK21

Jaanuar 2014


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. [1]


Eeldused

Eelduseks juhendi kasutajale on baas teadmised linuxi käsurea kasutamisest, paki paigaldusest ja dpkg-st üldisemalt. Antud juhendis on kasutatud ubuntu-server v.12.04.3 LTS. Antud juhendis toodud käsud tuleb täita juurkasutaja õiguseid.

Süntaks

dpkg pakihaldus töötab süntaksil.

    dpkg [option...] action

ent valikusse lihtsalt kirjutades võti hold ei anna meile soovitud tulemust, ning pakki ootele ei panda. Süntaksi puhul on võimalik valida kahe toimingu vahel.

    dpkg --get-selections
    dpkg --set-selections

või

    echo [package...] hold | dpkg --set-selections

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[2]


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.[3]

    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.

Variant 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.[4]


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.[5]


    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. dpkg-hold on lihtne kasutada, kas ühte või teist pidi kasutades. Võimalusi on veelgi, aga esimese hooga lihtsalt paki versiooni peatamiseks on nendest võimalustest piisavalt. Natukene eksitav on eeldus, et dpkg-hold kohe teeb midagi, ent tegelikult tuleb see soovitud tulemus välja läbi teiste käskude. Minu hinnangul on tegemist väga vajaliku ning olulise tööristaga, mille keerukus tuleb välja vastavalt vajadusele. Paki ootele panek on lihtne ja lühike toiming.


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