Portage (programvara) - Portage (software)

Portage
Portage-uppdatering.png
Portage i aktion
Stabil frisättning
3.0.18 / 29 mars 2021 ; 6 månader sen ( 2021-03-29 )
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 .gentoo .org /wiki /Project: Portage

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

Porthole grafisk frontend.

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

Ta bort SpaceFM -filhanteraren

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 under systemuppdatering

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 buildpkgeller quickpkg) följt av snabb installation på andra, identiska system (med Portages getbinpkgeller 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_keywordsen 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

Gentoo/FreeBSD
Gentoo/FreeBSD -logotyp
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

Gentoo/OpenBSD
Gentoo/OpenBSD -logotyp
OS -familj Unix-liknande ( BSD )
Källmodell Öppen källa
Senaste släppningen Gentoo -prefix på OpenBSD / 4 april 2011 ( 2011-04-04 )
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
Inofficiell dokumentation
Liknande programvara