Felhasználói eszközök

Eszközök a webhelyen


oktatas:linux:csomagkezeles:debian_gnu_linux_csomagkezeles

< Csomagkezelés

Debian GNU/Linux csomagkezelés

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ületel 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 rendszer 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-file parancsról

Az apt-file parancs, a csomagok keresését könnyíti meg, amikor 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óprogramra á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

Telepítés DVD-ről

apt-cdrom add
# apt-cdrom add
/media/cdrom/ CD-ROM csatolási pont használata
CD-ROM leválasztása...
Várakozás a lemezre...
Helyezzen be egy lemezet a meghajtóba, és nyomja meg az Entert

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 dpkg mivel nem képes az Internetről telepíteni, ezért más segéd programmal kell letölteni .deb csomagot.

Csomagokat kereshetünk, például itt:

Legyen például az adminer nevű csomag, amely itt található:

Ennek letöltése 2020-ban:

wget http://ftp.debian.org/debian/pool/main/a/adminer/adminer_4.7.7-1_all.deb 

Kibontás

dpkg -x csomag.deb /tmp/out
ar x csomag.deb

A telepített csomagok

dpkg-query

dpkg-query -l
dpkg-query --list

dpkg

dpkg --list
dpkg --get-selections

További lehetőségek:

Utoljára telepített csomagok listázása:

grep " install " /var/log/dpkg.log

Még korábbi telepítések is:

grep " install " /var/log/dpkg.log.1 /var/log/dpkg.log

Ugyanez apt naplójában:

grep " install " /var/log/apt/history.log

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/

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

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

Egyetlen csomag frissítése

apt update
apt --only-upgrade install csomagnév

Törött csomagok

Néha előfordul, hogy egy-egy csomagot nem tudunk feltelepíteni, például a függőségi problémák miatt. Telepített, de nem konfigurált csomagok maradhatnak.

Ilyenkor megpróbálhatjuk a konfigurálást, ha nem lehet kiírja mely csomagok vannak törve.

dpkg --configure -a

A következő parancsot direkt azért hozták létre, hogy a függőségi gondokat kezeljük:

apt-get -f install

Tulajdonképpen egy -f kapcsolóval futtatom a install akcióval az apt-get parancsot. Csomagot ilyenkor nem kell megadni.

Apt proxy

Apt proxy-cache az apt-cacher vagy az apt-cacher-ng csomaggal valósítható meg.

Telepítsük fel például az apt-cacher-ng csomagot:

# apt install apt-cacher-ng

Telepítés után a következő fontosabb állományok jönnek létre:

  • /etc/apt-cacher-ng/acng.conf
  • /etc/apt-cacher-ng/security.conf
  • /etc/default/apt-cacher-ng

A proxy-cache szerverek már futnia kell a 3142-es porton. Ellenőrizzük:

ss -lt | grep 3142

Böngészőben is megnézhetjük, ahol a segítséget kapunk a további lépésekhez. Ha a proxy-cache server IP címe 192.168.10.2, akkor a következőt írjuk a böngészőbe:

A weblapon is látszik, hogy ehhez hasonlóan kell szerkesztenünk a /etc/apt/sourcest.list fájlt:

deb http://192.168.10.2:3142/ftp.debian.org/debian stable main

Vagy beállíthatjuk proxynak is:

cat > /etc/apt/apt.conf.d/02proxy <<EOT
Acquire::http { Proxy "http://192.168.0.125:3142"; };
EOT

Ha az egyiket beállítottuk, kliens oldalon mehet a csomaginformációk frissíétse és a telepítés:

apt update

Riportot tekinthetünk meg a következő helyen:

A riport felületen a kiüríthető a cache, vagy parancssorból így:

# systemctl stop apt-cacher-ng
# rm -rf /var/cache/apt-cacher-ng/
# systemctl start apt-cacher-ng

Backport

A backport tárolóból újabb csomagok érhetők el, szemben a stabil kiadással.

Szerkesszük a forrásfájlokat:

nano /etc/apt/sources.list.d/backports.list

A következő sort vegyük fel az állományban:

/etc/apt/sources.list.d/backport.list
deb http://deb.debian.org/debian buster-backports main

Csomaginformációk frissítése:

apt update

Telepítése backportból:

apt -t stretch-backports install csomagnév

aptitude

Keresés a csomagok között:

aptitude search ~iceweasel
i A iceweasel                       - Web browser based on Firefox              
i A iceweasel-l10n-hu               - Hungarian language package for Iceweasel

Alapvető build eszközök

apt-get install build-essential

A következőket teszi fel:

  • build-essential
  • dpkg-dev
  • g++
  • g++-4.9
  • libalgorithm-diff-perl
  • libalgorithm-diff-xs-perl
  • libalgorithm-merge-perl
  • libstdc++-4.9-dev

apt

