Portage (szoftver)
csomagkezelő szoftver From Wikipedia, the free encyclopedia
Remove ads
A Portage egy csomagkezelő rendszer, melyet eredetileg a Gentoo számára fejlesztettek ki, de ma már számos Gentoo alapú rendszer használja. A Gentoora gyakorta meta disztribúcióra hivatkoznak a Portage rendszer extrém flexibilitása miatt, ami operációs rendszer függetlenné teszi a Gentoot.[2][3][4]
Remove ads
Történelmi áttekintés
A Portage rendszert a Berkeley Software Distribution által kifejlesztett FreeBSD port rendszer inspirálta, melyet a rendszer karbantartásához és frissítéséhez fejlesztettek ki. Az általános Linux csomagkezelők általi megközelítéssel ellentétben a port nem használ bináris csomagokat, hanem egy forrásból mindent a helyi gépen fordít le.[5]
Daniel Robbins a Gentoo Linux megalkotója a kezdetekben egy 450 MHz-es órajelre tuningolt Celeron 300-ason futtatta a Linuxait, de vett egy újabb gépet, amin nem működött megfelelően a rendszer. Később realizálódott benne, hogy másoknak is ugyanilyen gondjai vannak, amit nem tud megoldani és - szégyenszemre, mint Linux fejlesztő - FreeBSD-re váltott, majd néhány hónap múlva a BSD-s tapasztalatokkal felvértezve újult erővel vágott bele a Gentoo fejlesztésébe.[5][6]
Noha a 2.2-es Linux kernel kiadása csalódás volt számára, a javított 2.4-es szériával úgy érezte új világ nyílt meg előtte, szóval a Gentoo Linux feléledt hamvaiból. E kudarcnak és a BSD-nek hála ekkor vágott bele a portage koncepcióba, ami a Gentoo disztribúciók nélkülözhetetlen alapkellékévé vált.[5]
Remove ads
Jellemzők

A Portage rendszer alapja a metafájlokból és ebuildekből álló Portage fa, mely konfigurációs, forrás letöltési, fordítási és telepítési információt tartalmaznak.
Ez az a megközelítés, amit a Gentoo esetében is használtak, amely nagyfokú rugalmasságot enged meg a telepítés során éppúgy, mint a szoftverek karbantartása területén. Erről a flexibilitásról a fordítási időben használható un. USE flagek gondoskodnak, melyek lehetővé teszik a függőségek kezelését, biztonságos telepítést (sandbox-on keresztül), a rendszer profilok használatát, vagy éppen a teleptett fájlok felülírását, vagy megőrzését. A Portage rendszert Python nyelven programozták.[7]
A Portage fát a teljesség igénye nélkül két fő részre bonthatjuk 1) profilokra, melyek az architektúra és felhasználási terület szerinti alapbeállításokat tartalmazza ill. 2) az ebuild könyvtárfára, mely egy kategória és azon belül egy csomagnév könyvtárra bontható.
Jelen pillanatban közel 20 000 csomag található a hivatalos Portage rendszerben, de léteznek nem hivatalos kiterjesztések is (Gentoo Portage Overlays), sőt a rendszer azt is megengedi, hogy saját magunk is létrehozzunk egyet a Layman repo menedzselő eszköz jóvoltából.[8]
ebuildek
Az ebuild egy bash szkript, melyet szoftverek fordításának és telepítésének automatizálására terveztek.
Az ebuildek szkript természetük miatt könnyen szerkeszthetőek és elképesztő rugalmasságot nyújtanak, amivel lehetővé válik bináris csomagok telepítése éppúgy, mint források tetszőleges paraméterekkel történő fordítása amellett, hogy a függőségek kezelése megoldott.
Egy példa az ebuild fájlra:
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
ETYPE="sources"
K_WANT_GENPATCHES="base extras experimental"
K_GENPATCHES_VER="40"
inherit kernel-2
detect_version
detect_arch
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
HOMEPAGE="https://dev.gentoo.org/~mpagano/genpatches"
IUSE="experimental"
DESCRIPTION="Full sources including the Gentoo patchset for the ${KV_MAJOR}.${KV_MINOR} kernel tree"
SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI}"
pkg_postinst() {
kernel-2_pkg_postinst
einfo "For more info on this patchset, and how to report problems, see:"
einfo "${HOMEPAGE}"
}
pkg_postrm() {
kernel-2_pkg_postrm
}
Portage parancsok
A portage egy komplett szinkronizációs fordító és telepítő csomagrendszer összessége, így a teljes kihasználásához több parancs ismerete szükséges.
- emerge: általános telepítő és kereső program (a legtöbb esetben csak ennek a használata szükséges)
- a rendszer frissítése és tisztítása után érdemes futtatni a @preserved-rebuild gyűjtemény újratelepítését, mely segít a rendszer konzisztenciájának megőrzésében
- a kernel fordítása után a @module-rebuild, az X fordítása után az @x11-module-rebuild gyűjtemény telepítése célszerű
- revdep-rebuild: a rebuild gyűjteményeken felül ellenőrzi és javítja a rendszer integritását
- equery: részletes csomagelemző, kereső program (ritkán használt, komplett csomagrendszerek pl. kde maszkolásánál, vagy fájlok keresésénél hasznos)
- elclean: a portage tisztító alkalmazása (hasznos, ha kevés helyünk van)
- genlop: a portage log-fájljainak elemzésére szolgál (a telepítési időtartamok megbecslésére kiválóan alkalmas)
emerge
A Portage rendszer legfontosabb parancsa az emerge
. Ezzel lehet a tükörszerverről szinkronizálni az aktuális Portage könyvtárat, telepíteni, csomagok között keresni és még sok minden mást. A legfontosabb parancsokat - ami nélkül a portage rendszer karban tartása elképzelhetetlen - a következő táblázat szemlélteti:
revdep-rebuild
A függőségek ellenőrzésére és a rendszer integritásának javítására szolgáló parancs működését a következő táblázat mutatja:
equery
A részletes keresésre és reguláris kifejezések általi telepítésre ad lehetőséget ez a parancs. A következő táblázat néhány ötletet tartalmaz kedvcsinálónak.
eclean
A források, vagy a bináris csomagok törlését segíti elő.
genlop
A log-fájlok tartalmának elemzésére, abból számított kalkulációk készítésére alkalmas.
Képgaléria
- A Gentoo "world" (összes csomag) frissítése
- emerge—depclean működés közben
- A rendszer konzisztenciájának ellenőrzése
Konfiguráció

