Portage (oprogramowanie) - Portage (software)

Przewóz
Portage-oppdatering.png
Portage w akcji
Wersja stabilna
3.0.18 / 29 marca 2021 ; 6 miesięcy temu ( 2021-03-29 )
Magazyn
Napisane w Pyton
System operacyjny Gentoo Linux i Gentoo/FreeBSD , Chromium OS , Chrome OS , Sabayon , Funtoo Linux , Calculate Linux
Platforma Zgodny z POSIX / Kompatybilny z Pythonem
Rodzaj System zarządzania pakietami
Licencja Powszechna Licencja Publiczna GNU v2
Strona internetowa wiki .gentoo .org /wiki /Projekt:Portage

Portage to system zarządzania pakietami pierwotnie stworzony i używany przez Gentoo Linux, a także m.in. przez Chrome OS , Calculate , Sabayon i Funtoo Linux . Portage opiera się na koncepcji kolekcji portów . Gentoo jest czasami określane jako metadystrybucja ze względu na wyjątkową elastyczność Portage, która czyni go niezależnym od systemu operacyjnego . Projekt Gentoo/Alt dotyczy wykorzystania Portage do zarządzania innymi systemami operacyjnymi, takimi jak BSD , macOS i Solaris . Najbardziej godną uwagi z tych implementacji jest projekt Gentoo/FreeBSD .

Jest to ciągły wysiłek zwany projekt Package Manager Specification (PMS), która ma na celu standaryzację i udokumentować zachowanie Portage, pozwalając ebuildem drzewa i pakiety Gentoo do wykorzystania alternatywnych menedżerów pakietów, takich jak Paludis i pkgcore. Jego celem jest określenie dokładnego zestawu funkcji i zachowania menedżerów pakietów i ebuildów, służących jako autorytatywne odniesienie dla Portage.

Przegląd

Dostęp do Portage

Graficzna nakładka na iluminator.

Portage jest podobne do zarządzania pakietami w stylu BSD , znanego jako porty i zostało pierwotnie zaprojektowane z myślą o portach FreeBSD . Portage jest napisany w języku programowania Python i jest głównym narzędziem definiującym Gentoo. Chociaż sam system jest znany jako Portage, składa się z dwóch głównych części: systemu ebuild i emerge . System ebuild zajmuje się faktyczną pracą nad budowaniem i instalowaniem pakietów, podczas gdy emerge zapewnia interfejs do ebuildu: zarządzanie repozytorium ebuildów, rozwiązywanie zależności i podobnych problemów. (Te dwa mają zatem mniej więcej taką samą zależność, jak rpm z yum , lub dpkg z APT .)

GTK + -na GUI, iluminator , jest dostępny do pracy z Portage. Istnieje również GUI Himerge , co oznacza „Haskell Interface for eMerge”.

Zapewnione funkcje

Portage charakteryzuje się swoją główną funkcją: kompilacją z kodu źródłowego pakietów, które użytkownik chce zainstalować. W ten sposób umożliwia dostosowanie opcji kompilatora i aplikacji docelowej do specyfikacji systemu i życzeń użytkownika. Funkcjonalności związane z zarządzaniem systemem obejmują: umożliwienie równoległej instalacji wersji pakietu, śledzenie zależności między pakietami , zarządzanie bazą zainstalowanych pakietów, udostępnienie lokalnego repozytorium ebuildów oraz synchronizację lokalnego drzewa Portage ze zdalnymi repozytoriami. Funkcjonalności związane z instalacją poszczególnych pakietów obejmują: określenie ustawień kompilacji dla maszyny docelowej oraz wybór składników pakietu.

Portage rozróżnia trzy poziomy stabilności ebuildów: stabilny (np. oprogramowanie działa zgodnie z przeznaczeniem bez znanych problemów z bezpieczeństwem w momencie wydania), słowo kluczowe maskowane (głównie dla pakietów, które nie zostały wystarczająco przetestowane na docelowej architekturze systemu, aby były brane pod uwagę stabilne) i mocno zamaskowane (zepsute lub bardzo niepewne) pakiety.

Cechy

Pojawić się

Rozłączenie menedżera plików SpaceFM

