8.50.1. Installasjon av Python 3
Forbered Python for kompilering:
./configure --prefix=/usr \
--enable-shared \
--with-system-expat \
--with-system-ffi \
--enable-optimizations
Betydningen av konfigureringsalternativene:
-
--with-system-expat
-
Denne bryteren muliggjør kobling mot systemversjonen av
Expat.
-
--with-system-ffi
-
Denne bryteren muliggjør kobling mot systemversjonen av
libffi.so
.
-
--enable-optimizations
-
Denne bryteren muliggjør omfattende, men tidkrevende,
optimaliseringstrinn Tolken bygges to ganger; tester utført
på det første bygget brukes til å forbedre den optimaliserte
endelige versjonen.
Kompiler pakken:
make
Det anbefales ikke å kjøre testene på dette tidspunktet. Tester er
kjent for å henge på ubestemt tid i det delvise LFS miljøet. Om
ønskelig kan testene kjøres på nytt på slutten av dette kapittelet
eller når Python 3 er reinstallert i BLFS. For å kjøre testene
uansett, utsted make
test.
Installer pakken:
make install
Vi bruker pip3
kommandoen til å installer Python 3 programmer og moduler for alle
brukere som root
flere steder i
denne boken. Dette er i konflikt med Python utviklernes anbefaling:
å installere pakker i et virtuelt miljø, eller inn i hjemmemappen
til en vanlig bruker (ved å kjøre pip3 som denne brukeren). En
advarsel med flere linjer utløses når pip3 er utstedt av root
brukeren.
Hovedgrunnen for anbefalingen er å unngå konflikter med systemets
pakkeansvarlig (dpkg,
for eksempel). LFS har ikke en systemomfattende pakkebehandling, så
dette er ikke et problem. Også, pip3 vil se etter en ny versjon
av seg selv når den kjøres. Siden domenenavnoppløsning ikke er
konfigurert ennå i LFS chroot miljøet, pip3 kan ikke sjekke for en ny
versjon av seg selv, og vil produsere en advarsel.
Etter at vi har startet opp LFS systemet og satt opp en
nettverkstilkobling, en annen advarsel vil bli gitt, og ber
brukeren om å oppdatere pip3 fra et forhåndsbygd wheel på
PyPI (når en ny versjon er tilgjengelig). Men LFS vurderer
pip3 å være en del av
Python 3, så det burde det ikke oppdateres separat. Dessuten vil en
oppdatering fra et forhåndsbygd wheel avvike fra vårt mål: å bygge
et Linuxsystem fra kildekoden. Så advarsel om en ny versjon av
pip3 bør ignoreres om
vi vil. Hvis du ønsker det, kan du undertrykke alle disse
advarslene ved å kjøre følgende kommando, som oppretter en
konfigurasjonsfil:
cat > /etc/pip.conf << EOF
[global]
root-user-action = ignore
disable-pip-version-check = true
EOF
Important
I LFS og BLFS bygger og installerer vi normalt Pythonmoduler med
pip3 kommandoen.
Vennligst pass på at pip3
install kommandoer i begge bøkene kjøres som
root
brukeren med mindre det er
for et virtuelt Python-miljø. Å kjøre en pip3 install som en
ikke-root
bruker kan synes å
fungerer fint, men det vil føre til at den installerte modulen
blir utilgjengelig av andre brukere.
pip3 install vil
ikke installere en allerede installert modul som standard. Når du
bruker pip3 install
kommandoen for å oppgradere en modul (for eksempel fra
meson-0.61.3 til meson-0.62.0), sett inn alternativet --upgrade
inn i kommandolinjen.
Hvis det virkelig er nødvendig å nedgradere en modul, eller
installer samme versjon på nytt av en eller annen grunn, sett inn
--force-reinstall
--no-deps
inn i kommandolinjen.
Hvis ønskelig, installer den forhåndsformaterte dokumentasjonen:
install -v -dm755 /usr/share/doc/python-3.11.2/html
tar --strip-components=1 \
--no-same-owner \
--no-same-permissions \
-C /usr/share/doc/python-3.11.2/html \
-xvf ../python-3.11.2-docs-html.tar.bz2
Betydningen av dokumentasjonsinstallasjons
kommandoene:
-
--no-same-owner
og --no-same-permissions
-
Sørger for at de installerte filene har riktig eierskap og
tillatelser. Uten disse alternativene, tar vil installere pakkefilene med
oppstrøms skaperens verdier.