Sudo apt get parancsok. APT csomagkezelő rendszer. Hogyan lehet kijavítani a megszakadt függőségeket

  • Dátum: 14.05.2021

Apt (Speciális csomagolóeszköz) Van egy segédprogram Debian-szerű rendszerek, amelyek telepítik, frissítik a csomagokat és nyomon követik azok függőségeit. A program létrehozásának célja a csomagkezelési folyamat automatizálása volt, különös tekintettel a függőségek frissítésére és karbantartására, amely a dpkg menedzserrel való közvetlen munkavégzés esetén manuális módban történt. A csomagkezelés közvetlenül a program segítségével történik apt-get, az alábbiakban tárgyaljuk a főbb parancsokat, amelyekkel dolgozni.

Az apt-get parancs általános felépítése

apt-get [opciók] parancs csomag1 csomag2… csomagN

Az alábbi opciók hasznosak lehetnek a használat során apt-get:

A telepíthető csomagok listájának frissítése

Ez a művelet a következő paranccsal hajtható végre:

Apt-get frissítés

A lista frissítése különösen fontos, ha egy csomag legfrissebb és stabil verzióját kell telepítenie. A parancs végrehajtásakor a program megvizsgálja a fájlban megadott archívumokat /etc/apt/sources.list.

Csomag telepítése

Bármely csomag telepítéséhez használja a következő parancsot:

Apt-get install csomagnév

Ennek eredményeként Apt megkeresi a megadott csomag legújabb verzióját, és ellenőrzi, hogy vannak-e függőségei. Ha vannak függőségek, megjelenik ezek listája és egy telepítési javaslat.

[e-mail védett]: ~ # apt-get install aee Csomaglisták olvasása ... Kész Függőségi fa felépítése Állapotinformációk olvasása ... Kész A következő extra csomagok kerülnek telepítésre: libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 A következő ÚJ csomagok kerülnek telepítésre: aee libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 0 frissítve, 6 újonnan telepített, 0 eltávolítandó és 44 nincs frissítve. 181 kB / 1297 kB archívumra van szükség. A művelet után 4366 kB további lemezterület kerül felhasználásra. Akarod folytatni?

Függőségek hiányában a telepítési folyamat automatikusan megtörténik, kérdések megjelenítése nélkül.

Ezenkívül a csomagtelepítési parancs megadásakor megadhatja az eltávolítandó csomagok nevét. Ehhez adjon meg egy kötőjelet az eltávolítandó csomag nevének végére. Az alábbiakban látható egy példa erre a telepítési/eltávolítási módszerre:

[e-mail védett]: ~ # apt-get install aee htop- Csomaglisták olvasása ... Kész Függőségi fa felépítése Állapotinformációk olvasása ... Kész A következő extra csomagok lesznek telepítve: libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 A következő csomagok el lesznek távolítva : htop A következő ÚJ csomagok kerülnek telepítésre: aee libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 0 frissítve, 6 újonnan telepítve, 1 eltávolítandó és 43 nincs frissítve. 1297 kB archívumot kell szerezni. A művelet után 4157 kB további lemezterület kerül felhasználásra. Akarod folytatni?

Amint a példából látható, az aee csomag készen áll a telepítésre, a htop csomag pedig készen áll az eltávolításra.

Csomag újratelepítése

Ha szükségessé válik egy csomag újratelepítése (sérült fájlok stb új verzió), a következő paranccsal hajtható végre:

Apt-get --reinstall telepítési csomagnév

Csomag eltávolítása

Két lehetőség van a csomagok eltávolítására:

  • Csomag eltávolítása, kivéve a konfigurációs fájlokat (ha vannak).

Általában ezt a lehetőséget szükséges lehet, ha a jövőben újra szeretné telepíteni ezt a csomagot. Ez az eltávolítási módszer a következő paranccsal hajtható végre:

Apt-get eltávolítása csomagnév

Azt is érdemes megjegyezni, hogy ha az eltávolítandó csomagnak vannak függőségei, akkor az azokkal együtt eltávolításra kerül.

  • Teljes csomag eltávolítás

Az első módszertől eltérően az eltávolított csomaghoz kapcsolódó összes fájl, beleértve a konfigurációs fájlokat is, törlődik. Ebben az esetben a következő parancsot kell használni:

Apt-get --purge eltávolítása csomagnév

A megjelölt csomagok teljes eltávolítása, legyen a nevük végén a "*" jel

  • Eltávolítás és telepítés egy paranccsal

Ezenkívül az eltávolításkor megjelölheti a telepítendő csomagok listáját. Ehhez meg kell adnia a „ + "A csomagnév végén. Az alábbiakban látható egy példa egy ilyen parancsra:

[e-mail védett]: ~ # apt-get --purge Remove aee képernyő + Csomaglisták olvasása ... Kész Függőségi fa felépítése Állapotinformációk olvasása ... Kész A következő csomagok EL lesznek távolítva: aee * A következő ÚJ csomagok kerülnek telepítésre: 0. képernyő frissítve , 1 újonnan telepített, 1 eltávolítandó és 43 nincs frissítve. 624 kB archívumot kell szerezni. A művelet után 975 kB további lemezterület kerül felhasználásra. Akarod folytatni?

Csomagok frissítése

Apt-get frissítés

Ez naprakészen tartja az elérhető csomagokkal és azok verzióival kapcsolatos információkat. A parancs végrehajtása után közvetlenül folytathatja a telepített csomagok frissítését a rendszeren. Ez a következő paranccsal történik:

Apt-get -u frissítés

Megadott paraméter -u A frissítésre előkészített csomagok teljes listájának megjelenítésére szolgál.

Terjesztési verzió frissítése

Ha megjelenik a telepített operációs rendszer új verziója, a parancs segítségével végrehajthatja a teljes rendszer "frissítését".

Annak a ténynek köszönhetően, hogy néhány elvtárs nem érti, mi az apt és dpkg. Úgy döntöttem, hogy létrehozok egy másik bejegyzést ezekről a segédprogramokról.

APT és minden, minden, minden. Az APT csomagkezelő és a kapcsolódó programok lehetőségeinek feltárása

A Debian sok pozitív újítást hozott a Linux világába, amelyek közül sokat más disztribúciók is átvettek. A Debian legjelentősebb fejlesztése az APT csomagkezelő rendszer, és megjelenése óta az összes többi disztribúció elavult szemétté vált. Az APT ma összetett, intelligens, rugalmas, és sok titkot rejteget az avatatlan Linux-felhasználók elől.

Fejlett csomagkezelő rendszer

Önmagában az APT (Advanced Packaging Tool) nem egy csomagkezelő rendszer a szó szó szoros értelmében. A kicsomagoláshoz, a rendszerbe történő regisztrációhoz és a csomagadatbázis megtekintéséhez minden műveletet a dpkg csomag segédprogramjai hajtanak végre, míg az APT segédprogramok egy burkoló, amellyel csomagokat kereshet, ellenőrző összegeket ellenőrizhet, letölthet a tárolóból, feloldhatja a függőségeket, ill. számos egyéb akció is...

Az APT a következő segédprogramokat tartalmazza:

Apt csomag segédprogramok

apt-cache – az elérhető, általában használt csomagok gyorsítótárát kezeli
csomagot keresni és/vagy információt szerezni róla

apt-cdrom - lehetővé teszi CD / DVD hozzáadását csomagforrásként (tárhelyként)

apt-config - beolvassa a konfigurációban megadott opciók értékeit
/etc/apt/apt.conf fájl, amelyet más APT segédprogramok használnak

apt-extracttemplates – Kibontja a DebConf konfigurációs fájlokat
csomagokból, amelyeket más APT segédprogramok használnak

apt-ftparchive – Indexfájlokat hoz létre

apt-get - telepíti, eltávolítja, frissíti a csomaglistát
és maguk a csomagok, a központi APT segédprogram

apt-key – kezeli az ellenőrzéshez használt hitelesítési kulcsokat
a csomagforrások hitelessége

apt-secure – ellenőrzi a mellékelt apt csomagok digitális aláírását
a terjesztési készlethez és a tárolókhoz

apt-sortpkgs – Az indexfájlok rendezése

A közművek támaszkodnak következő fájlokat konfiguráció:

APT konfigurációs fájlok

/etc/apt/sources.list - csomagforrások listája (tárolók)
/etc/apt/apt.conf - fő APT konfigurációs fájl
/ etc / apt / preferences - beállításfájl, amely szabályozza, hogy a csomag melyik verziója legyen
telepítve, ha egyszerre több verzió is található a tárolóban

Az APT használata egyszerű és egyértelmű, az átlagos felhasználónak általában csak az alábbi hat parancsra van szüksége:

Alapvető APT parancsok

apt-cache keresési maszk - csomag keresése
apt-cache show package – csomaginformációk megjelenítése
apt-get install csomag - telepítse a csomagot
apt-get csomag eltávolítása – csomag eltávolítása
apt-get update – az elérhető csomagok gyorsítótárának frissítése
apt-get upgrade – az összes csomag frissítése