Wyłaniają narzędzie wiersza polecenia jest sercem Portage. Polecenie można dostosować za pomocą wielu opcji i modyfikatorów. Narzędzie emerge jest najważniejszym narzędziem umożliwiającym dostęp do funkcji Portage z wiersza poleceń .

Program oblicza i zarządza zależnościami, wykonuje ebuildy oraz utrzymuje lokalne drzewo Portage i bazę zainstalowanych pakietów. Ustawienia kompilacji używane przez ebuildy można zmienić za pomocą zmiennej środowiskowej CFLAGS , w oparciu o specyfikację indywidualnego komputera i chęć optymalizacji przez użytkownika. Narzędzie emerge wykonuje ebuildy w środowisku sandbox . W ten sposób system jest chroniony przed oprogramowaniem uruchamianym przez ebuild, a wynikowe pliki binarne są łączone dopiero po udanej kompilacji i instalacji w trybie piaskownicy.

Na to, co emerge instaluje jako zależności, mają wpływ ustawienia flag USE. To oni decydują, które opcjonalne funkcje zostaną uwzględnione podczas instalowania lub uaktualniania aplikacji. Polecenia emerge można również użyć do pobrania i zainstalowania prekompilowanych plików binarnych.

USE flagi

Portage podczas aktualizacji systemu

System Portage oferuje użycie "flag USE", które pozwalają użytkownikom wskazać, które funkcje oprogramowania chcieliby uwzględnić (i wykluczyć) podczas budowania pakietów. Na przykład istnieje flaga USE, aby włączyć obsługę DVD , jeśli jest dostępna, w pakietach skompilowanych z włączoną flagą. Flagi USE wpływają na to, które zależności są wymagane, ogólnie wpływając na to, które opcjonalne funkcje zostaną wbudowane w dany program podczas jego kompilacji. Na przykład w pakietach, które używają skryptu konfiguracyjnego , flaga USE featuretłumaczy się na ./configure --with-feature.

Specyfikacja flag USE to typowy sposób konfigurowania programów w Gentoo. Flagi USE mogą być ustawiane ręcznie lub za pomocą przyjaznych dla użytkownika narzędzi, takich jak „ufed” (edytor flag USE), który wyświetla flagi wraz z ich opisem. Lista dostępnych flag USE jest dostępna na stronie Gentoo na stronie internetowej Gentoo USE Flag Index .

ebuild

Gentoo domyślnie nie używa pakietów binarnych, jak robią to inne systemy zarządzania pakietami (takie jak pacman ), zamiast tego używa formatu znanego jako ebuild. Podczas gdy pliki binarne RPM są prekompilowanymi plikami binarnymi , ebuildy to skrypty powłoki ze zmiennymi i funkcjami, które zawierają opis oprogramowania oraz instrukcje, jak je uzyskać, skonfigurować, kompilować i zainstalować, bardziej zbliżone do (ale bardziej wydajne niż) . pliki spec dystrybuowane w SRPM-ach . Dostępnych jest ponad 19 000 ebuildów, z których większość jest dystrybuowana przez serwery lustrzane Gentoo . Nowe i zaktualizowane ebuildy można uzyskać poprzez synchronizację lokalnego repozytorium ebuildów z serwerami lustrzanymi. Odbywa się to poprzez wykonanie polecenia emerge --sync. Historycznie, Gentoo dostarczało prekompilowane pakiety binarne dla wielu popularnych programów, zwłaszcza tych, których kompilacja jest długa, takich jak Mozilla Firefox i OpenOffice.org . Są one nadal instalowane wraz z emerge, po prostu dodając "-bin" do nazwy pakietu, aby zamiast tego zainstalować wersję binarną.

Przykład ebuilda dla Terminatora :

# 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
}

Pakiety binarne

Gentoo posiada binarny format pakowania, który jest plikiem .tbz2 ( tar z kompresją bzip2 ) z dodatkowymi metadanymi . Funkcja ta umożliwia budowanie pakietów binarnych na jednym systemie (za pomocą Portage buildpkglub quickpkg), a następnie szybką instalację na innych, identycznych systemach (za pomocą Portage getbinpkglub emerge -K). Zobacz Funkcje Portage w Podręczniku Gentoo Linux, aby uzyskać więcej informacji.

