Kirjoittaja Aihe: Paketinhallintaa komentoriviltä  (Luettu 150795 kertaa)

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Paketinhallintaa komentoriviltä
« : 14.08.05 - klo:16.10 »
Tämä ohje on siirretty osittain tänne http://linux.fi/index.php/Dpkg ja http://linux.fi/index.php/Apt tuonne.

Linuxeissa paketinhallinta on varsin keskeisessä osassa, se määrää miten ohjelmia asennetaan, päivitetään ja poistetaan helpoiten. yleensä onkin syytä asentaa mahdollisimman suuri osa ohjelmista paketinhallinnan kautta välttääkseen ongelmia ja käsityötä. Ubuntussa onkin backports ja ei tuetut, mutta Ubuntun viralliset repositoryt mukaan lukien varsin hyvä valikoima paketteja ja joitain kaupallisia tai suljettuja mutta vapaita ohjelmia lukuun ottamatta miltei kaikki tarvittavat paketit löytyvät sitä kautta.

käyn pikaisesti läpi suoraan paketinhallintaan liittyvät työkalut apt-get ja dpkg sekä pakettien etsimiseen ja tiedonhakuun liittyvät työkalut apt-cache ja apt-file. esitellyt ohjelmat ovat huomattavasti monipuolisempia kuin mitä minä aion käydä läpi, joten uteliaat ja lisä-informaatiota kaipaavat löytävät varmasti tarvitsemansa ohjelmien man-sivuilta.


apt-get:
apt-get on varmasti peruskäyttäjän pääasiallinen paketinhallintatyökalu komentorivillä. se osaa ratkoa riippuvuuksia, hakea halutun paketin ja sen riippuvuudet suoraan netistä ja asentaa kaikki automaattisesti. apt-getin käyttö vaatii rootin oikeudet (joko sudo tai terminaali jossa on tarvittavat oikeudet.). apt-getin repositoryt määritellään tiedostossa /etc/apt/sources.list

pakettilistausten päivittäminen ajan tasalle (tämä tulee ajaa aina kun sources.listiä on muutettu ja yleensä se on hyvä ajaa kerran sellaisina päivinä joina aikoo asennella ohjelmia):
Koodia: [Valitse]
# apt-get update
paketin asennus:
Koodia: [Valitse]
# apt-get install <paketti>
paketin lähdekoodin noutaminen (muista esitellyistä komennoista poiketen, tämä komento ei vaadi rootin oikeuksia):
Koodia: [Valitse]
$ apt-get source <paketti>
paketin poistaminen siten, että ohjelman asetustiedostot jätetään järjestelmään:
Koodia: [Valitse]
# apt-get remove <paketti>
paketin poistaminen siten, että myös ohjelman asetustiedostot poistetaan:
Koodia: [Valitse]
# apt-get --purge remove <paketti>
järjestelmään asennettujen pakettien päivittäminen uusimpiin versioihinsa (sisältää myös tietoturvapäivitykset ja edellyttää pakettilistausten päivittämistä):
Koodia: [Valitse]
# apt-get upgrade
järjestelmään asennettujen pakettien päivittäminen uusimpiin versioihinsa siten, että myös muutokset riippuvuuksissa otetaan huomioon. (pelkkä upgrade ei tee tätä, joten se saattaa joskus jättää joitain paketteja päivittämättä.):
Koodia: [Valitse]
# apt-get dist-upgrade
tätä viimeistä komentoa käytetään myös silloin kun päivitetään Ubuntu uuteen versioon ilman uudelleenasennusta. ennen päivitystä tulee vain muuttaa /etc/apt/sources.list:in sisältöä siten, että paketit haetaan uuden version repositoryistä.


dpkg:
dpkg toimii paketinhallinnassa hieman apt-get:iä alemmalla tasolla. se ei osaa hakea paketteja netistä saati sitten ratkoa niiden riippuvuuksia. riippuvuuksien selvittäminen toimii kyllä siinä määrin, että jos komennon parametriksi antaa monta pakettia, osaa dpkg tarkistaa täyttävätkö muut asennettavaksi annetut paketit puuttuvia riippuvuuksia. pakettien asentaminen ja poistaminen vaatii luonnollisesti rootin oikeudet, mutta kyselyt eivät. dpkg:n kyselyt vaativat yleensä, että ohjelma on joko asennettu tai kyseltävä .deb -paketti on saatavilla ja annettu parametrina. itse netistä noudetut paketit asennetaan dpkg:n avulla.

haetun .deb paketin asentaminen:
Koodia: [Valitse]
# dpkg -i <paketti>
paketin poistaminen (mikä tahansa asennettu paketti):
Koodia: [Valitse]
# dpkg -r <paketti>
paketin poistaminen siten, että myös asetustiedostot poistetaan:
Koodia: [Valitse]
# dpkg -P <paketti>
haetun paketin tietojen kysely:
Koodia: [Valitse]
$ dpkg -I <paketti>
asennetun paketin tietojen ja stauksen kysely
Koodia: [Valitse]
$ dpkg -s <paketti>
haetun paketin sisällön listaaminen:
Koodia: [Valitse]
$ dpkg -c <paketti>
kaikkien asennettujen pakettien ja niiden versionumeroiden listaaminen:
Koodia: [Valitse]
$ dpkg -l
tietyn (asennetun) paketin versionumeron tarkistaminen:
Koodia: [Valitse]
$ dpkg -l <paketti>
tiedoston etsiminen asennetuista paketeista (selvitetään mihin pakettiin tiedosto kuuluu):
Koodia: [Valitse]
$ dpkg -S <tiedoston nimi tai nimen osa>

apt-cache:
apt-cache on osa apt-pakettia ($  dpkg -S apt-cache ;)) ja on kätevä pakettien etsimisessä ja tutkiskelemisessa (ja parissa muussakin asiassa joita ei käsitellä tässä). hakutoimintoihin riittää mainiosti käyttäjän oikeudet.

paketin hakeminen asennettavissa olevista paketeista (hakee annettua merkkijonoa oletuksena myös pakettien pitkistä kuvauksista):
Koodia: [Valitse]
$ apt-cache search <hakuehto>hakuehdoksi käyvät myös regular expressionit jos niitä sattuu osaamaan käyttää.

sama kuin edellinen, mutta vain pakettien nimistä:
Koodia: [Valitse]
$ apt-cache search --names-only <hakuehto>
paketin tietojen näyttäminen (versio, pitkä kuvaus, riippuvuudet, ...):
Koodia: [Valitse]
$ apt-cache show paketti

apt-file:
apt-file on puhtaasti etsintätyökalu jolla voi hakea tietoa pakettien sisältämistä tiedostoista, mutta toisin kuin dpkg:n tapauksessa, paketin ei tarvitse olla asennettuna jotta sen tietoja olisi mahdollista kysellä. apt-file ei asennu oletuksena, eikä vaadi pääkäyttäjän oikeuksia. apt-file on erityisen kätevä esimerkiksi silloin, jos joku paketinhallinnan ulkopuolelta asennettu ohjelma ei suostu käynnistymään koska ei löydä jotain tietyn nimistä tiedostoa.

apt-file asennetaan kuten muutkin softat ja se löytyy paketista apt-file:
Koodia: [Valitse]
# apt-get install apt-file
aluksi (ja välillä muutenkin) apt-filen tietokanta pitää päivittää:
Koodia: [Valitse]
# apt-file update
tiedoston etsiminen kaikista saatavilla olevista paketeista:
Koodia: [Valitse]
$ apt-file search <tiedosto>
paketin sisällön listaaminen:
Koodia: [Valitse]
$ apt-file list <paketti>
paketin hallinta komentoriviltä on suhteellisen helppoa ja mahdollisuuksia on enemmän kuin graafisella puolella tulee koskaan olemaan. jopa tässä pintapuolisessa esittelyssä esiintyy asioita joita graafisella puolella on mahdoton tai ainakin hankala tehdä. komentorivipohjaisen paketinhallinnan opettelu ei ole muutenkaan turhaa, sillä se antaa edellytykset mm. koneen helppoon hallitsemiseen etänä ja riippumattomuuteen tietystä paketinhallinnan front-endistä.
« Viimeksi muokattu: 16.08.08 - klo:14.38 kirjoittanut Kari Argillander »
Janne

