Portage (programvara) - Portage (software)
Stabil frisättning | 3.0.18 / 29 mars 2021
|
---|---|
Förvar | |
Skrivet i | Pytonorm |
Operativ system | Gentoo Linux och Gentoo/FreeBSD , Chromium OS , Chrome OS , Sabayon , Funtoo Linux , Beräkna Linux |
Plattform | POSIX -kompatibel/ Python -kapabel |
Typ | Pakethanteringssystem |
Licens | GNU General Public License v2 |
Hemsida | wiki |
Portage är ett pakethanteringssystem som ursprungligen skapades för och används av Gentoo Linux och även av Chrome OS , Calculate , Sabayon och Funtoo Linux . Portage bygger på konceptet hamnsamlingar . Gentoo kallas ibland för en metadistribution på grund av den extrema flexibiliteten hos Portage, vilket gör det operativsystemoberoende . Den Gentoo / Alt -projektet handlar om att använda Portage för att hantera andra operativsystem, såsom BSD , MacOS och Solaris . Den mest anmärkningsvärda av dessa implementeringar är Gentoo/FreeBSD -projektet.
Det pågår ett pågående arbete som heter Package Manager Specification project (PMS), som syftar till att standardisera och dokumentera beteendet hos Portage, så att ebuild -trädet och Gentoo -systempaketen kan användas med alternativa pakethanterare som Paludis och pkgcore. Dess mål är att specificera den exakta uppsättningen funktioner och beteende för pakethanterare och ebuilds, som fungerar som en auktoritativ referens för Portage.
Översikt
Åtkomst till Portage
Portage liknar pakethantering i BSD -stil som kallas portar , och designades ursprungligen med FreeBSD -portar i åtanke. Portage är skrivet på programmeringsspråket Python och är det viktigaste verktyget som definierar Gentoo. Även om själva systemet är känt som Portage, består det av två huvuddelar, ebuild -systemet och emerge . Ebuild -systemet tar hand om själva arbetet med att bygga och installera paket, medan emerge ger ett gränssnitt till ebuild: hantera ett ebuild -arkiv, lösa beroenden och liknande problem. (Dessa två har därför ungefär samma relation som rpm har med yum , eller dpkg har med APT .)
Ett GTK+ -baserat GUI, Porthole , är tillgängligt för att arbeta med Portage. Det finns också Himerge GUI, som står för "Haskell Interface for eMerge".
Funktioner tillhandahålls
Portage kännetecknas av dess huvudfunktion: att från källkoden sammanställa de paket som användaren vill installera. Genom att göra det tillåter det anpassning av kompilator- och målapplikationsalternativ för att passa systemets specifikationer och användarens egna önskemål. Funktioner relaterade till systemhantering inkluderar: att tillåta installation av parallella paketversioner, spåra beroende av paketberoende , hantera en databas med installerade paket, tillhandahålla ett lokalt ebuild-arkiv och synkronisera det lokala Portage-trädet med fjärrförråd. Funktioner relaterade till individuell paketinstallation inkluderar: specificering av kompileringsinställningar för målmaskinen och val av paketkomponenter.
Portage skiljer mellan tre nivåer av stabilitet i e -byggnader: stabil (t.ex. programvaran fungerar som avsett utan kända säkerhetsproblem vid tidpunkten för utgivningen), nyckelordsmaskerade (främst för paket som inte har testats tillräckligt på målsystemarkitekturen för att övervägas stabila) och hårt maskerade (trasiga eller mycket osäkra) paket.
Funktioner
Framträda
Den dyker kommandoradsverktyget är hjärtat i Portage. Kommandot kan anpassas med många alternativ och modifierare. Emerge -verktyget är det viktigaste verktyget för att komma åt funktionerna i Portage från kommandoraden .
Programmet beräknar och hanterar beroenden, kör ebuilds och underhåller det lokala Portage -trädet och databasen över installerade paket. De sammanställning inställningar som används av ebuildskript kan ändras genom CFLAGS miljövariabeln , baserat på specifikationerna för enskild dator och på användarens önskan om optimering. Emerge -verktyget kör e -byggnader i en sandlådemiljö . På så sätt skyddas systemet från mjukvara som körs av ebuild och resulterande binära filer slås bara samman efter en lyckad build och sandboxad installation.
Det som framträder installeras som beroenden påverkas av USE-flagginställningarna. De bestämmer vilka valfria funktioner som ska inkluderas när du installerar eller uppgraderar ett program. Kommandot emerge kan också användas för att ladda ner och installera förkompilerade binära filer.
ANVÄND flaggor
Portage -systemet erbjuder användning av "USE -flaggor", vilket gör att användare kan ange vilka programfunktioner de skulle vilja inkludera (och utesluta) när de bygger paket. Till exempel finns det en USE -flagga för att inkludera DVD -stöd, om tillgängligt, i paket som har sammanställts med flaggan aktiverad. USE -flaggorna påverkar vilka beroenden som krävs, vilket vanligtvis påverkar vilka valfria funktioner som kommer att byggas in i ett visst program när det kompileras. Till exempel i paket som använder ett konfigurationsskript skulle USE -flaggan feature
översättas till ./configure --with-feature
.
Specifikationen för USE -flaggor är det vanliga sättet att konfigurera program på Gentoo. USE-flaggor kan ställas in manuellt eller via användarvänliga verktyg som 'ufed' (USE-flaggredigerare), som listar flaggor tillsammans med deras beskrivning. En lista över tillgängliga USE -flaggor finns på Gentoo -webbplatsens USE Flag Index .
ebuild
Gentoo använder som standard inte binära paket som andra pakethanteringssystem gör (som pacman ), utan använder istället ett format som kallas ebuild. Medan RPM -binärer är förkompilerade binärer , är ebuilds skalskript med variabler och funktioner som innehåller en beskrivning av programvaran och instruktioner om hur man hämtar, konfigurerar, kompilerar och installerar det, närmare (men mer kraftfullt än) . spec -filer som distribueras i SRPM . Det finns över 19 000 ebuilds tillgängliga, varav majoriteten distribueras av Gentoo -speglarna . Nya och uppdaterade e -byggnader kan erhållas genom att synkronisera det lokala ebuild -förvaret med speglarna. Detta görs genom att utföra kommandot emerge --sync
. Historiskt sett har Gentoo tillhandahållit förkompilerade binära paket för många vanliga program, särskilt de som är långa att kompilera, till exempel Mozilla Firefox och OpenOffice.org . Dessa installeras fortfarande med emerge, bara genom att lägga till en "-bin" i paketnamnet för att istället installera den binära versionen.
Exempel på ebuild för Terminator :
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{6,7,8} )
DISTUTILS_USE_SETUPTOOLS="no"
inherit distutils-r1 virtualx xdg-utils
DESCRIPTION="Multiple GNOME terminals in one window"
HOMEPAGE="https://github.com/gnome-terminator/terminator"
SRC_URI="https://github.com/gnome-terminator/terminator/releases/download/v${PV}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ~ppc x86"
IUSE="dbus +libnotify"
RDEPEND="
>=dev-libs/glib-2.32:2
dev-libs/keybinder:3[introspection]
dev-python/configobj[${PYTHON_USEDEP}]
dev-python/psutil[${PYTHON_USEDEP}]
dev-python/pycairo[${PYTHON_USEDEP}]
dev-python/pygobject:3[${PYTHON_USEDEP}]
>=x11-libs/gtk+-3.16:3
x11-libs/vte:2.91[introspection]
dbus? ( dev-python/dbus-python[${PYTHON_USEDEP}] )
libnotify? ( x11-libs/libnotify[introspection] )
"
BDEPEND="
dev-util/intltool
"
distutils_enable_tests setup.py
PATCHES=(
"${FILESDIR}"/terminator-1.91-without-icon-cache.patch
"${FILESDIR}"/terminator-1.91-desktop.patch
"${FILESDIR}"/terminator-1.92-make-tests-fail.patch
"${FILESDIR}"/terminator-1.92-metainfo.patch
)
src_prepare() {
xdg_environment_reset
distutils-r1_src_prepare
}
src_test() {
virtx distutils-r1_src_test
}
pkg_postinst() {
xdg_desktop_database_update
xdg_icon_cache_update
}
pkg_postrm() {
xdg_desktop_database_update
xdg_icon_cache_update
}
Binära paket
Gentoo har ett binärt förpackningsformat, vilket är en .tbz2 -fil ( tjära med bzip2 -komprimering) med ytterligare metadata . Denna funktion gör det möjligt att bygga binära paket på ett system (med Portages buildpkg
eller quickpkg
) följt av snabb installation på andra, identiska system (med Portages getbinpkg
eller emerge -K
). Se Portage -funktioner i Gentoo Linux Handbook för mer information.
Maskering
Maskering är hur Gentoo avgör vilka paket som är lämpliga för ett system. Ebuilds utformade för olika arkitekturer eller experimentell mjukvara är vanligtvis maskerade på ett sätt som förhindrar att ett stabilt system installerar dem utan användarintervention.
Paket som i allmänhet bara kräver några tester, men kommer ofta fungerar bra sägs vara nyckelordet maskeras (det vill säga de är tillgängliga för system med en ACCEPT_KEYWORDS make.conf post som börjar med tecknet ~
, såsom ~x86
, ~amd64
, ~ppc
). Det vanliga sättet att avmaskera ett enskilt sökordsmaskerat paket är genom att lägga till en fil med fullständigt paketnamn och nyckelord till /etc/portage/package.accept_keywords/
. Användare kan också skapa underkataloger här, vilket möjliggör anpassad organisation. Till exempel, om ett maskerat paket hade flera maskerade beroenden, kunde användaren skapa en katalog med namnet på det ursprungliga maskerade paketet och lägga alla maskfiler för paketet och dess beroenden i den katalogen. Detta schema ersätter det äldre schemat för att ha /etc/portage/package.accept_keywords
en textfillista.
Paket med kända problem eller som inte anses mogna nog att vara kandidater för stabila maskeras hårt av en av de olika paketet. Maskfiler i/usr/portage/profiler, och sådana poster åtföljs vanligtvis av en kommentar från utvecklare som förklarar orsaken till mask.
Gentoo/Alt
Gentoo/Alt är ett projekt som skapats för att hantera portning av portage -ramverket och andra funktioner till andra operativsystem , till exempel Mac OS X och gratis BSD . Gentoo/Alt startades av Pieter Van den Abeele och Daniel Robbins efter att Pieter Van den Abeele grundat Gentoo för Mac OS X.
Mac OS X
Gentoo för Mac OS X var Gentoos första icke-Linux-projekt och fokuserade på att göra Gentoo-upplevelsen tillgänglig på Apples operativsystem genom att introducera Portage-systemet som en separat enhet. Detta liknade ungefär Fink och MacPorts , men det använde Portage istället för ett Debian-liknande eller Ports-liknande system. Senare gjordes Gentoo för Mac OS X till ett delprojekt av Gentoo/Alt. Projektet är inte längre aktivt, eftersom dess främsta antagande att använda och inte modifiera värd -OS tycktes inte vara realistiskt och så småningom bröt de flesta paketen eller gjorde dem knappt underhållbara. Gentoo för Mac OS X har ersatts av Gentoo Prefix , vilket för närvarande är vad Gentoo erbjuder till Mac OS X -användare.
Prefix-projektet på Mac OS X testas och stöds på Mac OS X Tiger, Leopard och Snow Leopard på PowerPC , IA-32 och x86-64 arkitekturer.
FreeBSD
OS -familj | Unix-liknande ( BSD ) |
---|---|
Arbetsläge | Avbruten |
Källmodell | Öppen källa |
Förvar | |
Pakethanterare | Portage |
kernel typ | Monolitiskt (kFreeBSD) |
Användarland | FreeBSD |
Licens | Olika |
Officiell hemsida | Gentoo/FreeBSD |
Gentoo/FreeBSD ger Gentoo Linux -design, struktur och verktyg som Portage och Gentoo Linux -baslayout till FreeBSD -operativsystemet. Gentoos GNU -verktygskedja används istället för den ursprungliga FreeBSD.
Även om projektet inte längre underhålls av några aktiva Gentoo -utvecklare, finns det instruktioner som tillåter installation av ett komplett Gentoo/FreeBSD -system. FreeBSD -systemets ebuilds är integrerade i huvudportaträdet, men den här porten är långt ifrån komplett på grund av mängden paket som måste portas och avsaknaden av en korrekt Live CD ( FreeSBIE : s Live CD eller FreeBSD -installations -CD används under installation).
Den nuvarande (halv) officiella logotypen för Gentoo/FreeBSD är en demoniserad "g", härledd från original Gentoo Linux -logotyp och inspirerad av BSD Daemon . Den designades av Marius Morawski och svarade på en inofficiell tävling som lanserades av Diego Elio Pettenò på sin blogg.
NetBSD
Gentoo/NetBSD är ett projekt för att förse ett GNU -användarland som hanteras av Portage med en NetBSD -kärna. Projektet startades av Damian Florczyk. Endast x86 -arkitekturen är inriktad och systemet som helhet är i ofullständigt tillstånd.
OpenBSD
OS -familj | Unix-liknande ( BSD ) |
---|---|
Källmodell | Öppen källa |
Senaste släppningen | Gentoo -prefix på OpenBSD / 4 april 2011 |
Förvar | |
Pakethanterare | Portage |
kernel typ | Monolitiskt (kOpenBSD) |
Användarland | OpenBSD |
Licens | Olika |
Officiell hemsida | Gentoo/OpenBSD |
Gentoo/OpenBSD är ett Gentoo/*BSD -delprojekt till port Gentoo -funktioner som Portage till OpenBSD -operativsystemet. Det startades ursprungligen av Grant Goodyear och pågår för närvarande i utvecklingsstopp. En ISO -bild baserad på OpenBSD 3.8 underhålls för närvarande av Karol Pasternak och kan laddas ner från projektets webbplats.
DragonFlyBSD
Gentoo/DragonFlyBSD är en för närvarande inofficiell port till DragonFlyBSD -kärnan. Projektet är utvecklat av Robert Sebastian Gerus.
GNU Hurd
En inofficiell hamn till GNU Hurd utvecklades också, men övergavs i slutet av 2006.
Android
Under ledning av Benda Xu installerar "Gentoo RAP för Android -enheter" en variant av Gentoo som heter Gentoo RAP i ett katalogprefix tillsammans med Android. Linux -kärnan används av både Android och Gentoo RAP.
Interix
Gentoo/Interix (eprefix) är en port i Gentoo som körs ovanpå Interix- delsystemet för Windows som också är känt som Microsoft Windows Services for UNIX (SFU) eller Subsystem for Unix-based Applications (SUA). Ett resultat av Gentoo/Interix -projektet är möjligheten att installera och använda Portage -systemet för att utveckla inbyggda Windows -program (kräver att Visual Studio, 2008 Express Edition också kommer att göra det). Den här funktionen stöder dock inte det stora utbudet av paket som stöds av andra plattformar (inklusive Interix).
Portaris
En inofficiell port till Solaris -operativsystemet, "Portaris", tillkännagavs omkring 2006, men kom aldrig in i en offentlig stat. Det ersattes av Gentoo Prefix -projektet.
Plan 9
Plan 9 For Gentoo startade 2011 som ett Google Summer of Code -projekt och tar Gentoo -basen och överlagrar ett användarutrymme inspirerat av Plan 9 . De uttalade målen med projektet är att få bättre hårdvarusupport , bättre mjukvarustöd och att skapa en "kulturchock" för personer som tidigare har använt Linux -system. Projektet underhålls av Robert Seaton.
Se även
Referenser
externa länkar
- Officiell dokumentation
- Funtoo Portage -dokumentation
- Gentoo Portage -funktioner
- Gentoo Portage Introduktion
- Arbetar med Portage
- Gentoo -paket , information om för närvarande tillgängliga e -byggnader
- Inofficiell dokumentation
- Gentoo-Portage , alternativ presentation av aktuell ebuild-information
- Använda Portage
- Installera portage på andra Linux distros
- Liknande programvara
- Emerde, portage-liknande projekt för Slackware
- Pkgcore , bsd omimplementering av portage
- Paludis , en pakethanterare som kan användas med ebuilds och andra format
- Arch Build System ett portliknande system för Arch Linux