Apt

Allikas: Kuutõrvaja

Sissejuhatus

  • apt-get : APT is acronym for Advanced Package Tool. It supports installing packages over internet using ftp or http protocols. You can also upgrade all packages in a single operations, which makes it even more attractive.
  • dpkg : Debian packaging tool which can be use to install, query, uninstall packages.

Gui tools: You can also try GUI based or high level interface to the Debian GNU/Linux package system. Following list summaries them:

apt-get on debiani pakkide paigaldamise ning uuendamise abivahendiseks üle võrgu nagu on up2date punamütsikesel ja pkg_add -r <nimi> fbsd'l

http://www.debianhelp.co.uk/pkgadm.htm

pakkide otsingukohad on defineeritud failis

/etc/apt/sources.list

ehk siis serverid kust ta üritab neid tirida

Seal on tüüpilised read tavaliselt näiteks stiilis

deb http://ftp.ee.debian.org/debian/ etch main
deb-src http://ftp.ee.debian.org/debian/ etch main

deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib

NB! enne seda faili muutma ning tarkvara linkide asukohti lisama hakkamist tasub olla väga hoolikas, hakates lisama uuemate tarkvaraversioonide hankimise soovis mitteametlikke aadresse võib viia selleni ,et erinevate tarkvarade versioonid ei klapi enam kokku mis võib lõppeda süsteemi katki tegemisega.

Kõiki apti seadistusi ja võtmeid näeb käsuga

# apt-config dump

Kõik tiritud paketid lähevad kausta

/var/cache/apt/archives/

apt-get kasutamine

kohe alguses tuleks öelda ,et apt'il on olemas ka pseudograafikaga konfimisproge mida saab kasutada käsuga apt-setup

selleks ,et mingit tarkvara installeerida tuleb anda käsk

# apt-get install <nimi>

selleks ,et otsida nimejärgi mis pakke olemas on serverites siis

# apt-cache dump <nimi>

või siis lihtsalt

# apt-cache dump |grep <nimi>

kuna see käsk näitab lisaks ka kõiki neid pakke mis enda tööks vajavad otsitud faili siis võib list üsnagi pikaks minna ning on soovitatav more kasutamine :)

# apt-get update

sünkroniseerib pakkide indekseid mis tiritud sources.list. faili järgi

# apt-get upgrade

selleks ,et installida uuemad versioonid kõigist pakkidest mis on hetkel süsteem installitud

Kui ei julge kohe upgrade sisse lüüa (nt vana server, pole kaua uuendatud) on hea vaadata mida see upgrade käsk teeb, selleks võti --simulate upgrade

# apt-get --simulate upgrade
Reading package lists... Done
Building dependency tree... Done
The following packages have been kept back:
  openssh-client openssh-server
The following packages will be upgraded:
  libmysqlclient15off libssl-dev libssl0.9.8 linux-image-2.6.18-6-amd64 mysql-client-5.0 mysql-common mysql-server mysql-server-5.0 openssl
9 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Inst linux-image-2.6.18-6-amd64 [2.6.18.dfsg.1-24etch3] (2.6.18.dfsg.1-24etch4 Debian-Security:4.0/oldstable)
Inst mysql-common [5.0.32-7etch10] (5.0.32-7etch11 Debian-Security:4.0/oldstable)
Inst mysql-server [5.0.32-7etch10] (5.0.32-7etch11 Debian-Security:4.0/oldstable)
Inst libmysqlclient15off [5.0.32-7etch10] (5.0.32-7etch11 Debian-Security:4.0/oldstable)
Inst mysql-client-5.0 [5.0.32-7etch10] (5.0.32-7etch11 Debian-Security:4.0/oldstable)
Conf mysql-common (5.0.32-7etch11 Debian-Security:4.0/oldstable)
Inst mysql-server-5.0 [5.0.32-7etch10] (5.0.32-7etch11 Debian-Security:4.0/oldstable)
Inst libssl-dev [0.9.8c-4etch5] (0.9.8c-4etch9 Debian-Security:4.0/oldstable) []
Inst libssl0.9.8 [0.9.8c-4etch5] (0.9.8c-4etch9 Debian-Security:4.0/oldstable)
Inst openssl [0.9.8c-4etch5] (0.9.8c-4etch9 Debian-Security:4.0/oldstable)
Conf linux-image-2.6.18-6-amd64 (2.6.18.dfsg.1-24etch4 Debian-Security:4.0/oldstable)
Conf libmysqlclient15off (5.0.32-7etch11 Debian-Security:4.0/oldstable)
Conf mysql-client-5.0 (5.0.32-7etch11 Debian-Security:4.0/oldstable)
Conf mysql-server-5.0 (5.0.32-7etch11 Debian-Security:4.0/oldstable)
Conf mysql-server (5.0.32-7etch11 Debian-Security:4.0/oldstable)
Conf libssl0.9.8 (0.9.8c-4etch9 Debian-Security:4.0/oldstable)
Conf libssl-dev (0.9.8c-4etch9 Debian-Security:4.0/oldstable)
Conf openssl (0.9.8c-4etch9 Debian-Security:4.0/oldstable)