Maskowanie

Maskowanie to sposób, w jaki Gentoo określa, które pakiety są odpowiednie dla systemu. Ebuildy zaprojektowane dla różnych architektur lub oprogramowania eksperymentalnego są zwykle maskowane w sposób, który uniemożliwia stabilnemu systemowi instalację ich bez interwencji użytkownika.

Pakiety, które zazwyczaj wymagają tylko trochę testów, ale często działają poprawnie, są nazywane maskowanymi słowami kluczowymi (tj. są dostępne dla systemów z wpisem ACCEPT_KEYWORDS make.conf zaczynającym się od znaku ~, na przykład ~x86, ~amd64, ~ppc). Standardowym sposobem zdemaskowania pojedynczego pakietu zamaskowanego słowa kluczowego jest dodanie pliku z pełną nazwą pakietu i słowem kluczowym do /etc/portage/package.accept_keywords/. Użytkownicy mogą tutaj również tworzyć podkatalogi, co pozwala na niestandardową organizację. Na przykład, jeśli zamaskowany pakiet miał wiele zamaskowanych zależności, użytkownik może utworzyć katalog z nazwą oryginalnego zamaskowanego pakietu i umieścić w tym katalogu wszystkie pliki masek dla pakietu i jego zależności. Ten schemat zastępuje starszy schemat posiadania /etc/portage/package.accept_keywordslisty plików tekstowych.

Pakiety ze znanymi problemami lub niewystarczająco dojrzałe, aby być kandydatami do wydania stabilnego, są mocno maskowane przez jeden z różnych plików package.mask w /usr/portage/profiles, a takim wpisom zazwyczaj towarzyszy komentarz deweloperów wyjaśniający przyczynę maska.


Gentoo/Alt

Gentoo/Alt to projekt stworzony do zarządzania przenoszeniem frameworka Portage i innych funkcji do innych systemów operacyjnych , takich jak Mac OS X i darmowe BSD . Gentoo/Alt zostało założone przez Pietera Van den Abeele i Daniela Robbinsa po tym, jak Pieter Van den Abeele założył Gentoo dla Mac OS X.

Mac OS X

Gentoo dla Mac OS X było pierwszym nie-Linuksowym projektem Gentoo i skupiało się na udostępnieniu doświadczenia Gentoo w systemie operacyjnym Apple poprzez wprowadzenie systemu Portage jako oddzielnej jednostki. Było to mniej więcej podobne do Fink i MacPorts , ale używało Portage zamiast systemu podobnego do Debiana lub Ports. Później Gentoo dla Mac OS X stało się podprojektem Gentoo/Alt. Projekt nie jest już aktywny, ponieważ jego główne założenie, aby używać i nie modyfikować systemu operacyjnego hosta, okazało się nierealne i ostatecznie zepsuło większość pakietów lub uczyniło je trudnymi do utrzymania. Gentoo dla Mac OS X zostało zastąpione przez Gentoo Prefix , który obecnie oferuje Gentoo użytkownikom Mac OS X.

Projekt Prefix w systemie Mac OS X jest testowany i obsługiwany w systemach Mac OS X Tiger, Leopard i Snow Leopard na architekturach PowerPC , IA-32 i x86-64 .

FreeBSD

Gentoo/FreeBSD
Logo Gentoo/FreeBSD
Rodzina systemów operacyjnych Uniksopodobny ( BSD )
Stan pracy Wycofane
Model źródłowy Otwarte źródło
Magazyn
Menedżer pakietów Przewóz
Typ jądra Monolityczny (kFreeBSD)
Kraina użytkownika FreeBSD
Licencja Różny
Oficjalna strona internetowa Gentoo/FreeBSD

Gentoo/FreeBSD przenosi projekt, strukturę i narzędzia Gentoo Linux, takie jak Portage i podstawowy układ Gentoo Linux, do systemu operacyjnego FreeBSD . Zamiast oryginalnego FreeBSD używany jest łańcuch narzędzi GNU Gentoo .