Az utolsó két parancs általában egymás után fut le, ami minden olyan csomag újratelepítését eredményezi, amelyekhez új verziók érhetők el a tárolóban. Ha csak a megadott csomagot kell frissítenie, akkor az "apt-get update" után futtassa az "apt-get install package" parancsot.

Az Ubuntu disztribúció még egyszerűbbé teszi az APT segédprogramokkal való „kommunikációt”, és a grafikus felület jelölőnégyzeteire való kattintásra redukálja. Rendelkezik saját, rendkívül egyszerű csomagkezelővel (ahogy "Csomagkezelőnek" nevezik), amelyet a cron "futtat az Update Managerből, grafikus telepítő a kézzel letöltött deb csomagokhoz GDebi és egy erősebb grafikus kiegészítő a Synapticon keresztül. APT segédprogramok.

Eközben az APT sokkal összetettebb és rugalmasabb, mint amilyennek első pillantásra tűnhet. Ezért a következő részekben megvizsgálunk néhány nem túl tipikus felhasználási módot.

Harmadik féltől származó csomagforrások

A disztribúció fejlesztőitől származó összes csomagot tartalmazó főtáron kívül számos más olyan csomagforrás is létezik, amelyek harmadik féltől származó szoftvert tartalmazhatnak, amely nem érhető el a hivatalos tárolóból, amelyek újabb verzióit tartalmazzák, vagy egyszerűen csak egy gyorsabb tükör. A tár lehet egy normál könyvtár a merevlemezen vagy egy CD.

Négy egyszerű lépéssel taníthatja meg az APT-t, hogy működjön együtt harmadik féltől származó adattárral:

Az uri mező a repository címe, amely a legtöbb esetben egy HTTP-cím, de lehet hivatkozás egy helyi tárhelyre (fájl: / root / repository), egy FTP- vagy SSH-kiszolgálón található tárcím. A "disztribúció" mező tartalmazza annak a disztribúciónak a nevét, amelyhez a csomagokat készítették. Debiannál a név lehet stable, oldstable, unstable, testing, míg Ubuntu esetében csak egy konkrét disztribúciónevet kell megadni (pl. jaunty), valamint az alapján különféle megnevezéseket (pl. jaunty-updates , jaunty- backports, jaunty-security). Azt kell mondanom, hogy az APT egyáltalán nem ellenzi a különböző disztribúciójú csomagok keverését ugyanazon a rendszeren, de ebben az esetben csak Ön lesz a felelős a következményekért. A komponens neve általában main, contrib vagy non-free Debian, és main, universe, multiverse, partner és korlátozott Ubuntu esetén. Ezek mind a különböző csomagtárolók nevei, amelyek csak bizonyos feltételek alapján vannak leválasztva a csomagok felosztására. Például a main csomagok az Ubuntu/Debian fejlesztőcsapat által épített csomagok, a bennük lévő szoftverek minőségére bizonyos garanciák vonatkoznak, ideértve az időszerű frissítéseket és a hibajavításokat, míg a contrib és az universe harmadik féltől származó szoftverek, amelyeket Ön saját maga telepít. kockázat és kockázat.

2. Adja hozzá a tár nyilvános kulcsát az apt kulcstartóhoz, amely a hitelesség és a megbízhatóság ellenőrzésére szolgál. A kulcsot bármilyen módon megszerezhetjük és hozzáadhatjuk az „apt-key add key” parancs futtatásával, de ezt a módszert a kényelmetlenség miatt ritkán alkalmazzák. Az esetek túlnyomó többségében a csapattal fogsz foglalkozni

sudo apt-key adv --keyserver certserver --recv-keys kulcsazonosító
amely közvetlenül a hitelesítés-kiszolgálótól kéri le a kulcsot (Ubuntu esetében ez a keyserver.ubuntu.com). A legtöbb külső fejlesztő így terjeszti szoftverét Debian/Ubuntu disztribúciókhoz (míg mások csak a csomagokat és azok ellenőrző összegeit teszik közzé). Például, ha felkeresi az Önt érdeklő projekt oldalát a launchpad.net tárhelyen, és rákattint a "Technikai részletek erről a PPA-ról" linkre, látni fog egy sort, amelyet hozzá kell adni az /etc/apt/ fájlhoz. sources.list, az "Aláíró kulcs:" kulcsazonosítónál.

3. Frissítse az elérhető csomagok gyorsítótárát:

sudo apt-get frissítés
4. Telepítse a csomagot az "apt-get install package" paranccsal.

Sok fejlesztő közvetlenül a deb csomagba helyezi el a tárolóra mutató hivatkozást és annak kulcsazonosítóját, így a csomag letöltése, az "apt-get update && apt-get upgrade" parancs telepítése és futtatása után a csomagok az unokatestvéreikkel együtt frissülnek. szerepel a sources.listban. Konkrétan az opera böngészők és a google chrome alfa kiadás terjesztése így történik.

A CD-tárat sokkal egyszerűbb hozzáadni a sources.list-hez. Erre van egy speciális apt-cdrom parancs. Csak helyezze be a CD-t a meghajtóba, és hajtsa végre a parancsot:

sudo apt-cdrom add

Trükkök és nem szabványos helyzetek

Az APT az APT, kényelmes és egyszerű, de néha nem nélkülözheti a trükköket, amelyek közül a leghasznosabbat ebből a részből tanulhatja meg.

1. Alapértelmezés szerint az "apt-get remove" parancs csak akkor távolítja el teljesen a csomagot, ha a telepítés óta egyik fájl sem módosult, ellenkező esetben a módosított fájlok érintetlenek maradnak. Természetesen a konfigurációs fájlok szinte mindig változnak, így az apt-get sok szemetet hagy maga után, amit kézzel kell kitakarítani. Az "apt-get purge" parancs az "apt-get remove" helyett megoldja ezt a problémát.

2. A rendszerrel való trükközés szerelmesei, valamint rendszergazdák akiknek a szervereit feltörték, valószínűleg vissza akarják állítani a csomagokat a manipuláció előtti kezdeti állapotba. A parancs segít ebben:

sudo apt-get install --reinstall csomag
3. Az alacsonyabb szintű deb csomagkezelő segédprogramok (mint például a dselect és a dpkg) egy speciális listát tartanak fenn a csomagállapotokról, amelyek segítségével szabályozható, hogy mely csomagokat kell kötegelt módban telepíteni vagy eltávolítani (így működik a dselect + dpkg). Számos más célra is használható, például a rendszerkonfiguráció másik gépre való átvitelére. Futtassa a következő parancsot:

dpkg --get-selections> fájlt
Vigye át a fájlt egy másik gépre, és futtasson rajta két parancsot:

cat file> dpkg --set-selections
apt-get dselect-upgrade

A forrásrendszer összes csomagja hozzáadódik a rendszerhez. Ha azt szeretné, hogy a csomagállapot fájl információkat is tartalmazzon arról, hogy mely csomagokat kell eltávolítani a rendszerből, adjon hozzá egy „\ *” karaktert a „--get-selections” argumentum után. Az állapotlista nem tartalmazza a csomag verzióját, ezzel a disztribúció újabb verziójának telepítése után lehet a kívánt állapotba hozni.

4. Ön manuálisan javította az egyik rendszercsomag fájlját, és nem akarja, hogy ez a csomag frissüljön (az összes módosítás megsemmisítésével) az "apt-get upgrade" hívása után. Ebben az esetben az államok listája ismét a segítségedre lesz. Előfordulhat, hogy a csomag „lefagyott”, így az apt-get megtagadja a frissítést, és kihagyja:

echo -e "coreutils hold" | dpkg --set-selections
Kényszerítheti a csomag frissítését az "-u" jelző megadásával az apt-get meghívásakor.

5. Mint minden hálózati funkcióval rendelkező rendszer, az APT is lehetővé teszi proxy használatát a lerakatokhoz való hozzáféréshez. A funkció engedélyezéséhez adja hozzá a következő sort az /etc/apt/apt.conf fájlhoz:

Beszerzés :: http :: Proxy "http://xxx.xxx.xx: yyyy"

Ahol xxx.xxx.xx a proxy neve, az yyyy a port.

6. Az APT segédprogramok általában a csomag legfrissebb verzióját kérik a gyorsítótárában található összesből, így ha különféle kísérleti és instabil tárolókat adott hozzá a sources.list-hez, akkor a frissítés után egy kizárólag kísérleti vagy instabil csomagokból álló disztribúciós készletet kap. és egy csomó probléma, amelyet ez az állapot okoz. A helyzet azonban könnyen megoldható, ha a következő sort helyezi az /etc/apt/apt.conf fájlba:

APT :: Default-Release "release";

Ahol a kiadás régi stabil, stabil, instabil, tesztelési vagy kísérleti Debian esetében, vagy a kiadás neve Ubuntu esetében. Most, ha telepítenie kell egy csomagot a megadott disztribúcióból, csak írja be a nevét a "-t" argumentum után az apt-get meghívásakor:

sudo apt-get -t instabil telepítőcsomag
7. Az összes kapott apt-get deb csomag a / var / cache / apt / archives könyvtárban van tárolva, ami azt jelenti, hogy ha újratelepíti a rendszert, a könyvtár tartalmát átmásolhatja egy másik lemezre / partícióra, majd visszaállíthatja. és időt/forgalmat takaríthat meg a csomagtelepítés során. Ráadásul ez lényegében egy pillanatkép a telepített rendszeréről (annak a részéről, amelyet saját maga telepített), amely egy ismerősének tulajdonítható (a harmadik bekezdésben leírt állapotok listájával együtt), vagy ha szükségtelen, törölhető szabadítson fel helyet.

8. Az előző bekezdésben leírt törölt rendszerpillanatkép könnyen visszaállítható a következő konstrukció segítségével:

sudo dpkg --get-selections | grep -v "deinstall" | \
awk "(nyomtasson 1 dollárt)" | xargs dpkg-repack

9. Azonkívül bináris csomagok, a Debian / Ubuntu tárolók forráscsomagokat is tartalmaznak azokhoz az alkalmazásokhoz, amelyek a következő paranccsal szerezhetők be és építhetők fel:

sudo apt-get -b forráscsomag neve

Harmadik féltől származó segédprogramok

Az APT rendszer nagyon hosszú fejlődési utat járt be, így az apt csomagban található hivatalos segédprogramok mellett a Debian és az Ubuntu adattárak bővelkednek harmadik féltől származó segédprogramok tömkelegében, amelyek segítségével néhány nem szabványos feladatot is végre lehet hajtani. .
Ezek közül a leghasznosabb az apt-file, és a névből sejthető, hogy szükséges annak megállapításához, hogy egy fájl egy adott csomaghoz tartozik-e. Telepítés:

sudo apt-get install apt-file
Megkérjük az apt-file-t, hogy hozzon létre egy gyorsítótárat a csomagrendszerbe telepített összes fájlról (keresni fog):

apt-file search / usr / bin / apt-get
apt: / usr / bin / apt-get

Kérünk egy listát a csomagban található összes fájlról:

apt-fájl lista apt

Egy egyszerű apt-show-versions segédprogram megmutatja, mely csomagok frissíthetők verzióval és egyéb részletekkel. Futtassa a "-u" jelzővel, hogy csak a frissítendő csomagok listáját kapja meg (az összes csomag listája helyett).

Ha sok különböző csomagot telepített, és most szeretne megszabadulni a felesleges szeméttől, akkor a deborphan segédprogram segít ebben, amely a nem használt csomagokat és az árva függőségeket keresi. Csak futtassa a deborphan-t argumentumok nélkül, és látni fogja a csomagok listáját, amelyet azonnal átadhat az "apt-get remove" parancs bemenetére, vagy egyszerűen hajtsa végre a következő parancsot:

sudo apt-get távolítsa el a `deborphan' parancsot

Alapértelmezés szerint a deborphan csak a könyvtárakat tartalmazó csomagokat dolgozza fel, de ez a viselkedés megváltoztatható, ha hozzáadja az "-a" jelzőt a parancshíváshoz:

Nem szabad azonnal rohanni a segédprogram által megjelenített csomagok törlésével, mert még a legerősebb heurisztikus algoritmus sem képes meghatározni az Ön személyes igényeit. Tehát a program megmutatta a google-chrome, inkscape és még az xorg csomagokat is.

Az apt-move segédprogram lehetővé teszi egy helyi tároló létrehozását. Telepítse a programot, nyissa meg az /etc/apt-move.conf fájlt, adja meg a LOCALDIR opcióban annak a könyvtárnak az elérési útját, ahol a lerakatnak el kell helyezkednie, és futtassa a parancsot:

sudo apt-move frissítés

Ennek eredményeként az apt-get segítségével (a / var / cache / apt / archives könyvtár) a webről letöltött összes csomag átkerül a konfigurációban megadott könyvtárba, amelyhez indexfájl készül. Ez egy kényelmes módja az intranetes tároló létrehozásának olyan helyzetekre, amikor sok ugyanazt a csomagot kell telepíteni több gépre.

Az alkotáshoz helyi adattár nagyon kényelmes az apt-proxy szerver használata is, amely lehetővé teszi a tárolóból letöltött deb csomagok gyorsítótárazását a szerver oldalon. Ehhez az apt-proxy telepítve van egy dedikált gépre (esetleg egy átjáróra), és a kliensek sources.listája úgy módosul, hogy ennek a gépnek a címe legyen megadva az összes tároló uri mezőjeként. Ennek eredményeként a deb csomagokra vonatkozó összes kérés az apt-proxyhoz kerül, amely csomagot kér a fő lerakattól, és tárolja azt a gyorsítótárában, és a csomag minden további kérésére a gyorsítótárból válaszol.

Először telepítse az apt-proxyt egy dedikált gépre:

sudo apt-get install apt-proxy

Ezután nyissa meg az /etc/apt-proxy/apt-proxy-v2.conf fájlt, menjen a szakaszhoz, és cserélje ki az address opció értékét a gép IP-címére, és írja le az apt- által használt csomagforrásokat is. proxy, például:

sudo vi /etc/apt-proxy/apt-proxy-v2.conf


háttérrendszerek = http://ru.archive.ubuntu.com/ubuntu/
min_refresh_delay = 1d


háttérrendszerek = http://security.ubuntu.com/ubuntu/
min_refresh_delay = 1d

Általában ez a két cím elegendő az Ubuntu fejlesztők által biztosított csomagok teljes skálájának lefedéséhez. Indítsa újra az apt-proxyt:

sudo invoke-rc.d apt-proxy újraindítás

Az ügyfelek apt-proxy használatára való átalakításához használja a szabványos Ubuntu sources.list listát, cserélje ki az összes valós uri mezőt a „http: // ip-apt-proxy: 9999 / ubuntu /” mezőre, és másolja át ezt a fájlt minden kliensre.

Sok más kevésbé érdekes segédprogram is működik az APT-vel együtt. Például az apt-dater lehetővé teszi a csomagok frissítését nagyszámú távoli webhelyen pszeudografikus felület segítségével. Az aptsh program egy parancsfelületet valósít meg, mint például az sh az apt csomagparancsok tetején, az aptfs virtuális fájlrendszer az APT kezelésére. A debdelta segédprogram, amely lehetővé teszi a csomagok frissítését azáltal, hogy letölti a deltákat a webről, külön cikk témája lehet, ha lenne legalább egy időben frissített tárhely.

Alkalmasság

Az Apt-get és testvérei nem az egyetlen elérhető APT-megvalósítás. Egy még hatékonyabb, kényelmesebb és sokoldalúbb alternatíva az aptitude, amely az apt-get, apt-cache és dselect központosított funkciója.
Az Aptitude lehetővé teszi a csomagokkal való telepítést/eltávolítást, keresést, frissítést és sok egyéb művelet végrehajtását kétféle interfész használatával: parancs mód, amely hasonló az apt-get és apt-cache, és pszeudográfiai mód, amely úgy néz ki, mint a dselect, de sok minden. kényelmesebb és funkcionálisabb.

Parancssori módban az aptitude a következőkre használható:

aptitude install – csomag telepítése

aptitude remove – csomag és árva függőségek eltávolítása

aptitude purge - távolítsa el a csomag árva függőségét
és az utánuk fennmaradó konfigurációs fájlok

aptitude search – csomag keresése a gyorsítótárban (az elérhető csomagok listája)

aptitude update - frissítse a gyorsítótárat

aptitude safe-upgrade – frissítési csomagok

aptitude clean - távolítsa el a korábban letöltött csomagokat

aptitude teljes frissítés - frissítési csomagok,
még akkor is, ha ehhez a művelethez bármilyen csomag eltávolítása szükséges

alkalmassági bemutató - csomag információ

aptitude autoclean - távolítsa el az elavult csomagokat

aptitude hold – tiltja a csomag frissítését

Az interaktív mód, amely az aptitude argumentum nélküli indításakor érhető el, lehetővé teszi, hogy ugyanezt az ncurses könyvtár tetejére épített pszeudografikus interfész segítségével megtegye. Kötegelt módban működik (kiválasztott csomagok - elindította a telepítési folyamatot), így kényelmes lesz olyan esetekben, amikor nagy számú csomagot kell telepítenie.

húsvéti tojás

Az APT segédprogramok fejlesztőiről kiderült, hogy kissé perverz humorérzékkel rendelkező srácok. Mi az eredménye a következő parancsnak:

sudo apt-get moo
Még vadabb az, amit az alkalmasság megalkotói beépítettek programjukba. Próbáld ki:

sudo aptitude moo
Egyfajta húsvéti tojás húsvéti tojás nélkül. RENDBEN:

sudo aptitude -v moo
sudo aptitude -vv moo
sudo aptitude -vvv moo
sudo aptitude -vvvv moo
sudo aptitude -vvvvv moo

És az utolsó akkord:

sudo aptitude -vvvvvv moo

Hasznos apt-cache parancsok

apt-cache show csomag – a csomag részletei
apt-cache showpkg csomag – általános információk a csomagról
apt-cache függ a csomagtól – a csomagfüggőségek listája
apt-cache rdepends csomag - a fordított függőségek listája (kinek van szüksége a megadott csomagra)

APT szótár

Csomag - program, könyvtár, forráskód vagy bármilyen más fájl, valamint ezek metaadatai, speciálisan kialakított archívumba csomagolva.

A tárhely a deb csomagok tárolása.

Az elérhető csomagok gyorsítótára (vagy egyszerűen a gyorsítótár) egy olyan fájl, amely az /etc/apt/sources.list fájlban felsorolt ​​forrásokból származó összes csomagra vonatkozó információkat tárolja. A gyorsítótár minden alkalommal frissül, amikor az "apt-get update" parancsot meghívják.

Az indexfájl a lerakat fejfájlja, amely tartalmazza az egyes csomagok nevét, verzióját, méretét, rövid és teljes leírását és függőségeit. Packages.gz néven bináris tárhely, Sources.gz pedig forrástároló esetén. A pkg-scanpackages és a dpkg-scansources segédprogramokkal generálva.

Az Apt keyring (szó szerint: apt keyring) egy kulcstároló, amely hitelesíti a csomagforrásokat (repository).

Mi van benne?

A Deb formátumú csomagok megkülönböztető jellemzője az egyszerűségük. Bármely Deb csomag három fájlból áll: data.tar.gz, control.tar.gz és debian-binary, az archiválóval együtt. A data.tar.gz fájl a csomag tartalma (binárisok, man "s, dokumentáció stb.), a control.tar.gz a metaadat, a legegyszerűbb formájában két fájl: control, amely tartalmazza a csomag leírását, függőségek, méret stb. A .d. és az md5sums a csomagban lévő összes fájl ellenőrző összege A debian-bináris fájl tartalmazza a Deb csomagformátum verzióját (pl. 2.0) A csomag kicsomagolásához használhatja a parancsot :

ar -xv package.deb && tar -xzf data.tar.gz

Az Advanced Packaging Tool egy magas szintű csomagolóeszköz.

dpkg csomagokkal való munka.

A dpkg a rendszer fő programja a Debian csomagok kezelésére. Ha vannak .deb csomagok, akkor a dpkg teszi lehetővé azok telepítését vagy tartalmuk elemzését. Ez a program azonban csak részben ismeri a Debian világát: tudja, hogy mi van telepítve a rendszerre, és mindent, amit átadnak neki. parancs sor de nem tud semmit a többi elérhető csomagról. Ezért meghiúsul, ha kielégítetlen függőséggel találkozik. Ezzel szemben az olyan eszközök, mint az apt, automatikusan létrehozzák a függőségek listáját, hogy mindent a lehető legautomatikusabban telepítsenek.

dpkg vagy apt?

A dpkg-t alacsony szintű eszköznek (motornak) kell tekinteni, és alkalmas a felhasználóhoz közelebb álló eszköznek, megkerülve az előbbi korlátait. Ezek az eszközök együtt működnek, mindegyiknek megvan a maga sajátossága, és egy adott feladatkörhöz vannak kiélezve.

Csomagok telepítése

A dpkg elsősorban a már elérhető Debian csomagok telepítésére szolgáló eszköz (mivel nem tölt le semmit). Csomag telepítéséhez használja az -i vagy a --install opciót.

Csomag telepítése a dpkg segítségével

Dpkg -i man-db_2.7.0.2-5_amd64.deb




A man-db csomag konfigurálása (2.7.0.2-5) ...

A dpkg minden lépését láthatjuk, így tudjuk, hol történhetett hiba. A telepítés is két lépésben történhet: először kicsomagolás, majd konfiguráció. Ennek eredményeként az apt-get kevesebbet hív a dpkg-hoz (minden ilyen kérés költséges művelet, mivel be kell tölteni az adatbázist a memóriába, beleértve a már telepített fájlok teljes listáját).

Külön kicsomagolás és beállítás

Dpkg -- unpack man-db_2.7.0.2-5_amd64.deb

(Az adatbázis olvasása... jelenleg 86425 fájl és könyvtár van telepítve.)
Felkészülés a man-db_2.7.0.2-5_amd64.deb kicsomagolására ...
Man-db (2.7.0.2-5) kicsomagolása a cseréhez (2.7.0.2-5) ...
A triggerek feldolgozása a mime-támogatáshoz (3.58) ...

Dpkg --configure man-db

A man-db csomag konfigurálása (2.7.0.2-5) ...
Kézikönyvi oldalak adatbázisának frissítése...

Néha a dpkg ilyen vagy olyan okból nem tud csomagot telepíteni, és hibát ad vissza; ha a felhasználó a hiba figyelmen kívül hagyására utasítja, csak figyelmeztetés jelenik meg; erre különféle --force- * opciók állnak rendelkezésre. A dpkg --force-help parancs, vagy a parancs dokumentációja megadja az ilyen opciók teljes listáját. A leggyakoribb hiba, amellyel előbb-utóbb szembe kell néznie, a fájlütközések. Ha egy csomag olyan fájlt tartalmaz, amelyet egy másik csomag már telepített, a dpkg megtagadja a telepítést, és ezt az üzenetet kapjuk:

A libgdm csomag ki van csomagolva (a ... / libgdm_3.8.3-2_amd64.deb fájlból) ...
dpkg: hibafeldolgozási paraméter /var/cache/apt/archives/libgdm_3.8.3-2_amd64.deb (--unpack):
megpróbálja felülírni a "/ usr / bin / gdmflexiserver" fájlt, amely már a gdm3 3.4.1-9 csomagban található

Ebben az esetben, ha úgy gondolja, hogy ennek a fájlnak a cseréje nem jelent jelentős veszélyt a rendszer stabilitására (ami gyakran előfordul), használhatja a --force-overwrite opciót, amely arra utasítja a dpkg-t, hogy figyelmen kívül hagyja ezt a hibát. és felülírja a fájlt.
Bár sok --force- * opció létezik, rendszeres használathoz csak a --force-overwrite ajánlott. A többit csak kivételes esetekre szánják, és jobb, ha nem érinti meg őket, ameddig csak lehetséges, hogy megfeleljen a csomag létrehozásakor megállapított szabályoknak. Ne felejtse el, hogy ezek a szabályok a rendszer integritásának és stabilitásának garanciái.

FIGYELEM! Hatékony használat--Kényszerítés- *

Ha nem vagy óvatos, a --force- * kapcsoló használata az APT parancsok működésének leállását okozhatja. Ezen opciók némelyike ​​lehetővé teszi olyan csomagok telepítését, amelyeknek nem megfelelő függőségei vagy ütközései vannak. Ennek eredményeként a rendszer nem konzisztens a függőségek tekintetében, és az APT parancsok megtagadnak minden olyan művelet végrehajtását, amely a rendszert konzisztens állapotba állítja vissza (ez általában egy hiányzó függőség telepítésében vagy egy problémás elhárításban merül ki. csomag). Íme egy példa az rdesktop újabb verziójának telepítése után kapott hibaüzenetre, figyelmen kívül hagyva a libc6 újabb verziójától való függőséget:

alkalmas teljes frissítés

Használhatja az „apt-get -f install” parancsot a hibák kijavításához.
Ki nem elégített függőséggel rendelkező csomagok:
rdesktop: Attól függ: libc6 (> = 2.5), de a 2.3.6.ds1-13etch7 már telepítve van
E: Kielégületlen szenvedélyek.

Próbáld meg az -f parancsot.
A félelmet nem ismerő rendszergazdák, akik magabiztosak a helyzetelemzésben, figyelmen kívül hagyhatják a függőségi vagy konfliktusproblémára vonatkozó figyelmeztetést a megfelelő --force- * opció használatával. Ebben az esetben, ha folytatnia kell az apt vagy az aptitude használatát, módosítania kell a / var / lib / dpkg / status fájlt, és el kell távolítania / módosítania kell a függőséget vagy ütközést.
Szerkesztés ebből a fájlból egy piszkos hack, és nem szabad használni, kivéve a legszélsőségesebb esetekben. Gyakran a legjobb megoldás a problémát okozó csomag újraépítése: "A csomag újraépítése a forrásból"), vagy egy újabb verzió (valószínűleg javítva) használata egy lerakatból, például a stable-backportsból (lásd: 6.1.2.4. szakasz, " Stabil szoftver visszafelé kompatibilis" ).

Csomag eltávolítása

A dpkg futtatása az -r vagy a --remove kapcsolóval, majd a csomagnévvel eltávolítja a csomagot. Ez az eltávolítás azonban nem teljes: a csomag által használt összes konfigurációs fájl, karbantartói parancsfájl, naplófájl (rendszernapló) és egyéb felhasználói adat megmarad. Ily módon a program eltávolításával könnyen megszabadulhat, de ugyanakkor továbbra is lehetséges ugyanazzal a konfigurációval újratelepíteni. A csomaghoz kapcsolódó összes teljes eltávolításához használja a -P vagy a --purge kapcsolót, majd a csomag nevét.

A debian-cd csomag teljes eltávolítása

Dpkg -r debian-cd

(Az adatbázis olvasása... eddig 97 747 fájl és könyvtár van telepítve.)

Dpkg -P debian-cd

(Az adatbázis olvasása... Jelenleg 97401 fájl és könyvtár van telepítve.)
A debian-cd csomag (3.1.17) el lett távolítva...
A debian-cd csomag konfigurációs fájljai (3.1.17) ...

dpkg adatbázis lekérdezése és .deb fájlok elemzése

A legtöbb beállításnál létezik „hosszú” opció (egy vagy több szó előtt dupla kötőjel) és „rövid” opciók (egy betű, gyakran a „hosszú” opció első betűje, egy kötőjel után). Ez a konvenció annyira elterjedt, hogy már POSIX szabvány.
Mielőtt befejeznénk ezt a részt, nézzük meg a dpkg beállításait a belső adatbázis különböző információk lekérdezéséhez. Ez először a hosszú opciókat adja meg, majd a megfelelő rövid opciókat (amelyek természetesen ugyanazokat az argumentumokat veszik fel). Például a --listfiles csomag (vagy -L) felsorolja a csomag által telepített fájlokat; --search file (vagy -S) megkeresi azt a csomagot, amelyhez ez a fájl tartozik; A --status csomag (vagy -s) információkat jelenít meg egy adott telepített csomagról; A --list (vagy -l) a rendszer által ismert csomagok listáját és azok állapotát mutatja; A --contents file.deb (vagy -c) megjeleníti a csomagban található fájlok listáját; Az --info file.deb (vagy -I) egy Debian csomagra vonatkozó információkat jelenít meg.

Információszerzés a dpkg segítségével

Dpkg -L base-passwd

/.
/ usr
/ usr / sbin
/ usr / sbin / update-passwd
/ usr / share
/ usr / share / man
/ usr / share / man / ru
/ usr / share / man / ru / man8
/usr/share/man/ru/man8/update-passwd.8.gz
/ usr / share / man / pl
/ usr / share / man / pl / man8
/usr/share/man/pl/man8/update-passwd.8.gz
/ usr / share / man / man8
/usr/share/man/man8/update-passwd.8.gz
/ usr / share / man / fr
/ usr / share / man / fr / man8
/usr/share/man/fr/man8/update-passwd.8.gz
/ usr / share / doc-base
/ usr / share / doc-base / users-and-groups
/ usr / share / base-passwd
/usr/share/base-passwd/passwd.master
/usr/share/base-passwd/group.master
/ usr / share / lintian
/ usr / share / lintian / felülbírál
/ usr / share / lintian / overrides / base-passwd
/ usr / share / doc
/ usr / share / doc / base-passwd
/ usr / share / doc / base-passwd / copyright
/usr/share/doc/base-passwd/users-and-groups.html
/usr/share/doc/base-passwd/changelog.gz
/usr/share/doc/base-passwd/users-and-groups.txt.gz
/ usr / share / doc / base-passwd / README

Dpkg -S / bin / dátum

coreutils: / bin / dátum

Dpkg -s coreutils

Csomag: coreutils
Alapvető: igen
Állapot: telepítés rendben telepítve
Prioritás: kötelező
Szakasz: segédeszközök
Telepített méret: 13822
Fenntartó: Michael Stone
Építészet: amd64
Többíves: külföldi
Verzió: 8.13-3.5
Csere: mktemp, timeout
Attól függ: dpkg (> = 1.15.4) | telepítési információ
Előzetesen függ: libacl1 (> = 2.2.51-8), libattr1 (> = 1: 2.4.46-8), libc6 (> = 2.7), libselinux1 (> = 1.32)
Konfliktusok: időtúllépés
Leírás: GNU alapvető segédprogramok
Ez a csomag tartalmazza az alapvető fájlokat, parancsértelmezőket és szövegkezelést
segédprogramok, amelyek várhatóan minden operációs rendszeren léteznek.
.
Ez a csomag konkrétan a következőket tartalmazza:
arch base64 alapnév cat chcon chgrp chmod chown chroot cksum comm cp
csplit vágás dátuma dd df dir dircolors dirname du echo env expand expr
faktor false flock fmt fold group head hostid id install join link ln
logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup nproc od
illessze be pathchk pinky pr printenv printf ptx pwd readlink rm rmdir runcon
sha * sum seq shred sleep sort split stat stty sum sync tac tail tee test
timeout touch tr true csonkol tsort tty uname unexpand uniq uniq uniq
felhasználók vdir wc, akik whoami igen
Honlap: http://gnu.org/software/coreutils

Dpkg -l "b *"

Kívánt = ismeretlen [u] / beállítása [i] / eltávolítása [r] / törlés [p] / javítás [h]
| Állapot = nincs [n] / telepítve [i] / konfigurálva [c] / kicsomagolva [U] / részben konfigurálva [F] /
részlegesen telepítve [H] / trig-aWait / Trig-pend
| / Hiba? = (Nem) / újra kell telepíteni [R] (nagybetű
az állapot és a hiba mezőben abnormális helyzetet jelez)
|| / Név Verzió Architektúra Leírás
+++-============-==============-==============-================================
un backupninja<нет>(Nem érhető el leírás)
un base<нет>(Nem érhető el leírás)
un base-config<нет>(Nem érhető el leírás)
ii base-files 7.1 amd64 Debian alaprendszer egyéb
ii base-passwd 3.5.26 amd64 Debian alaprendszer fő jelszó
[...]

Dpkg -c /var/cache/apt/archives/gnupg_1.4.12-7_amd64.deb

drwxr-xr-x root / root 0 2013-01-02 19:28 ./
drwxr-xr-x root / root 0 2013-01-02 19:28 ./usr/
drwxr-xr-x root / root 0 2013-01-02 19:28 ./usr/share/
drwxr-xr-x root / root 0 2013-01-02 19:28 ./usr/share/doc/
drwxr-xr-x root / root 0 2013-01-02 19:28 ./usr/share/doc/gnupg/
-rw-r - r-- root / root 3258 2012-01-20 10:51 ./usr/share/doc/gnupg/TODO
-rw-r - r-- root / root 308 2011-12-02 18:34 ./usr/share/doc/gnupg/FAQ
-rw-r - r-- root / root 3543 2012-02-20 18:41 ./usr/share/doc/gnupg/Upgrading_From_PGP.txt
-rw-r - r-- root / root 690 2012-02-20 18:41 ./usr/share/doc/gnupg/README.Debian
-rw-r - r-- root / root 1418 2012-02-20 18:41 ./usr/share/doc/gnupg/TODO.Debian
[...]

Dpkg -I /var/cache/apt/archives/gnupg_1.4.12-7_amd64.deb

új debian csomag, 2.0 verzió.
méret 1952 176 bájt (s): vezérlőarchívum 3312 bájt hosszú.
1449 bájt, 30 vezérlési sor
4521 bájt (s), 65 sor md5sums
479 bájt (s), 13 sor * postinst #! / Bin / sh
473 bájt (s), 13 sor * preinst #! / Bin / sh
Csomag: gnupg
Verzió: 1.4.12-7
Építészet: amd64
Karbantartó: Debian GnuPG-karbantartók
Telepített méret: 4627
Függ: libbz2-1.0, libc6 (> = 2.4), libreadline6 (> = 6.0), libusb-0.1-4 (> = 2: 0.1.12), zlib1g (> = 1: 1.1.4), dpkg (> = 1.15.4) | install-info, gpgv
Javasolt: libldap-2.4-2 (> = 2.4.7), gnupg-curl
Javaslatok: gnupg-doc, xloadimage | imagemagick | eog, libpcsclite1
Szakasz: segédeszközök
Prioritás: fontos
Többíves: külföldi
Honlap: http://www.gnupg.org
Leírás: GNU adatvédelmi őr – ingyenes PGP csere
A GnuPG a GNU biztonságos kommunikációs és adattárolási eszköze.
Használható adatok titkosítására és digitális aláírások létrehozására.
Tartalmaz egy fejlett kulcskezelési lehetőséget, és megfelel az előírásoknak
a javasolt OpenPGP internetes szabvánnyal, az RFC 4880-ban leírtak szerint.
[...]

TOVÁBBI: Verzió-összehasonlítás

Mivel a dpkg egy Debian csomagolóprogram, többek között tartalmazza a verzió-összehasonlítási logika referencia megvalósítását. Ezért rendelkezik a --compare-versions opcióval, amelyet külső programok (főleg a dpkg által futtatott konfigurációs szkriptek) használnak. Ez a beállítás három paramétert igényel: egy verziószámot, egy összehasonlító operátort és egy második verziószámot. Az érvényes összehasonlító operátorok: lt (szigorúan kisebb, mint), le (kisebb vagy egyenlő), eq (egyenlő), ne (nem egyenlő), ge (nagyobb vagy egyenlő), és gt (szigorúan nagyobb, mint). Ha az összehasonlítás helyes, a dpkg 0-t (siker) ad vissza, ha nem, akkor nem nullát (hibajelet).

$ dpkg --hasonlítsa össze-verziók 1.2-3 gt 1.1-4
$ echo $?
0
$ dpkg --verziók összehasonlítása 1,2-3 lt 1,1-4
$ echo $?
1
$ dpkg --verziók összehasonlítása 2.6.0pre3-1 lt 2.6.0-1
$ echo $?
1

Figyeljük meg az utolsó összehasonlítás váratlan kudarcát: a dpkg esetében a pre, általában kiadás előtti betűknek nincs különösebb jelentése, és a szó szerinti karaktereket ugyanúgy hasonlítjuk össze, mint a számokat (a< b < c ...), в алфавитном порядке. Именно поэтому dpkg считает, что «0pre3» больше, чем «0». При необходимости указать в номере версии, что она относится к предварительному выпуску, используется символ тильды «~»:

$ dpkg --verziók összehasonlítása 2.6.0 ~ pre3-1 lt 2.6.0-1
$ echo $?
0

Dpkg naplófájl

A dpkg minden tevékenységéről naplót vezet a /var/log/dpkg.log fájlban. Ez a napló rendkívül részletes: dokumentálja a dpkg-csomagok feldolgozásának összes lépését. Ez a napló nemcsak a dpkg viselkedésének nyomon követését segíti elő, hanem a rendszerben bekövetkezett változások előzményeinek megőrzését is: pontosan megtudhatja az egyes csomagok telepítésének vagy frissítésének pillanatát, és ez az információ rendkívül hasznos lehet az okok kiderítésében. a rendszer egészének viselkedésében bekövetkezett változáshoz. Ezenkívül minden verzióinformáció rögzítésre kerül, és könnyen ellenőrizhető a changelog.Debian.gz fájllal a megfelelő csomagban vagy online hibajelentésekben.

Több architektúra támogatása

Minden Debian-csomag metaadatai között szerepel egy Architektúra mező. Ez a mező tartalmazhatja az "all" értéket (az architektúrától független csomagok esetében), vagy annak a konkrét architektúrának a nevét, amelyre a csomagot szánják (például "amd64", "armhf", ...). Az utóbbi esetben a dpkg alapértelmezés szerint csak akkor engedélyezi a csomag telepítését, ha annak architektúrája megegyezik a dpkg --print-architecture által visszaadott rendszerarchitektúrával.
Ez a korlátozás biztosítja, hogy a rendszer ne kerüljön rossz architektúrára fordított bináris fájlokhoz. Ez rendben is lenne, de (néhány) számítógépen futtathat bináris fájlokat a különböző architektúrákhoz, akár natívan (például "amd64" rendszereken, binárisok "i386" futtatásához), vagy emulátorokon keresztül.

Több architektúra engedélyezése

A Dpkg több architektúra támogatása lehetővé teszi "idegen architektúrák" meghatározását, amelyek telepíthetők egy adott rendszerre. Ez könnyen megvalósítható a dpkg --add-architecture paranccsal, amint az az alábbi példában látható. Létezik egy megfelelő dpkg --remove-architecture parancs is az idegen architektúra támogatásának letiltására, de ez csak akkor használható, ha nem maradt idegen architektúra csomag a rendszeren.

dpkg --print-architecture
amd64

dpkg: hiba feldolgozási archívum gcc-4.9-base_4.9.1-19_armhf.deb (--install):
csomag architektúra (armhf) nem egyezik a rendszerrel (amd64)
A feldolgozás során hibákat észleltünk:
gcc-4.9-base_4.9.1-19_armhf.deb

dpkg --add-architecture armhf
dpkg --add-architecture armel
dpkg --print-külföldi-architektúrák
armhf
armel

Dpkg -i gcc-4.9-base_4.9.1-19_armhf.deb

Korábban nem kiválasztott csomag kiválasztása gcc-4.9-base: armhf.
(Adatbázis olvasása... 86425 jelenleg telepített fájl és könyvtár.)
Felkészülés a gcc-4.9-base_4.9.1-19_armhf.deb kicsomagolására ...
Kicsomagolás gcc-4.9-base: armhf (4.9.1-19) ...
A gcc-4.9-base beállítása: armhf (4.9.1-19) ...

Dpkg --remove-architecture armhf

dpkg: hiba: nem lehet eltávolítani az adatbázis által jelenleg használt "armhf" architektúrát

Dpkg --remove-architecture armel
dpkg --print-külföldi-architektúrák
Több architektúra támogatása az APT-ben

Az APT automatikusan észleli, ha a dpkg külföldi architektúrák támogatására van beállítva, és a frissítési folyamat során elkezdi letölteni a megfelelő csomagfájlokat.
Idegen csomagok az apt install package: architecture paranccsal telepíthetők.

Védett i386 bináris fájlok használata amd64 rendszereken

Vannak olyan esetek, amikor a több architektúra jól jöhet, de a legáltalánosabb a 32 bites fájlok (i386) engedélyezése 64 bites rendszereken (amd64), különösen azért, mert néhány népszerű szabadalmaztatott alkalmazás (például a Skype) csak 32 bites változatban érhetők el.

Több architektúra változásai

Ahhoz, hogy a több architektúra támogatása valóban hasznos legyen, a könyvtárakat újra kellett csomagolni úgy, hogy egy architektúrának megfelelő könyvtárba helyezték át őket, hogy egyszerre több másolatot (különböző architektúrákhoz) lehessen telepíteni. Ezek a frissített csomagok tartalmaznak egy "Multi-Arch: ugyanaz" fejlécet, amely közli a csomagkezelő rendszerrel, hogy különböző csomagarchitektúrák telepíthetők együtt (és ezek a csomagok csak az azonos architektúrájú csomagok függőségeit képesek kielégíteni). Mivel a multiarch támogatást csak a Debian Wheezyben adták hozzá, még nem konvertálták át az összes könyvtárat.

Dpkg -s gcc-4.9-base

dpkg-query: hiba: --status érvényes csomagnév szükséges, de a "gcc-4.9-base" nem: kétértelmű csomagnév "gcc-4.9-base" egynél több példány esetén

Használja a --help opciót a csomagkérések súgójának megjelenítéséhez.

Dpkg -s gcc-4.9-base: amd64 gcc-4.9-base: armhf | grep ^ Multi

Többíves: ugyanaz
Többíves: ugyanaz

Dpkg -L libgcc1: amd64 | grep .so

/lib/x86_64-linux-gnu/libgcc_s.so.1

Dpkg -S /usr/share/doc/gcc-4.9-base/copyright

gcc-4.9-base: amd64, gcc-4.9-base: armhf: /usr/share/doc/gcc-4.9-base/copyright

Érdemes megjegyezni, hogy a Multi-Arch: azonos mezővel rendelkező csomagokat az architektúra nevével kell elnevezni, hogy egyedileg azonosíthatók legyenek. Fájlokat is megoszthatnak ugyanazon csomag más példányaival; A dpkg ebben az esetben biztosítja, hogy minden csomag bitenként azonos megosztott fájlokkal rendelkezzen. A csomag minden példányának azonos verziójúnak kell lennie, ezért azokat együtt kell frissíteni.
A több architektúra támogatása néhány érdekes funkciót is hoz a függőségi kezelő mechanizmusba. A függőség kielégítéséhez vagy egy „Multi-Arch: Foreign” feliratú csomagra, vagy egy ugyanolyan architektúrájú csomagra van szükség (a függőség feloldása esetén az architektúrától független csomagok a rendszer architektúrájával megegyezőnek tekintendők). A függőséget lazítani is lehet, hogy bármilyen architektúra csomagja kielégítse a csomag használatával: bármilyen szintaxis, de a külföldi csomagok csak akkor tudják kielégíteni ezt a függőséget, ha meg vannak jelölve "Multi-Arch: engedélyezett".

Használt anyagok.

A szoftvercsomagok telepítési, eltávolítási és frissítési folyamatának automatizálása számos disztribúcióban Linux alkalmazott Fejlett szoftvercsomag-kezelő rendszerApt (Speciális csomagolóeszköz). Az automatizálás egy vagy több külső tároló létrehozásával valósul meg, ahol a szoftvercsomagokat tárolják, és amelyekhez képest a rendszerre telepített csomagokat ellenőrzik. A tárak tartalmazhatják a disztribúció hivatalos verzióját, amelyet a fejlesztők frissítenek a programok új verzióinak megjelenésekor, valamint a helyi fejlesztéseket.

Így a rendelkezésére áll Apt két adatbázis létezik: az egyik a rendszerbe telepített csomagokat írja le, a második egy külső tároló. Apt figyeli a telepített rendszer integritását, és ha a csomagfüggőségben inkonzisztenciát talál, a külső adattárral kapcsolatos információk alapján megoldja az ütközéseket és megtalálja a megfelelő módot azok megszüntetésére.

Apt eredetileg úgy tervezték, hogy nem függött a rendszerbe telepített csomagokkal való munkavégzés konkrét módszerétől, ami lehetővé tette egy brazil cég fejlesztői számára Connectiva csomagkezelő támogatást valósítson meg benne FORDULAT... Így a felhasználók alapján FORDULAT disztribúciók (Fedora Core, Mandriva, ASP Linux, ALT Linux) már képesek használni ezt a hatékony eszközt.

Grafikus felület ehhez Apt

Grafikus shell ehhez Apt egy erős csomagszűrő rendszeren alapuló szinaptikus. Ez nagymértékben leegyszerűsíti a felületet, ugyanakkor nagy rugalmasságot biztosít a nagyon hosszú csomaglisták közötti navigálás során.

Használat Apt

Rendszer Apt több segédprogramból áll. A fő és leggyakrabban használt apt-get csomagkezelő segédprogram, amely automatikusan észleli a csomagok közötti függőséget, és szigorúan betartja azokat a következő műveletek végrehajtásakor: csomagok telepítése, eltávolítása vagy frissítése.

Az apt-get lehetővé teszi olyan csomagok telepítését a rendszerre, amelyek működéséhez más, még nem telepített csomagokra van szükség. Ebben az esetben meghatározza, hogy mely csomagokat kell telepíteni, és az összes elérhető tároló használatával telepíti azokat. Annak érdekében, hogy az apt-get használni tudja ezt vagy azt a tárolót, az erről szóló információkat el kell helyezni az /etc/apt/sources.list fájlba, és futtassa a parancsot.

~ # apt-get update

Ezt a parancsot akkor is végre kell hajtani, amikor hosszú szünet után a tárolóval dolgozik, mivel csomagok keresésekor Apt egy olyan adatbázisnak kell vezérelnie, amely tükrözi a tároló aktuális állapotát. Egy ilyen adatbázis minden alkalommal újból jön létre, amikor a tárolóban változás történik: egy csomag hozzáadása, eltávolítása vagy átnevezése. A munka felgyorsítása érdekében az apt-get eltárolja az adatbázis egy helyi másolatát, amely egy idő után már nem felel meg a tároló valós állapotának.

A disztribúciós CD-ket is használhatja csomagok forrásaként, mivel minden lemez tartalmaz mindent, amire szüksége van Apt információkat a benne lévő csomagokról. Ehhez az apt-cdrom segédprogramot kell használnia az egyetlen hozzáadási paraméterrel. A műveletet meg kell ismételni a készülék CD-jével. Ezt követően az /etc/apt/sources.list fájlban megjelenik egy bejegyzés a csatlakoztatott lemezről.

Ha nincs hálózati kapcsolat, az /etc/apt/sources.list azon sorait, amelyek a hálózaton keresztül elérhető erőforrásokra utalnak, megjegyzésekkel kell ellátni.

Csomagok keresése

Ha a csomag pontos neve nem áll rendelkezésre, akkor az apt-cache segédprogrammal lehet rákeresni, amivel nem csak a csomag neve, hanem a leírása alapján is lehet keresni:

~ $ apt-cache keresés wine wine-utils - Wine Emulator (További programok) libwine-arts - Arts támogatási könyvtár a wine libwine-twain számára - Twain támogatási könyvtár a wine libwine-devel számára - A libwine-devel libwine fejlécei - A bor fő könyvtára bor - Környezet a futtatáshoz Windows programok(Etersoftról készült)

Ha többet szeretne megtudni az egyes talált csomagokról, és elolvashatja a leírását, használja az apt-cache show parancsot, amely információkat jelenít meg a csomagról a tárolóból:

~ $ apt-cache show wine-utils Csomag: wine-utils Szekció: Emulátorok Telepített méret: 8700 Karbantartó: Vitaly Lipatov Verzió: 20040716-alt1 Előre függ: rpmlib (PayloadFilesHavePrefix) (<= 4.0-1), rpmlib(CompressedFileNames) (<= 3.0.4-1) Depends: wine (= 20040716-alt1), libc.so.6, libc.so.6(GLIBC_2.0), libc.so.6(GLIBC_2.1), libc.so.6(GLIBC_2.1.3), libc.so.6(GLIBC_2.2), libc.so.6(GLIBC_2.3), libm.so.6, libm.so.6(GLIBC_2.0), libwine.so.1, libwine.so.1(WINE_1.0), perl-base, sh Provides: wine-utils (= 20040716-alt1) Architecture: i586 Size: 1575076 MD5Sum: Filename: wine-utils-20040716-alt1.i586.rpm Description: Эмулятор Wine (Дополнительные программы) This is an ALPHA release of Wine, the MS-Windows emulator. This is still a developers release and many applications may still not work. This package consists many of the utilities provided by wine, both for compiling source using winelib and for running wine. This package is not strictly necessary. Wine is often updated.

Csomagfüggőségek lekérése:

~ $ apt-cache függ wine-utils wine-utils-20040716-alt1 Szükséges: wine = 20040716-alt1 Követelmény: glibc-core-6: 2.3.3.200406160000-alt1 Követelmény: glibc-core-6: 2.3.3.200406160000-alt1 Követelmény: glibc-core-6: 2.3.3.200406160000-alt1 Követelmény: glibc-core-6: 2.3.3.200406160000-alt1 Követelmény: glibc-core-6: 2.3.3.200406160000-alt1 Követelmény: glibc-core-6: 2.3.3.200406160000-alt1 Követelmény: glibc-core-6: 2.3.3.200406160000-alt1 Követelmény: libwine-20060610-alt0.M24.1 Szükséges: libwine-20060610-alt0.M24.1 Szükséges: perl-base Követelmény: sh

Nemcsak a fájloktól, hanem a létrejövő csomagoktól is megmutatja a függőséget, amely ezeket a fájlokat tartalmazza, ami nagyon kényelmes az esetleges telepítési nehézségek elemzéséhez.

Csomag telepítése vagy frissítése

Csomag telepítése a segítségével Apt paranccsal végrehajtva:

~ # apt-get install csomagnév

Ha az eredmény a kötegelt műveletek használata nélkül Apt a rendszer integritása megsérül, akkor az apt-get megtagadja a telepítési, eltávolítási vagy frissítési műveleteket. Ilyen helyzetben érdemes megismételni a műveletet az -f kapcsoló megadásával, amely az apt-get-et arra kényszeríti, hogy kijavítsa a felszakadt függőségeket (ha lehetséges), miközben figyeli az apt-get által kiadott üzeneteket, elemzi azokat és szigorúan követi a program ajánlásait .

A csomag újratelepítése:

~ # apt-get install csomagnév --reinstall

Hasznos mód, amely lehetővé teszi a rendszergazda és a csomagkészítő hibáinak javítását.

Ha nem biztos abban, hogy a rendszer a művelet eredményeként működőképes marad, futtassa az apt-get parancsot a -s kapcsolóval.

Ebben az esetben megjelenik egy jelentés a frissítési műveletről, de magát a frissítést nem hajtják végre:

~ # apt-get install -s csomagnév

Telepített csomag eltávolítása

Egy csomag eltávolításához használja a parancsot

~ # apt-get Remove package_name

A rendszer integritásának megőrzése érdekében az eltávolítandótól függő összes csomagot is eltávolítjuk: ha az alkalmazás működéséhez szükséges komponens (például könyvtár) hiányzik, akkor maga az alkalmazás használhatatlanná válik. Ha a rendszer alapvető összetevőihez kapcsolódó csomagot eltávolítanak, az apt-get további megerősítést kér a végrehajtott műveletről, hogy elkerülje az esetleges véletlenszerű hibákat.

Az összes telepített csomag frissítése

Az összes telepített csomag frissítéséhez használja a parancsot

~ # apt-get upgrade

Csak azokat a csomagokat frissíti, amelyekhez új verziók állnak rendelkezésre az /etc/apt/sources.list fájlban felsorolt ​​tárolókban; ez nem távolít el más csomagokat a rendszerből.

Ez a módszer akkor hasznos, ha olyan stabil alkalmazáscsomagokkal dolgozik, amelyekről ismert, hogy a verzió módosításakor jelentéktelen mértékben változnak.

Az apt-get upgrade parancs nem dolgozza fel a csomagok elnevezésének vagy a függőségeiknek módosításait. Az ilyen helyzeteket a terjesztési szintű frissítési mód oldja meg:

~ # apt-get dist-upgrade

A teljes disztribúció frissítése esetén AptÖsszehasonlítja a rendszert a tárolóval és eltávolítja az elavult csomagokat, telepíti a rendszerben lévő csomagok új verzióit, valamint nyomon követi a csomagok átnevezésével vagy a programok régi és új verziói közötti függőségek megváltoztatásával kapcsolatos helyzeteket. Bármi, amit telepíteni (vagy eltávolítani) kell a már a rendszerben lévőn kívül, az apt-get jelentésben lesz feltüntetve, Apt magát a frissítést fogja megelőzni.

Testreszabás Apt

Apt lehetővé teszi az adattárral való interakciót különféle hozzáférési protokollok használatával. A legnépszerűbbek azok HTTPés FTP.

A helyi és távoli tárolókkal való munkavégzés részletes leírása a részben található

Sokáig mardosott a tudatlanság, hogy hogyan kell néhány elemi dolgot csinálni a Debian csomagkezelőkben, de ahogy az lenni szokott, nem volt kit megkérdezni, és nem tudtam sehova írni. És végül a kérdések érlelődnek, és felírtam a kérdésemet a Debian levelezőlistára. Természetesen kiderült, hogy valami nyilvánvalót kihagytam, de sok nem nyilvánvaló hasznosságot is tanultam, ezért úgy döntöttem, felvázolok egy csalólapot, hátha jól jön valaki.

Debian adminisztrátor gyorstájékoztató

Alapvető és jól ismert
Információszerzés az új/frissített csomagokról
sudo aptitude frissítés
Frissítés
sudo aptitude safe-upgrade
Csomag keresése a csomag neve alapján
alkalmassági keresési kulcsszó
Csomag keresése pontos név alapján
alkalmassági keresés "^ név $"
Keresés leírás alapján
alkalmassági keresés "? leírás (" kulcsszó ")"
Csomag információ
aptitude show csomag_neve
Telepítés
sudo aptitude install csomag_neve
Törlés
sudo aptitude távolítsa el a csomag_neve
Teljes eltávolítás (a konfigurációkkal együtt)
sudo aptitude purge csomag_neve
Törölje a letöltött csomag-gyorsítótárat (tárhely felszabadítása)
aptitude autoclean # csak az elavult csomagok kerülnek eltávolításra aptitude clean # minden gyorsítótár törlődik
Külön letöltött / létrehozott csomag telepítése (harmadik féltől származó csomag létrehozásához a checkinstall segédprogramot kell használnia -D kapcsolóval)
sudo dpkg -i /path/to/package.deb
További információkért
man aptitude sudo aptitude install aptitude-doc-en
és nézze meg a dokumentációt (/usr/share/doc/aptitude/html/en/index.html), hogy valakinek gyors segítség a keresési sablonokhoz, ez itt - /usr/share/doc/aptitude/html/en/ch02s04 .html. Ha túl lusta a dokkoló elhelyezéséhez, akkor az a hálózaton van.
Bevezető a Debian Wikibe: wiki.debian.org/Aptitude
És most, ami nem nyilvánvaló, vagy megköveteli a dokumentáció teljes olvasását
1. Hogyan tudom megnézni, hogy mely csomagok frissülnek a frissítés után?
alkalmassági kereső? frissíthető
használható is (ha van)
sudo daptup
de a telepítés után a szokásos frissítés is ugyanúgy fog viselkedni

2. Hogyan lehet megtudni, hogy mi változott a frissítendő csomagokban?
Megpróbálhatod
sudo aptitude változásnapló csomag_neve
minden egyes csomaghoz.
De jobb, ha az apt-listchanges-t helyezi el, akkor a frissítések telepítése előtt megjelenik a változtatások listája, alapértelmezés szerint a beállítások nem túl kényelmesek, ezért jobb, ha újra konfigurálja magát, például válassza ki a kimeneti formátumot ( szöveghasználat közben, nagy frissítéseknél valószínűleg jobb oldalhívót küldeni), ne küldjön levelet, kérjen megerősítést, jelenítsen meg minden információt. Ehhez futni kell
sudo dpkg-reconfigure apt-listchanges
3. Mi a teendő, ha a frissítés elromol valamit, és vissza kell vonni?
Nincs visszaállítás, megpróbálhatja megkeresni a csomag korábbi verzióját
sudo aptitude verzió csomag_neve
és telepítse
sudo aptitude install csomag_neve = verzió
4. Hogyan találhatom meg az összes manuálisan telepített csomagot?
a parancsnak van egy változata (alkalmassági keresés "~ i! ~ M"), de sajnos nem a kívánt eredményt adja, így a kérdés nyitott marad, a naplók elemzése alapján egy csomó módszer létezik
/ var / log / aptitude (+ elforgatott darabok) /var/log/installer/initial-status.gz /var/log/dpkg.log (+ elforgatott darabok)
de nincs egyszerű és kész megoldás, de az információ elméletileg elveszhet a forgatás során, konfigurálni kell

5. Hogyan tekinthetem meg a csomagban lévő fájlok listáját?
ha a csomag telepítve van
dpkg -L csomag_neve
minden csomaghoz telepítse az apt-file és
apt-file lista csomag_neve
6. Hogyan tudom megnézni, hogy egy fájl melyik csomaghoz tartozik?
dpkg -S fájlnév
7. Hogyan lehet eltávolítani az összes olyan csomagot, amelynek kulcsa a csomagnévben van?
sudo aptitude purge ~ ikey
8. Hogyan lehet eltávolítani a megmaradt konfigurációkat az eltávolított csomagokból?
sudo aptitude purge ~ c
9. Hogyan találjuk meg a lib.so fájlt tartalmazó csomagot:
apt-file keresés lib.so
10. Hogyan lehet az rpm csomagot deb-be konvertálni?
idegen --to-deb /útvonal/fájl.rpm
11. Hogyan találhatom meg a telepített kernelek listáját?
dpkg --list linux- * | grep ii
12. Hogyan telepíthetek tesztelési vagy kísérleti csomagot?
Erről a témáról külön kell írni (például így), de röviden erre vannak parancsok
sudo aptitude -t tesztcsomag_neve
vagy
sudo aptitude csomag_neve / tesztelés
13. Hogyan távolíthatom el a metacsomagot, de megtarthatom az egyik függőséget?
el kell olvasnia az unmarkauto kulcs dokumentációját, vagy ide kell néznie.

14. Hogyan lehet kideríteni, hogy mi került a fájlrendszerbe a csomagkezelő rendszer által?
Van egy cruft segédprogram, bár az eredmények értelmezésének kérdése (jelentésfájl) még nyitott
sudo cruft -d / -r report --ignore / home --ignore / var --ignore / tmp
15. Milyen további adattárak vannak?
Debian – wiki.debian.org/UnofficialRepositories
Ubuntu – sokféle

Néha vannak olyan helyzetek, amikor meg kell találnia, hogy milyen csomagok vannak telepítve a rendszerre. Erre akkor lehet szükség, ha biztonsági másolatot szeretne készíteni a telepített csomagokról, ellenőrizni kívánja azok integritását, átvinni az összes csomagot egy másik rendszerre, és sok más feladathoz. A Debian számos módszert kínál erre.

A mai cikkben megvizsgáljuk, hogyan tekinthetjük meg a telepített Debian-csomagok listáját a terminál, az átkok és a grafikus felület használatával. Az ilyen listák nem csak biztonsági mentésekhez használhatók, hanem a felesleges programok egyszerű iterálására és eltávolítására is, ezzel megtisztítva a rendszert a szeméttől.

A telepített Debian csomagok legelső módja a dpkg segédprogram. Nem csak a Debianban, hanem az összes azon alapuló disztribúcióban használható:

dpkg --get-selections | grep -v eltávolítása

dpkg --get-selections | grep -v deinstall> mylist.txt

Ezenkívül törölheti az összes szükségtelen információt, és csak a csomagneveket tarthatja meg:

dpkg -l | grep ^ ii | awk "(nyomtasson 2 dollárt)"> mylist.txt

Ennek következő módja a dpkg-query segédprogram használata. Hasonló az előző verzióhoz, de valamivel egyszerűbb. Egy ilyen parancs megjeleníti az összes telepített csomagot a rájuk vonatkozó információkkal együtt:

Itt is csak a csomagneveket választhatja ki a -f kapcsolóval:

dpkg-query -f "$ (bináris: csomag) \ n" -W

A harmadik módszer az apt segédprogram, amelyet az alkalmazások telepítéséhez szoktunk használni, ennek a list parancsa van:

apt list --telepítve

apt list --installed | grep python

Ebben a cikkben részletesebben foglalkoztunk az apt-tal. Egy másik nagyszerű funkció, hogy megnézze, mely csomagok lettek manuálisan telepítve. Ehhez írja be:

apt-mark bemutató kézikönyv

És még egy lehetőség az apt használatával:

apt-cache pkgnames

Az aptitude csomagkezelő segédprogram lehetővé teszi a telepített csomagok listázását is:

alkalmassági keresés "~ i! ~ M"

Az aptitude átok módban is futhat, ami nagyon kényelmes:

A telepített csomagok listájának utolsó módja a / var / lib / apt / extended_states. Ez egy olyan adatbázis, amely telepített debian programokat tartalmaz a következő formátumban:

Csomag: csomag_neve
Építészet: építészet
Automatikusan telepítve: 0_vagy_1

cat / var / lib / apt / extended_states

A telepített csomagok listájának visszaállítása

Sok felhasználó létrehozza a csomagok listáját, nemcsak a megtekintéshez, hanem a későbbi helyreállításhoz is. Ha a listát a dpkg segítségével készítette, akkor nagyon könnyen visszaállítható a rendszerbe egy hasonló paranccsal:

sudo dpkg --clear-selections
$ sudo dpkg --set-selections< mylist.txt

Minden nagyon egyszerű. Csomagok telepítéséhez, miután hozzáadta őket a listához, használja a következő parancsot:

sudo apt dselect-upgrade

Ha csak a csomagnevek listája van, akkor egy kicsit másképp kell visszaállítania. Csak adja át ezeket a neveket az apt parancsnak a telepítéshez:

xargs< mylist.txt apt install -y

következtetéseket

Ebben a cikkben bemutattuk, hogyan tekintheti meg a telepített Debian-csomagok listáját. Ez nagyon hasznos lehet, és nagyon egyszerűen megtehető. Remélhetőleg ez az információ hasznos volt az Ön számára.