A Portage konfigurációs fájljai a /etc/portage
könyvtárban találhatóak.[9] Az ebuild információk központilag (/etc/portage/make.conf
fájlban), vagy csomagonként (/etc/portage/package.*
fájlokban, vagy könyvtárakban) felülírhatóak.
USE flagek
A USE flagek lehetővé teszik a csomagfüggőségek kezelését. Mivel a függőségek kezelése fordítási időben történik, ezért a bináris rendszerekkel ellentétben lehetőség van nem kívánt függőségek elhagyására is, amivel sokkal testre szabottabb rendszer állítható elő.
A USE flagek használhatóak egyedi csomagokra parancssorban, /etc/portage/package.use
fájlban, vagy központilag a /etc/portage/make.conf
fájlban. A USE flag előjel nélküli használatával a függőség beépítésre kerül, amíg negatív előjellel eltávolításra, ezzel felülírva az ebuild fájl vonatkozó utasításait.
make.conf
A /etc/portage/make.conf
fájlban állíthatóak be az alapvető optimalizációs paraméterek, architektúra kiválasztása valamint a globálisan alkalmazott USE flagek, maszkolások.
Példa a make.conf fájlra:
CHOST="x86_64-pc-linux-gnu" # amd64 bites rendszer
CFLAGS="-march=sandybridge -O2 -pipe" # optimalizáció egy Sandy Bride-hez
CXXFLAGS="${CFLAGS}"
# a make 5 szálon fusson (ált. magok száma + 1)
MAKEOPTS="-j5"
# nyelvi beállítások
L10N="hu en de hu-HU en-GB en-US de-DE"
LANG="hu_HU.UTF-8"
# soha ne használjon gtkv2-t és mindig használjon qtv5-öt, ha lehet
USE="-gtk2 qt5"
# az ideiglenes fordítási könyvtár legyen a memóriában (ez nagy memóriát igényelhet)
PORTAGE_TMPDIR="/dev/shm/"
# néhány videókártya drájver
VIDEO_CARDS="intel i965 modesetting nvidia"
# a Google Chrome licence legyen automatikusan elfogadva
ACCEPT_LICENSE="google-chrome"
package.*
Ha a csomagokat egyesével akarjuk konfigurálni, akkor használjuk a /etc/portage/package.*
fájlokat, vagy, ha túl sok bennük az információ, akkor még a jobb áttekinthetőség kedvéért /etc/portage/package.*
könyvtárakat és abban elhelyezett bármilyen nevű fájlokat.
Ezen fájlok némelyikében használhatóak az architektúrák (x86, amd64 stb.) és mindegyikében a kategória és a csomagnevek ill. ezek pontos, vagy rész verziószámai.Ezen felül verzió megadása esetén a relációs jelekkel (=, <, >, >=, <=) meglehetősen rugalmasan használható a konfiguráció.
Bővebb információ a lehetőségekről a Portage rendszer konfigurációs könyvtáráról szóló weblapon.
Remove ads
Grafikus frontendek és kiegészítők

A Portage egy önmagában jól használható parancssori rendszer, de léteznek hozzá grafikus frontendek és egyéb kiegészítő alkalmazások.
- Kuroo: KDELibs4/Qt4 alapú grafikus frontend
- Porthole: Gtk+ alapú grafikus frontend
- elogviewer: PyQt alapú elog megjelenítő
- gentoo-syntax: szintaxis kiemelő vim plugin a Gentoo és a Portage rendszer fájljaihoz
További információk
- Biztonságos C Flagek használata (angol nyelven)
- Processzor függő opciók a GCC dokumentációjában (angol nyelven)
- Gentoo USE flagek listája (angol nyelven)
- A hivatalos Gentoo csomaglista (angol nyelven)
- A nem Gentoo által fenntartott repók (angol nyelven)
- A Portage rendszer konfigurációs könyvtára (angol nyelven)
- Az ebuildek írásának dokumentációja (angol nyelven)
- Layman dokumentáció (angol nyelven)
Remove ads
Források
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads