apt - a dpkg egyik frontendje.


1. Bevezető
2. Telepítés
3. A source.list tartalma
4. Használjunk proxy-t!
5. Az update
6. Egy upgrade bemutatása
7. Takarítás
8. Csomagtelepítés az apt használatával
9. Megúntuk! Huss, kivele! (remove, purge)
 

Mi is az az apt?

Az apt egy szuperjó csomagkezelő! Baár ez így nem teljesen igaz, hiszen az apt igazából egy előtét program a dpkg-nak. Segítségével lehet a csomagokat feltelepíteni úgy, hogy az apt elintézi nekünk a függőségeket ami egy igen igen kényelmes dolog. A csomagok forrásának különböző helyeket adhatunk meg mint például CD-ROM, hdd vagy ftp:// vagy akár http://. A legkényelmesebb dolog talán a már feltelepített csomagok up-to-date frissítése. Ezáltal naprakésszé tehetjük rendszerünket, ebben rejlik talán a Debian legnagyobb előnye. Ne is ragozzuk tovább felejtsük el a dselect programot és nézzük mit is kell tenni az apt használatához:
 

Az apt telepítése:

Ha nincs fennt, akkor CD-ről vagy akár innen:
 ftp://ftp.fsn.hu/debian/dists/potato/main/binary-i386/base/apt_0.3.19.deb
beszerezzük az apt csomagot. Ezután telepítjük:
proba# dpkg -i ./apt_0.3.19.deb
Selecting previously deselected package apt.
(Reading database ... 24655 files and directories currently installed.)
Unpacking apt (from ./apt_0.3.19.deb) ...
Setting up apt (0.3.19) ...
/etc/apt/sources.list does not exist; creating a default setup.
cp: /usr/doc/apt/examples/sources.list: No such file or directory
dpkg: error processing apt (--install):
 subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
 apt
proba#
Huhh, itt valami baj van! Semmi baj, csinaljuk meg kézzel azt a siurces.list file-t! Ime:

A source.list:

proba:/usr/doc/apt# cd /etc/apt
proba:/etc/apt# ls -l
total 0
proba:/etc/apt# touch sources.list
proba:/etc/apt# ls -l
-rw-r--r--    1 root     root         1277 Oct 16 13:27 sources.list
proba:/etc/apt# mcedit ./sources.list
(vagy ki-ki ízlése, lehetősége szerint, kinek mi a kedvenc editora....)
A file tartalma ez legyen:
# Use for a local mirror - remove the ftp1 http lines for the bits
# your mirror contains.
# deb file:/your/mirror/here/debian stable main contrib non-free
# See sources.list(5) for more information, especial
# Remember that you can only use http, ftp or file URIs
#deb http://http.us.debian.org/debian stable main contrib non-free
#deb http://non-us.debian.org/debian-non-US stable non-US
deb ftp://ftp.fsn.hu/debian potato main contrib non-free
deb ftp://ftp.fsn.hu/debian-non-US potato non-US/main non-US/contrib non-US/non-free
deb ftp://ftp.fsn.hu/debian dists/potato-proposed-updates/
deb ftp://ftp.fsn.hu/debian-security potato updates/main updates/contrib updates/non-free
Mint láthatjuk az ftp.fsn.hu gépen hivatkozunk a potato (és nem a stable, bár most a potato a stable verzió, tulajdonképpen a stable úgyis csak egy symlink a potato-ra) verzióra.
Négy részből áll, hiszen szerencsénkre mindent tükröznek (bra a server karbantartója) az fsn.hu-n. Így ott vannak a binárisok, a non-US, a stabil válltozat kiadása után még esetleges javítócsomagok amik a potrato-proposed-updates -ben vannak, és a security upgradek is. Sajnos elég terhelt a gép ha ftp:// vel nem enged be mert épp televan (200 usert enged be jelenleg), akkor használhatjuk a http:// protokollon keresztül is:
# Use for a local mirror - remove the ftp1 http lines for the bits
# your mirror contains.
# deb file:/your/mirror/here/debian stable main contrib non-free
# See sources.list(5) for more information, especial
# Remember that you can only use http, ftp or file URIs
#deb http://http.us.debian.org/debian stable main contrib non-free
#deb http://non-us.debian.org/debian-non-US stable non-US
deb http://ftp.fsn.hu/debian potato main contrib non-free
deb http://ftp.fsn.hu/debian-non-US potato non-US/main non-US/contrib non-US/non-free
deb http://ftp.fsn.hu/debian dists/potato-proposed-updates/
deb http://ftp.fsn.hu/debian-security potato updates/main updates/contrib updates/non-free