Ning veel..

# apt-get remove <nimi>

kah üks tähtis asi täpsemalt ei ole vaja vist seletada :)

veel üks apt-get'i huviav võti on --assume-yes see lihtsalt iga küsimuse peale ütleb alati YES pole soovitatav siiski kasutada kui ei tea täpselt mida sinult küsitakse

dpkg kasutamine

Selleks, et installida deb laiendiga paketti tuleb anda käsk

# dpkg -i fail.deb

Selline juhtum võib tulla ette kui pole võimalik kasutada võrku kuid vaja paigaldada mõni tarkvara

Nimekirja kõigist pakettidest saab käsuga:

$ dpkg --get-selections
adduser                                         install
alsa-base                                       install
alsa-utils                                      install
apache2                                         install
apache2-mpm-prefork                             install
apache2-utils                                   install
apache2.2-common                                install
apt                                             install
apt-utils                                       install

Mingile paketile kuuluvaid faile näeb

# dpkg -L php5-gd
/.
/usr
/usr/lib
/usr/lib/php5
/usr/lib/php5/20060613
/usr/lib/php5/20060613/gd.so
/usr/share
/usr/share/doc
/etc
/etc/php5
/etc/php5/conf.d
/etc/php5/conf.d/gd.ini
/usr/share/doc/php5-gd

Tundub, et oleks tark tegu peale värske debiani paigaldamist teha selle baaspakettidest mingisugune nimekiri endale root kausta

debfoster paistab olevat ka hea abiline igasuguse kõntsa debianist välja peksmiseks.

Peale tema kasutamist tuleb anda käsk apt-get autoremove

Üks hea võimalus on sorteerida pakette nende prioriteetide järgi

# dpkg-query -Wf '${Package;-40}${Priority}\n' | sort -b -k2,2 -k1,1 | less

Mis väljastab tulemuse

libnet-libidn-perl                      optional
libnet-ssleay-perl                      optional
libnet-telnet-perl                      optional
..
libldap-2.4-2                           standard
liblockfile1                            standard
liblwres60                              standard
libmagic1                               standard
..
libnet-libidn-perl                      optional
libnet-ssleay-perl                      optional
libnet-telnet-perl                      optional

jne

Ehk siis, et eemaldada kõik extra ja optional lippudega paketid

# apt-get --simulate purge $(dpkg-query -Wf '${Package;-40}${Priority}\n' | \ 
  awk '$2 ~ /optional|extra/ { print $1 }')

Selleks, et antud käsk paketid reaalselt eemaldaks tuleb näitest välja korjata --simulate võti ;)

Nii koleda käsu peale ei piisa muide lihtsast jah sõnast vaid tuleb trükkida Yes, do as I say! mis võib esialgu harjumatu olla.

Näiteks on meil vaja otsida ühte kindlat faili:

Possible missing firmware /lib/firmware/bnx2/bnx2-rv2p-09-5.0.0.j3.fw for module bnx2

# apt-get install apt-file
# apt-file update

Misjärel

# apt-file find /lib/firmware/bnx2/bnx2-mips-09-5.0.0.j3.fw
firmware-bnx2: /lib/firmware/bnx2/bnx2-mips-09-5.0.0.j3.fw

Aptitude

# aptitude search tgt
p   istgt                                                                  - iSCSI userspace target daemon for Unix-like operating  systems                   
p   libwebkitgtk-1.0-0                                                     - Web content engine library for GTK+                                             
p   libwebkitgtk-1.0-0-dbg                                                 - Web content engine library for GTK+ - Debugging symbols                         
p   libwebkitgtk-1.0-common                                                - Web content engine library for GTK+ - data files                                
p   libwebkitgtk-3.0-0                                                     - Web content engine library for GTK+                                             
p   libwebkitgtk-3.0-0-dbg                                                 - Web content engine library for GTK+ - Debugging symbols                         
p   libwebkitgtk-3.0-common                                                - Web content engine library for GTK+ - data files                                
p   libwebkitgtk-3.0-dev                                                   - Web content engine library for GTK+ - Development files                         
p   libwebkitgtk-dev                                                       - Web content engine library for GTK+ - Development files                         
p   tgt                                                                    - Linux SCSI target user-space tools

Lingid

https://wiki.itcollege.ee/index.php/Apt

https://wiki.itcollege.ee/index.php/Tarkvara_haldus_apt-get_baasil