Mimo że projekt nie jest już utrzymywany przez aktywnych deweloperów Gentoo, istnieją instrukcje umożliwiające instalację pełnego systemu Gentoo/FreeBSD. Ebuildy systemu FreeBSD są zintegrowane z głównym drzewem Portage, ale port ten jest daleki od ukończenia ze względu na ilość pakietów, które muszą zostać przeniesione oraz brak odpowiedniego Live CD (Live CD FreeSBIE lub FreeBSD Setup CD jest używany podczas instalacja).

Obecne (pół) oficjalne logo Gentoo/FreeBSD to demoniczne „g”, wywodzące się z oryginalnego logo Gentoo Linux i inspirowane demonem BSD . Został zaprojektowany przez Mariusa Morawskiego w odpowiedzi na nieoficjalny konkurs ogłoszony na swoim blogu przez Diego Elio Pettenò.

NetBSD

Gentoo/NetBSD to projekt udostępniający przestrzeń użytkownika GNU zarządzaną przez Portage z jądrem NetBSD. Projekt rozpoczął Damian Florczyk. Celem jest tylko architektura x86, a system jako całość jest w stanie niekompletnym.

OpenBSD

Gentoo/OpenBSD
Logo Gentoo/OpenBSD
Rodzina systemów operacyjnych Uniksopodobny ( BSD )
Model źródłowy Otwarte źródło
Najnowsze wydanie Prefiks Gentoo na OpenBSD / 4 kwietnia 2011 ( 2011-04-04 )
Magazyn
Menedżer pakietów Przewóz
Typ jądra Monolityczny (kOpenBSD)
Kraina użytkownika OpenBSD
Licencja Różny
Oficjalna strona internetowa Gentoo/OpenBSD

Gentoo/OpenBSD jest podprojektem Gentoo/*BSD mającym na celu przeniesienie funkcji Gentoo, takich jak Portage, na system operacyjny OpenBSD . Został pierwotnie założony przez Grant Goodyear i obecnie znajduje się w fazie wstrzymania rozwoju. Obraz ISO oparty na OpenBSD 3.8 jest obecnie utrzymywany przez Karola Pasternaka i można go pobrać ze strony internetowej projektu.

DragonFlyBSD

Gentoo/DragonFlyBSD jest obecnie nieoficjalnym portem do jądra DragonFlyBSD . Projekt rozwija Robert Sebastian Gerus.

GNU Hurd

Opracowywany był również nieoficjalny port do GNU Hurd , który został porzucony pod koniec 2006 roku.

Android

Prowadzony przez Bendę Xu program „Gentoo RAP for Android Devices” instaluje wariant Gentoo o nazwie Gentoo RAP w prefiksie katalogu obok Androida. Jądro Linux jest używane zarówno przez Androida, jak i Gentoo RAP.

Interix

Gentoo/Interix (eprefix) to port Gentoo, który działa na podsystemie Interix dla Windows, znanym również jako Microsoft Windows Services for UNIX (SFU) lub Subsystem for Unix Applications (SUA). Efektem projektu Gentoo/Interix jest możliwość instalacji i używania systemu Portage do emerge natywnych aplikacji Windows (wymaga Visual Studio, 2008 Express Edition również to zrobi). Jednak ta funkcja nie obsługuje szerokiej gamy pakietów obsługiwanych przez inne platformy (w tym Interix).

Portaris

Nieoficjalny port na system operacyjny Solaris , „Portaris”, został ogłoszony około 2006 roku, ale nigdy nie przeszedł do stanu publicznego. Został on zastąpiony przez projekt Gentoo Prefix.

Plan 9

Rozpoczęty w 2011 roku jako projekt Google Summer of Code , Plan 9 For Gentoo bazuje na Gentoo i nakłada się na przestrzeń użytkownika inspirowaną Planem 9 . Deklarowanymi celami projektu są lepsze wsparcie sprzętowe , lepsze wsparcie oprogramowania oraz stworzenie „szoku kulturowego” dla osób, które wcześniej korzystały z systemów Linux . Projektem opiekuje się Robert Seaton.

Zobacz też

Bibliografia

Zewnętrzne linki

Oficjalna dokumentacja
Nieoficjalna dokumentacja
Podobne oprogramowanie