Ha van a helyi halozatunkon proxy

vagy máshol ahol használni szeretnénk akkor az
/etc/profile
file-ba adjuk meg a proxy-t:
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games"

if [ "$BASH" ]; then
  PS1='\u@\h:\w\$ '
else
  if [ "`id -u`" -eq 0 ]; then
    PS1='# '
  else
    PS1='$ '
  fi
fi

export PATH PS1

umask 022

http_proxy=http://proxy.mainet.hu:3128/
ftp_proxy=http://proxy.mainet.hu:3128/
export http_proxy
export ftp_proxy

Ezáltal az apt azt használni fogja. Ez például ha több gépünk van csökkenti a hálózati forgalmat és gyorsítja az update/upgrade procedurát!
Próbáljuk ki!
 
 

Az update:

prpba:/etc# apt-get update
Get:1 http://ftp.fsn.hu potato/main Packages [838kB]
Get:2 http://ftp.fsn.hu potato/main Release [93B]
Get:3 http://ftp.fsn.hu potato/contrib Packages [29.8kB]
Get:4 http://ftp.fsn.hu potato/contrib Release [96B]
Get:5 http://ftp.fsn.hu potato/non-free Packages [75.1kB]
Get:6 http://ftp.fsn.hu potato/non-free Release [97B]
Get:7 http://ftp.fsn.hu potato/non-US/main Packages [14.9kB]
Get:8 http://ftp.fsn.hu potato/non-US/main Release [100B]
Get:9 http://ftp.fsn.hu potato/non-US/contrib Packages [20B]
Get:10 http://ftp.fsn.hu potato/non-US/contrib Release [103B]
Get:11 http://ftp.fsn.hu potato/non-US/non-free Packages [6073B]
Get:12 http://ftp.fsn.hu potato/non-US/non-free Release [104B]
Get:13 http://ftp.fsn.hu dists/potato-proposed-updates/ Packages [3201B]
Get:14 http://ftp.fsn.hu dists/potato-proposed-updates/ Release [153B]
Get:15 http://ftp.fsn.hu potato/updates/main Packages [19.3kB]
Get:16 http://ftp.fsn.hu potato/updates/main Release [111B]
Get:17 http://ftp.fsn.hu potato/updates/contrib Packages [29B]
Get:18 http://ftp.fsn.hu potato/updates/contrib Release [114B]
Get:19 http://ftp.fsn.hu potato/updates/non-free Packages [3625B]
Get:20 http://ftp.fsn.hu potato/updates/non-free Release [115B]
Fetched 991kB in 27s (36.3kB/s)
Reading Package Lists... Done
Building Dependency Tree... Done
proba:/etc#
Ezzel megvolnánk! Kiváncsi vagyok mennyit segít a squid/cache? Töröljük ki az apt nyilvántartását:
proba# rm /var/state/apt/lists/*.*
proba# ls -l /var/state/apt/lists
total 2
-rw-r-----    1 root     root            0 Nov 12 18:50 lock
drwxr-xr-x    2 root     root         2048 Nov 12 18:50 partial
proba#
Ezután újrakérjük a csomagok update-elését:
proba# apt-get update
Get:1 http://ftp.fsn.hu potato/main Packages [838kB]
Get:2 http://ftp.fsn.hu potato/main Release [93B]
Get:3 http://ftp.fsn.hu potato/contrib Packages [29.8kB]
Get:4 http://ftp.fsn.hu potato/contrib Release [96B]
Get:5 http://ftp.fsn.hu potato/non-free Packages [75.1kB]
Get:6 http://ftp.fsn.hu potato/non-free Release [97B]
Get:7 http://ftp.fsn.hu potato/non-US/main Packages [14.9kB]
Get:8 http://ftp.fsn.hu potato/non-US/main Release [100B]
Get:9 http://ftp.fsn.hu potato/non-US/contrib Packages [20B]
Get:10 http://ftp.fsn.hu potato/non-US/contrib Release [103B]
Get:11 http://ftp.fsn.hu potato/non-US/non-free Packages [6073B]
Get:12 http://ftp.fsn.hu potato/non-US/non-free Release [104B]
Get:13 http://ftp.fsn.hu dists/potato-proposed-updates/ Packages [3201B]
Get:14 http://ftp.fsn.hu dists/potato-proposed-updates/ Release [153B]
Get:15 http://ftp.fsn.hu potato/updates/main Packages [19.3kB]
Get:16 http://ftp.fsn.hu potato/updates/main Release [111B]
Get:17 http://ftp.fsn.hu potato/updates/contrib Packages [29B]
Get:18 http://ftp.fsn.hu potato/updates/contrib Release [114B]
Get:19 http://ftp.fsn.hu potato/updates/non-free Packages [3625B]
Get:20 http://ftp.fsn.hu potato/updates/non-free Release [115B]
Fetched 991kB in 8s (122kB/s)
Reading Package Lists... Done
Building Dependency Tree... Done
proba#
Ez egy lassú gép volt, de így is jól látszik, hogy sokat segít egy helyi cache.

Upgrade

Ezután lehet a csomagok upgradelését kérni, hiszen a csomaglistát már frissítettük, tehát az már az új csomagokat tartalmazza.
proba# apt-get upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
2 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 892kB of archives. After unpacking 0B will be used.
Do you want to continue? [Y/n]
Get:1 http://ftp.fsn.hu potato/updates/main dnsutils 1:8.2.2p7-1 [336kB]
Get:2 http://ftp.fsn.hu potato/updates/main bind 1:8.2.2p7-1 [556kB]
Fetched 892kB in 1s (471kB/s)
(Reading database ... 19871 files and directories currently installed.)
Preparing to replace dnsutils 1:8.2.2p5-11 (using .../dnsutils_1%3a8.2.2p7-1_i386.deb) ...
Unpacking replacement dnsutils ...
Preparing to replace bind 1:8.2.2p5-11 (using .../bind_1%3a8.2.2p7-1_i386.deb) ...
Unpacking replacement bind ...
Setting up dnsutils (8.2.2p7-1) ...

Setting up bind (8.2.2p7-1) ...

Restarting named... new pid is 13598

proba#

Na ez gyorsan megvolt, hiszen elárulhatom, ezt már egy másik gépen megcsináltam és így a squid-ből jöttek a csomagok. Impresszív! ;-)
Ráadásul most csak 2 csomagot kellett frissíteni. Nincs ez ám mindig így. Főleg a disztribució stable-ba tétele után szoktak több- kevesebb csomagon javítani. A mostani DNS valószínűleg valami biztonsági bug miatt került a security-be azaz a potato/updates -be. Nyugodtak lehetünk, a fiúk tegnap kijavítottak valamit és mi már élvezzük annak előnyeit.

Tisztogatás magunk után:

Ezután persze illik törölni amitket letöltöttünk, ezt a clean paranccsal intézzük el:
proba# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1             523M  353M  143M  71% /
proba# apt-get clean
proba# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1             523M  352M  144M  71% /
proba#
Jól látszik, hogy felszabadult a két csomag által elfoglalt hely. Ennyivel is beljebb vagyunk.
 