Az apt-get parancs mellett újabban megjelent egy apt parancs is. Ugyanazt tudja mint az apt-get, de ennek ellenére nem csak egy alias. Az apt parancs egy külön program. Az apt-get parancs az „apt” csomagban található, ahol az apt parancs is helyet kapott.

A példa kedvéért, az mc csomag telepítése:

apt install mc

A parancs karakterekből összeállított folyamatsávot is biztosít számunkra.

Ha szeretnénk levelezéssel kapcsolat csomagokat keresni, használjuk a search parancsot:

apt search email

Egy csomag törlése:

apt remove <csomagnév>

Törlés a konfigurációs fájlokkal együtt:

apt purge <csomagnév>

Egy csomagról információ:

apt list <csomagnév>

Az apt list parancs tájékoztat arról, hogy telepítve van-e a csomag.

Például:

apt list mc

Részletek egy csomagról:

apt show <csomagnév>

A csomag leírását, függőségei, stb.

Például:

apt show mc

debsums

A debsums a telepített csomagok MD5 összegének ellenőrzésére való.

Telepítés:

apt install debsums

Az összes telepített csomag ellenőrzése:

debsums

Csak a hibák megjelenítése:

debsums -s

vagy:

debsums --silent

Az mc csomag ellenőrzése:

debsums mc

vagy:

debsums -s mc

Ha nem ad vissza semmit, akkor nem volt eltérés.

Több információ:

man debsums. 

A szekciók

Háromféle szekció van:

  • main - szabad szoftverek
  • contrib - nem szabad szoftver
  • non-free - zárt forráskód

A szekciókat a sources.list fájlban kell megadni:

deb http://ftp.debian.org/debian stable main contrib non-free

Néhány példa:

  • main: mc, apache2
  • contrib
  • non-free: niktor

Tasksel

A Tasksel ha nincs telepítve:

# apt install aptitude tasksel

A tasksel segítségével komplett környezetek telepíthetők.

Csak indítsuk el:

tasksel

A program egy menüs felületet biztosít, amit értelemszerűen használhatunk.

Csomag konfiguráció                                                             
  ┌─────────────────────────┤ Szoftver választás ├──────────────────────────┐   
  │ A következő, előre összeválogatott szoftver gyűjtemények telepíthetők.  │   
  │                                                                         │   
  │ Telepíthető szoftverek:                                                 │   
  │                                                                         │   
  │    [*] Debian desktop environment                                       │   
  │    [ ] ... GNOME                                                        │   
  │    [ ] ... Xfce                                                         │   
  │    [ ] ... KDE                                                          │   
  │    [ ] ... Cinnamon                                                     │   
  │    [*] ... MATE                                                         │   
  │    [*] ... LXDE                                                         │   
  │    [ ] web server                                                       │   
  │    [ ] print server                                                     │   
  │    [*] SSH server                                                       │   
  │    [ ] laptop                                                           │   
  │                                                                         │   
  │                                                                         │   
  │                                 <Ok>                                    │   
  │                                                                         │   
  └─────────────────────────────────────────────────────────────────────────┘   
                                                                                

Ügyeljünk arra, hogy ahol itt kiszedjük (*) jelölést, azt szoftvert leszedi a tasksel. Ha szeretnénk kilépni, használjuk a következő billentyűkombinációt:

  • <Alt>+<Q>

Paraméterezve is használható:

tasksel install gnome-desktop --new-install

Forrás:

Tároló kezelés

Szükségünk van a software-properties-common csomagra.

apt install software-properties-common

Kapunk egy /usr/bin/add-apt-repository parancsot.

Például VirtualBox tároló felvétel stretch esetén:

add-apt-repository 'deb https://download.virtualbox.org/virtualbox/debian stretch contrib'

A tárolóhoz tartozó kulcs letöltése:

wget https://www.virtualbox.org/download/oracle_vbox_2016.asc

A kulcs telepítése

apt-key add oracle_vbox_2016.asc

A legújabb tároló és kulcs útvonalát a https://www.virtualbox.org/wiki/Linux_Downloads webhelyről szerezhetjük be.

Mivel a tároló HTTPS felett érhető el, ezért szükségünk van a apt-transport-https csomagra:

apt install apt-transport-https

Ezek után a tároló használata:

apt update
apt install virtualbox-6.0

Információ debianos rendszerről

$ lsb_release -a

apt-mark

Csomag visszatartása (nincs például frissítés):

apt-mark hold ruby

Visszavonás:

apt-mark unhold ruby

Hasznos dolgok

Segítség

Ha a szokásos eszközöket nem telepítjük, akkor hiányozhatnak számunkra a kézikönyves és a less parancs.

Telepítésük:

apt install man manpages-hu less

Linkek

oktatas/linux/csomagkezeles/debian_gnu_linux_csomagkezeles.txt · Utolsó módosítás: 2023/08/03 19:18 szerkesztette: admin