- A Linux története
- Linux könyvtárszerkezet
- Linux parancssor
- Debian GNU/Linux csomagkezelés
- Linux Shell programozás
Tartalomjegyzék
Bevezetés
A csomagkezelés a dpkg programmal valósítható meg. Ennek a csomagnak több burkoló programja is van, ami megkönnyíti a használatát. Ilyen burkolóprogram az apt rendszer, vagy az aptitude. Az aptitude rendelkezik curses alapú felülete is. Grafikus felületen a Synaptic csomagkezelő használható.
dpkg burkoló programok:
- dselect
- tasksel
- apt-get
- aptitude
- apt
- Synaptic (GUI)
Az RPM alapú rendszerek (RedHat, CentOS, Fedora, SUSE) csomagkezelője az rpm parancs. Ennek egyik burkolóprogramja a yum. Az alábbi leírásban az apt renszer parancsait vesszük sorra. Ha RPM alapú rendszered van, akkor nézz utána a yum használatának. SUSE alap rendszereknél yast vagy yast2 paranccsal telepíthetsz.
A Debian GNU/Linux egyik előtétprogramja az apt csomagban található. A telepítéshez kezdetben az apt-get parancsot használhattuk. A csomagban azóta megjelent egy apt parancs is, amely az apt-get parancs egy továbbfejlesztett verziója.
Az apt a Advanced Packaging Tool rövidítése.
apt
Telepítés
Frissítsük a csomaginformációkat, majd telepítsünk:
apt update apt install mc
Telepítés előtt azonban érdemes frissíteni a csomaginformációkat a következő paranccsal:
apt update
A frissítést elég egyszer elvégezni egy nap.
Csomagok telepítése. Például:
apt install mc
Keresés
Csomagok keresése egy bizonyos témában:
apt search email
Csomag törlése
apt remove csomagnév
apt remove [--purge] <csomagnév>
Ha –purge kapcsolót is használjuk, akkor függőségként telepített csomagokat leszedhetjük a következő paranccsal:
apt autoremove
Archív törlése
A letöltött csomagok törlése:
apt-get clean
Ez valójában a /var/cache/apt/archives könyvtár tartalmát törli.
Leírás
Csomag leírás mutatása:
apt show <csomag>
Letöltés telepítés nélkül
Ha szeretnénk belenézi egy csomagba telepítés nélkül akkor jól jön a -d vagy –dowload-only kapcsoló. Ha csomag már telepítve van, akkor ez nem fog működni vagyis nem tölti le a kért csomagot. A –reinstall kapcsolóval kombinálva azonban a kívánt eredményt kapjuk. A csomag mindenképen letöltődik, de nem lesz újratelepítve:
apt-get install --download-only --reinstall csomagnév
A –download-only helyett lehet -d kapcsoló is.
Telepítettség lekérdezése
Szintaxis:
apt list csomagnév
A futtatáshoz nem szükséges rendszergazdai jog.
$ apt list mc Felsorolás... Kész mc/stable,now 3:4.8.18-1 amd64 [telepítve]
apt-cache
Függőségek
apt depends apache2
Keresés
apt search ascii
Szűréssel megmondhatjuk, hogy szeretnénk látni azokat a sorokat, amelyek tartalmazzák az „ascii” szöveget. A leírás azonban egy sorral lejjebb van, ezért a találati előtti és utáni sorokat is szeretnénk látni:
apt search ascii | grep -B 1 -A 1 ascii
Keresés az apt-get parancshoz tartozó apt-cache paranccsal:
apt-cache search apache
Csomaginformációk
Csomaginformációk lekérdezése:
apt-cache policy <csomagok>
Például:
user1@gep1:~$ apt-cache policy mc mc: Telepítve: 3:4.8.18-1 Jelölt: 3:4.8.18-1 Verziótáblázat: *** 3:4.8.18-1 500 500 http://ftp.bme.hu/debian stretch/main amd64 Packages 100 /var/lib/dpkg/status user1@gep1:~$
apt-file
Az apt-fil parancsról
Az apt-file parancs a csomagok keresését könnyíti meg, ha tudjuk hogy létezik egy parancs, de nem tudjuk melyik csomagban van.
Telepítés
Alapból nincs telepítve, de feltehetjük egy apt-file csomagból:
apt install apt-file
Csoamginformációk
A használathoz le kell tölteni a csomaginformációkat, hasonlóan az apt-get parancshoz:
apt-file update
A kimenet ehhez hasonló lesz:
Downloading complete file http://ftp.uk.debian.org/debian/dists/wheezy/Contents-i386.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 17.6M 100 17.6M 0 0 507k 0 0:00:35 0:00:35 --:--:-- 514k
Ezek után tudunk keresni.
Keresés példa1
Legyen például az mcrypt parancs, amit nem tudjuk milyen csomagban van. Keresünk:
apt-file search mcrypt
A kimenet általában nagyon hosszú, ezért érdemes egy lapozófájla átirányítani, vagy grep-el megszűrni.
Lapozófájlnak adjuk át:
apt-file search mcrypt | less
Szűrés a grep paranccsal:
apt-file search mcrypt | grep "bin/mcrypt"
Utóbbi esetben például csak az egyetlen releváns sort kapjuk:
mcrypt: /usr/bin/mcrypt
A kettőspont előtti rész a csomagnév, az után rész pedig, hogy telepítés után hova kerül az adott fájl.
A kimenetből tehát megtudtuk, hogy az mcrypt nevű csomagban van.
Keresés példa2
Van amikor így is több találatot kaphatunk. Nézzük például a ping parancs milyen csomagban van.
apt-file search ping | grep "bin/ping"
ctdb: /usr/bin/ping_pong ctdb-dbg: /usr/lib/debug/usr/bin/ping_pong echolot: /usr/bin/pingd inetutils-ping: /bin/ping inetutils-ping: /bin/ping6 iputils-ping: /bin/ping iputils-ping: /bin/ping6 ltp-network-test: /usr/lib/ltp/testcases/bin/ping01 ltp-network-test: /usr/lib/ltp/testcases/bin/pingpong ltp-network-test: /usr/lib/ltp/testcases/bin/pingpong6
A kimenetből kiderül, hogy két csomga is van, az egyik a inetutils-ping, a másik iputils-ping.
A dpkg -s paranccsal ki is deríthetjük melyik van telepítve:
dpkg -s inetutils-ping
Ennek kimenete például:
Az alábbi csomag: `inetutils-ping' nincs telepítve és nincs információ róla. A dpkg --info (= dpkg-deb --info) kiírja az archívum fájlokat, a dpkg --contents (= dpkg-deb --contents) a tartalmukat.
Másik csomag:
dpkg -s iputils-ping
Eredmény:
Package: iputils-ping Status: install ok installed Priority: important Section: net Installed-Size: 128 Maintainer: Noah Meyerhans <noahm@debian.org> Architecture: i386 Source: iputils Version: 3:20100418-3 Replaces: netbase (<< 4.00) Provides: ping Depends: libc6 (>= 2.3), libssl0.9.8 (>= 0.9.8m-1) Conflicts: ping, suidmanager (<< 0.50) Description: Tools to test the reachability of network hosts The ping command sends ICMP ECHO_REQUEST packets to a host in order to test if the host is reachable via the network. . This package includes a ping6 utility which supports IPv6 network connections.
Az eredményből látható, hogy az iputils-ping csomag van telepítve.
Csomag tartalma
Milyen állományok telepszenek egy csomagból?
# apt-file list apache2
Ugyanezt az információt adja a dpkg -L prancs is, de sok felesleges sort is megjelenít:
# dpkg -L apache2
dpkg-reconfigure
Egy csomag újrakonfigurálása
dpkg-reconfigure pure-ftpd-common
dpkg
Telepített csomagról információ
dpkg -s <package>
Csomag státusza:
dpkg -s samba| grep Status
Törlés
dpkg -r <package>
Telepítés
dpkg -i csomagnév_verzió.deb
A dpkg a függőségeket nem telepíti fel, de ezt megtehetjük a következő paranccsal:
apt-get -f install
A telepített csomagok
dpkg-query
dpkg-query -l
dpkg-query --list
dpkg
dpkg --list
dpkg --get-selections
További lehetőségek:
Tükörszerverek
Ha nem írtuk fel a tükörszervereket magunknak akkor ki kell derítenünk hol vannak ezek. A következő csomagokban megtaláljuk a tükörszerverek listáját.
apt-get install apt-cacher-ng
cat /usr/lib/apt-cacher-ng/deb_mirrors.gz | gunzip | less
Vagy nézzük a Debian weblapján:
A /etc/apt/sources.list állomány szintaktikáját pedig nézzük meg itt:
man sources.list
De lássunk itt néhány példát:
deb http://ftp.hu.debian.org/debian/ wheezy main
deb http://ftp.at.debian.org/debian/ wheezy main
deb http://ftp.au.debian.org/debian/ wheezy main
deb http://ftp.be.debian.org/debian/ wheezy main
deb http://ftp.bg.debian.org/debian/ wheezy main
deb http://ftp.fr.debian.org/debian/ wheezy main
deb http://ftp2.fr.debian.org/debian/ wheezy main
deb http://ftp.us.debian.org/debian/ wheezy main
deb http://ftp.uk.debian.org/debian/ wheezy main
deb http://ftp.kfki.hu/pub/linux/debian/ wheezy main
deb http://ftp.bme.hu/OS/Linux/dist/debian/ Bevezetés
A leggyorsabb tükörszerver felderítése
Régebben rendelkezésünkre állt az apt-spy csomag és parancs, a 8-as Debian azonban nem tartalmazza. Van azonban egy olyan csomag, aminek a neve:
- netselect-apt
Telepítsük:
apt install netselect-apt
Válasszuk ki a -c vagy a –country kapcsolóval a területi beállítást:
netselect-apt --country hu
A program megmondja a három leggyorsabb szervert az adott területen.
Egyéb nem tárgyalt csomagkezelő parancsok
- apt-offline
- aptitude
A csomagok forrása
Telepítés után a csomagok forrása a következő helyen van megadva
/etc/apt/sources.list
Ha telepítéskor van Internet és tükörszervernek a http://ftp.hu.debian.org/debian/ címet választjuk, akkor a következő sorok lesznek a sources.list fájlban:
deb http://ftp.hu.debian.org/debian/ wheezy main deb-src http://ftp.hu.debian.org/debian/ wheezy main deb http://security.debian.org/ wheezy/update main deb-src http://security.debian.org/ wheezy/updates main deb http://ftp.hu.debian.org/debian/ wheezy-updates main deb-src http://ftp.hu.debian.org/debian/ wheezy-updates main
A deb kezdetű sorok a csomagok letöltési útvonalát tartalmazza. A deb-src kezdetű sorok ugyanazon csomagok forrás állományainak letöltési lehetőségét mutatja. Ha forrásfájlokkal nem dolgozunk, akár megjegyzésbe is tehetjük őket.
Az útvonalak három részre oszthatók. Az első két útvonalról a szimpla csomagok és azok forrásai töltődnek le. Példánkban:
deb http://ftp.hu.debian.org/debian/ wheezy main
A következő két útvonal a biztonsági frissítéseket tartalmazza:
deb http://security.debian.org/ wheezy/update main
Az utolsó két sor pedig gyorsan frissülő stabil csomagokat tartalmazza. Ezeket a csomagokat a volatile projekten belül készítik, az olyan gyorsan frissülő csomagok esetén mint a vírusírtók, spam szűrök, stb.
Proxy beállítása
Proxy beállítása az apt rendszerben
Ha csomagokat csak proxyn keresztül tudjuk leszedni akkor be kell azokat állítanunk.
Proxy beállításokhoz készítenünk kell állományt a következő könyvtárban:
/etc/apt/apt.conf.d/
A könyvtár alapesetben a következő fájlokat tartalmazza:
- 00CDMountPoint
- 00trustcdrom
- 01autoremove
- 20listchanges
- 70debconf
A fájlok nevei előtt a számok prioritás jelentenek. Az apt rendszer ebben a sorrendben értelmezi azokat. A proxybeállítások prioritása számunkra mindegy, esetleg legyen a szám 80. A fájl neve a 80 után pedig „proxy”, azaz a teljes fájlnév:
80proxy
Hozzuk létre az állományt:
mcedit /etc/apt/apt.conf.d/80proxy
Tartalma a következő:
Acquire::http::Proxy "http://192.168.1.30:80";
Ha FTP hozzáférést kell beállítani
Acquire::ftp { Proxy "http://172.16.64.218:80/"; ProxyLogin { "USER $(SITE_USER)@$(SITE)"; "PASS $(SITE_PASS)"; } }
További információkat a következő kézikönyv ad:
man apt.conf
Mintákat a következő helyen találunk:
/usr/share/doc/apt/examples/
Ha @ karakter van a például a felhasználónévben: /etc/apt/apt.conf
APT::Get::AllowUnauthenticated 1; Acquire::http::proxy "http://user%40cegnev:titok@proxy_ip_cim:8080/"; Acquire::https::proxy "https://user%40cegnev:titok@proxy_ip_cim:8080/"; Acquire::ftp::proxy "ftp://user%40cegnev:titok@proxy_ip_cim:8080/";
A kód az ASCII táblából hexadecimális kód:
Esetleg: .bashrc
export http_proxy="http://user%40cegnev:titok@proxy_ip_cim:8080/";
Proxy beállítása környezeti változóként
Az apt rendszer olvassa a következő két környezeti változót:
- http_proxy
- ftp_proxy
Legyen a proxy a példában 192.168.30.1, amelyet a 3128-as porton érhetjük el. A környezeti változót ekkor így hozzuk létre:
export http:proxy=http://192.168.30.1:3128
Ez a beállítás azonban újraindítás után elvész. A /root/.bashrc fájlban véglegesíthetjük a beállítást. Írjuk a fájl végére a fenti beállítást.
Ha proxyhoz jelszó is tartozik akkor így állíthatjuk be:
export http_proxy=http://user:pass@192.168.1.1:8080
A példának megfelelőne a felhasználónevet és a jelszót az IP cím előtt adjuk meg attól egy „@” karakterrel elválasztva.
Az IP címek helyett persze használhatunk tartománynevet is, bármely beállításnál:
export http_proxy=http://user:pass@proxy.zold.and:8080 Bevezetés
A rendszer frissítése
Biztonsági és hibafrissítések
Először frissíteni kell a csomaginformációkat, az után jöhet maga a frissítés. Néhány kritikus csomag nem frissül így sem, harmadik lépésben ezeket is frissíthetjük:
apt-get update apt-get upgrade apt-get dist-upgrade
Verzió frissítés
Amikor újabb stabil verzió jelenik meg kedvenc Linuxunkból, akkor át kell gondolnunk a verziófrissítést. A verziófrissítés előtt feltétlenül készítsünk mentést a rendszerről.
A jelenleg stabil verzió neve Wheezy. Ha ezt használjuk a csomagforrásokban a következőket látjuk:
deb http://ftp.hu.debian.org/debian/ wheezy main
A Wheezy verziót a Jessie verzió követi. Ha szeretnénk a Jessie verzióra váltani, akkor csak a /etc/apt/sources.list fájlban kell Jessie szót megváltoztatni jessie szóra.
deb http://ftp.hu.debian.org/debian/ jessie main
Ezek után frissítenünk kell a csomaginformációkat:
apt-get update
Majd jöhet a frissítés:
apt-get upgrade
Néhány kritikus csomag így sem frissül. A teljes frissítést a következő paranccsal lehet megtenni:
apt-get dist-upgrade