Csomagtelepítés az apt programmal:

Mit is telepítsünk fel? Megvan, legyen az pl. az fvwm95 nevű ablakkezelő. Roppant egyszerű a dolgunk, csak beírjuk, hogy:
proba# apt-get install fvwm95
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  fvwm-common xpm4g
The following NEW packages will be installed:
  fvwm-common fvwm95 xpm4g
0 packages upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 904kB of archives. After unpacking 2576kB will be used.
Do you want to continue? [Y/n]
Ahha! Na itt jön a kényelem egyenesen velünk szembe. Ugyanis az apt felismerte illetve megtalálta a csomaglistában, hogy mi mit szeretnénk feltenni, de rögtön meg is nézte, hogy a csomag összeállítója szerint milyen csomagok feltételei a helyes működésnek. Ezeket rögtön kiolvasta és összehasonlította a gépünkön található csomagokkal. Ezek szerint nekünk nincs fvwm-common és xpm4g! Ezeket extra csomagoknak jelezte, azaz össszességében: 3 új csomagot fog felinstallálni. Kiírja még, hogy mennyit fog letölteni, és kicsomagolás után mennyi winyókapacitást fog az elemészteni. Akarjuk? Igen!:
Get:1 http://ftp.fsn.hu potato/main fvwm-common 2.2.4-2 [290kB]
Get:2 http://ftp.fsn.hu potato/main fvwm95 2.0.43ba-15 [559kB]
Get:3 http://ftp.fsn.hu potato/main xpm4g 3.4k-5 [55.0kB]
Fetched 904kB in 60s (15.0kB/s)
Selecting previously deselected package xpm4g.
(Reading database ... 19871 files and directories currently installed.)
Unpacking xpm4g (from .../archives/xpm4g_3.4k-5_i386.deb) ...
Selecting previously deselected package fvwm-common.
Unpacking fvwm-common (from .../fvwm-common_2.2.4-2_i386.deb) ...
Selecting previously deselected package fvwm95.
Unpacking fvwm95 (from .../fvwm95_2.0.43ba-15_i386.deb) ...
Setting up xpm4g (3.4k-5) ...

Setting up fvwm-common (2.2.4-2) ...

Setting up fvwm95 (2.0.43ba-15) ...

proba#

Most akár használhatnánk is a frissiben feltett csomagokat, de mivel ez csak pelda volt, es egyebkent sem hasznalunk ilyesmit, sürgősen és visszavonhatatlanul töröljük le azt!

Megúntuk! Huss kivele! (remove purge)

Ebben az esetben semmi mást nem kell tennünk mint az apt-get remove csomagnév parancsot használni, esetünkben így:
proba# apt-get remove fvwm95
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  fvwm95
0 packages upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
Need to get 0B of archives. After unpacking 1231kB will be freed.
Do you want to continue? [Y/n]
Hoppszlá! Baj van, hiszen most még tudom, hogy a feltelepítéskor ez még magával húzott két csomagot, tehát azt egyenként leszedhetem vagy egyben, így:
proba# apt-get remove fvwm-common xpm4g fvwm95
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  fvwm-common fvwm95 xpm4g
0 packages upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
Need to get 0B of archives. After unpacking 2576kB will be freed.
Do you want to continue? [Y/n]
Mondjuk itt is azt, hogy No, csak azért, hogy megmutathassam mit csinaljunk 1 hónap múlva, mikor már nem emlékezhetünk, hogy mit is tettünk fel, illetve az apt miket tett még fel pluszban.
Szóval az fvwm95 szívünknek nem kedves, ezért le szeretnénk törölni, nézzük meg mivel is dependel!?
Nézzük meg egy editorral a
/var/state/apt/lists/ftp.fsn.hu_debian_dists_potato_main_binary-i386_Packages
file-t, és keressünk rá a
ge: fvwm95
-re. Ha sikeresek vagyunk akkor ezt a részletet megtaláljuk:
Package: fvwm95
Priority: optional
Section: x11
Installed-Size: 1202
Maintainer: Daniel Martin <fizbin@debian.org>
Architecture: i386
Version: 2.0.43ba-15
Provides: x-window-manager
Depends: libc6 (>= 2.1.2), libncurses5, libreadline4 (>= 4.1), libxpm4, xlib6g (>= 3.3.6), fvwm-common
Recommends: fvwm95-icons, xbase-clients, xterm, xcontrib, menu (>= 1.5-1)
Filename: dists/potato/main/binary-i386/x11/fvwm95_2.0.43ba-15.deb
Size: 558974
MD5sum: e1bc0a376810d07f90ccf12f1f251a71
Description: Win95 lookalike Window Manager for X
 fvwm95 is a Window Manager for the X Window System, configured
 to look like a win95 user interface.
 Fvwm95 is no longer maintained upstream; it's main continued
 advantage is that it has low resource requirements compared to
 some of the other window managers that attempt to look somewhat
 like windows 95. (TM)