teprrr

  • Käyttäjä
  • Viestejä: 304
    • Profiili
Re: Paketinhallintaa komentoriviltä
« Vastaus #1 : 01.03.06 - klo:17.47 »
Suosittelen Wajig-nimistä käyttöliittymää erinäisille apt/dpkg-ohjelmille. Hoituu mukavasti erilaisia hommia eikä tarvitse muistella mitä mikäkin komento osaa. Tsekkaa myös tekemäni pikkuhowto aiheesta.

fly

  • Käyttäjä
  • Viestejä: 265
    • Profiili
    • o_O
Re: Paketinhallintaa komentoriviltä
« Vastaus #2 : 20.03.06 - klo:22.01 »
Koodia: [Valitse]
$ apt-get moo

Minä olenkin ihmetellyt mistä tulee ilmoitus että 'this apt has super cow powers'.
Moo  ;)

Mikko

ootteko kokeillu
$ aptitude moo
$ aptitude -v moo
$ aptitude -v -v moo .. ite löysin vasta tänään  :D

tuke81

  • Käyttäjä
  • Viestejä: 1667
    • Profiili
Re: Paketinhallintaa komentoriviltä
« Vastaus #3 : 21.03.06 - klo:17.45 »
Tjooh voisit lisätä tuohon listaan apt-get clean tai apt-get autoclean. Nyt kun on tulossa tuo dapperi, niin ladattuja tiedostoja jää koneelle melkoinen nippu, itselläni vapautui tilaa gigan verran kun ajoin tuon apt-get clean:in.
Miksi tehdä jotain helposti, kun sen voi tehdä vaikeastikin...

Infeliz

  • Käyttäjä
  • Viestejä: 74
    • Profiili
Re: Paketinhallintaa komentoriviltä
« Vastaus #4 : 21.03.06 - klo:18.29 »
Koodia: [Valitse]
apt-get install -f

mikk0

  • Käyttäjä
  • Viestejä: 555
    • Profiili
Aptituden käyttö komentoriviltä
« Vastaus #5 : 19.05.06 - klo:08.57 »
Mainostetaan nyt tässä hieman aptitude-nimistä ohjelmaa, joka on parempi kuin apt-get.

Eli (lähes?) kaikki mitä voit tehdä apt-getillä, voit tehdä myös aptitudella, mutta siinä on yksi etu jonka vuoksi siirtymistä kokonaan aptituden käyttöön kannattaa harkita. Se nimittäin osaa poistaa paketin mukana automaattisesti asennetut riippuvuudet samalla kun paketti poistetaan.

Kuvittele seuraava tilanne: olet asentanut Ubuntun ja haluat kokeilla KDE-työpöytää. Voit asentaa paketin kde (tai kubuntu-desktop) hyvin helposti käyttäen apt-getiä. Mutta entä jos kokeiltuasi tuota huomaat että haluatkin siitä eroon? KDE asentaa riippuvuuksina niin paljon muita ohjelmia, että niiden kaikkien kaivaminen esiin käsin on huomattavan vaikeaa.

Aptituden avulla tämän voi tehdä seuraavasti:

Päivitetään pakettilistat:
Koodia: [Valitse]
sudo aptitude update
Asennetaan KDE:
Koodia: [Valitse]
sudo aptitude install kde
Kokeillaan KDE:tä ja huomataan että se ei ollutkaan hyvä, joten poistetaan se:
Koodia: [Valitse]
sudo aptitude purge kdeSamalla häviää kaikki automaattisestikin asennetut riippuvuudet. Helppoa!

Mikko

edit: muutettu remove purgeksi
« Viimeksi muokattu: 19.05.06 - klo:11.07 kirjoittanut mikk0 »

Mikko Saarinen

mikk0

  • Käyttäjä
  • Viestejä: 555
    • Profiili
Re: Paketinhallintaa komentoriviltä
« Vastaus #6 : 19.05.06 - klo:10.25 »
Lisäinfoa aptitudesta: http://twiki.iwethey.org/twiki/bin/view/Main/AptitudeIsBetterthanApt

Täytyy myöntää että allekirjoittanutkin asensi kubuntu-desktopin ihan apt-getillä, jota myöhemmin sain sitten katua. No, virheistä oppii - tai sitten ei  ;)

Mikko

P.S. kuten tuolla wikissäkin sanotaan - this aptitude does not have super cow powers, joten aptitude moo ei sitten toimi. Näköjään kaikkea ei voi saada  ;)
« Viimeksi muokattu: 19.05.06 - klo:11.13 kirjoittanut mikk0 »

Mikko Saarinen

raimo

  • Käyttäjä
  • Viestejä: 4268
  • openSUSE Tumbleweed
    • Profiili
Re: Paketinhallintaa komentoriviltä
« Vastaus #7 : 24.05.06 - klo:11.52 »
P.S. kuten tuolla wikissäkin sanotaan - this aptitude does not have super cow powers, joten aptitude moo ei sitten toimi. Näköjään kaikkea ei voi saada  ;)
Hmm, sitkeys palkitaan, elikkä toimii se.
Aptitude antautuu kun sitä vähän rääkkää:  ;D
Okay, okay, if I give you an Easter Egg, will you go away? :D



[ylläpito on poistanut liitteen]
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski

Melmacian

  • Käyttäjä
  • Viestejä: 868
  • Ubuntu Hardy
    • Profiili
Re: Paketinhallintaa komentoriviltä
« Vastaus #8 : 24.05.06 - klo:12.00 »
P.S. kuten tuolla wikissäkin sanotaan - this aptitude does not have super cow powers, joten aptitude moo ei sitten toimi. Näköjään kaikkea ei voi saada  ;)
Hmm, sitkeys palkitaan, elikkä toimii se.
Aptitude antautuu kun sitä vähän rääkkää:  ;D
Okay, okay, if I give you an Easter Egg, will you go away? :D
Missasit viimeisen :P

Koodia: [Valitse]
epeli@kumikone:~$ aptitude moo -vvvvvv
What is it?  It's an elephant being eaten by a snake, of course.

lompolo

  • Käyttäjä
  • Viestejä: 852
    • Profiili
Re: Paketinhallintaa komentoriviltä
« Vastaus #9 : 26.05.06 - klo:23.47 »
Tämä toimii komentoriviltä ja tiedostoselaimesta (nautilus)

Gdebi:
Gdebi on ohjelma jota voisi käyttää jos joutuu asentamaan ohjelmia pakettivaraston ulkopuolelta. Se käyttää aptia lataamaan asennettavan ohjelman riippuvuudet pakettivarastosta, mikäli mahdollista. Dapperissa (6.06) on gdebi asennettuna valmiiksi. Tiedostoselain asentaa .deb paketin gdebin avulla, kun pakettia tuplaklikkaa.

jis

  • Käyttäjä
  • Viestejä: 55
    • Profiili
    • Oma kotisivu
Re: Paketinhallintaa komentoriviltä
« Vastaus #10 : 21.12.06 - klo:00.29 »
Edgyssä on kai joku autoremove -optio apt-get -ohjelmalle, jolla saa kanssa ylimääräiset riippuvuudet vek. Vaan voikohan noita apt-get ja aptitudea sitten käyttää sekaisin?

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Re: Paketinhallintaa komentoriviltä
« Vastaus #11 : 21.12.06 - klo:19.58 »
Vaan voikohan noita apt-get ja aptitudea sitten käyttää sekaisin?

kyllä niitä voi käyttää ihan surutta sekaisin. molemmat ovat vain edusohjelmia debianin/ubuntun paketinhallinnalle, tarjoten kumpikin oman settinsä ominaisuuksia perustyökalujen päälle (lähinnä riippuvuuksien automaattista hallintaa, pakettien noutamista ym.).

Janne

Kari Argillander

  • Käyttäjä
  • Viestejä: 437
  • Kubuntu - Hardy
    • Profiili
Vs: Paketinhallintaa komentoriviltä
« Vastaus #12 : 13.08.08 - klo:23.43 »
Tämä ohje on siirretty osittain tänne http://linux.fi/index.php/Dpkg ja http://linux.fi/index.php/Apt tuonne.
Kaikkea täällä sanomaani saa käyttää public domain lisenssillä. Lainauksia ei saa käyttää ellei lainauksen lähde sitä salli. Tiedostoja ei saa käyttää ellei sitä erikseen sallita.