Tehát a Package: fvwm95 sortól kell nekünk, hiszen ez szól a keresett csomagról. Itt keressük meg a Depends: kezdetű sort:
Depends: libc6 (>= 2.1.2), libncurses5, libreadline4 (>= 4.1), libxpm4, xlib6g (>= 3.3.6), fvwm-common
Ebből látszik, hogy libc6 kell más programnak is, ncurses is, readline az is valószínűleg,de fvwm-common az már szinte tutira nem kell masnak csak az fvwm-eknek! Az xlib6g és a libxpm4 az kérdéses, csak próba alapján dönthető el, íme:
proba# apt-get remove xlib6g
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  dotfile dotfile-emacs fvwm-common fvwm95 libgtk1 libgtk1.2 scotty tix41 tk8.0 tk8.2 xlib6g
0 packages upgraded, 0 newly installed, 11 to remove and 0 not upgraded.
Need to get 0B of archives. After unpacking 25.1MB will be freed.
Do you want to continue? [Y/n]
Hűha, ez sok csomagnak kell, inkább nyomjunk gyorsan egy No-t! Akkor ez marad. Nézzük a másikat:
proba# apt-get remove libxpm4
Reading Package Lists... Done
Building Dependency Tree... Done
Note, selecting xpm4g instead of libxpm4
The following packages will be REMOVED:
  fvwm-common fvwm95 xpm4g
0 packages upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
Need to get 0B of archives. After unpacking 2576kB will be freed.
Do you want to continue? [Y/n]
BINGÓ! Mekkora szerencse! Hiszen nekünk pont ezek nem kellenek! Mégis nyomjunk most is No-t! Miért? Nem másért mert mi alapos takarítást szeretnénk, tehát kell még a --purge paraméter is:
proba# apt-get remove --purge libxpm4
Reading Package Lists... Done
Building Dependency Tree... Done
Note, selecting xpm4g instead of libxpm4
The following packages will be REMOVED:
  fvwm-common* fvwm95* xpm4g*
0 packages upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
Need to get 0B of archives. After unpacking 2576kB will be freed.
Do you want to continue? [Y/n]
(Reading database ... 20262 files and directories currently installed.)
Removing fvwm95 ...
dpkg - warning: while removing fvwm95, directory `/etc/X11/fvwm95' not empty so not removed.
Purging configuration files for fvwm95 ...
grep: /etc/X11/window-managers: No such file or directory
Removing fvwm-common ...
Removing xpm4g ...
proba#
Kész! Röviden ennyit szerettem volna az apt-ről írni. Persze van még egy két lehetőség amit még csak nem is említettem, de alapvetően erre használható az apt.


Budapest, 2000.11.10. Endrész Attila