Pakkene som er installert i denne boken er bare toppen av isfjellet. Vi håper at erfaringen du fikk med LFS boken og BLFS boken vil gi deg bakgrunnen som trengs for å kompilere, installere og konfigurere pakker som ikke er inkludert i denne boken.
Når du vil installere en pakke til et annet sted enn /
, eller /usr
, du
installerer utenfor standard miljøinnstillinger på de fleste
maskiner. Følgende eksempler bør hjelpe deg med å finne ut hvordan du
kan rette opp denne situasjonen. Eksemplene dekker hele spekteret av
innstillinger som kan trenge oppdatering, men alle er ikke nødvendige
i alle situasjoner.
Utvid PATH
til å inkludere
$PREFIX/bin
.
Utvid PATH
for root
til å inkludere $PREFIX/sbin
.
Legg til $PREFIX/lib
til
/etc/ld.so.conf
eller utvid
LD_LIBRARY_PATH
til å inkludere det.
Før du bruker sistnevnte alternativ, sjekk ut http://xahlee.info/UnixResource_dir/_/ldpath.html.
Hvis du endrer /etc/ld.so.conf
,
husk å oppdatere /etc/ld.so.cache
ved å utføre ldconfig som root
bruker.
Legg til $PREFIX/man
til
/etc/man_db.conf
eller utvid
MANPATH
.
Legg til $PREFIX/info
til
INFOPATH
.
Legg til $PREFIX/lib/pkgconfig
til PKG_CONFIG_PATH
. Noen pakker
installerer nå .pc
filer i
$PREFIX/share/pkgconfig
, så du må
kanskje inkludere denne mappen også.
Legg til $PREFIX/include
til
CPPFLAGS
ved kompilering av pakker
som avhenger av pakken du installerte.
Legg til $PREFIX/lib
til
LDFLAGS
når du kompilerer pakker som
er avhengige av et bibliotek installert av pakken.
Hvis du er på søker etter en pakke som ikke er i boken, følgende er forskjellige måter du kan søke etter ønsket pakke på.
Hvis du vet navnet på pakken, søk på SourceForge etter den på
https://sourceforge.net/directory/,
og søk GitHub for den på https://github.com/. Søk også Google
på https://google.com/. Noen ganger et
søk etter rpm
på https://rpmfind.net/ eller
deb
på https://www.debian.org/distrib/packages#search_packages
kan også føre til en lenke til pakken.
Hvis du kjenner navnet på den kjørbare filen, men ikke pakken som den kjørbare filen tilhører, prøv først et Google søk med navnet på den kjørbare. Hvis resultatene er overveldende, prøv å søke etter en gitt kjørbar i Debian depotet på https://www.debian.org/distrib/packages#search_contents.
Noen generelle tips om håndtering av nye pakker:
Mange av de nyere pakkene følger ./configure && make && make install prosessen. Hjelp til alternativene som godtas av configure kan fås via kommandoen ./configure --help.
De fleste pakkene inneholder dokumentasjon om kompilering og installering av pakken. Noen av dokumentene er utmerkede, andre ikke så utmerket. Sjekk ut hjemmesiden til pakken for ytterligere og oppdaterte tips for kompilering og konfigurering av pakken.
Hvis du har problemer med å kompilere pakken, prøv å søke i LFS arkivet på https://www.linuxfromscratch.org/search.html for feilen eller hvis det mislykkes, prøv å søke på Google. Ofte vil en distribusjon allerede ha løst problemet (mange av dem bruker utviklingsversjoner av pakker, så de ser endringene raskere enn de av oss som vanligvis bruker stabile utgitte versjoner). Men vær forsiktig - alle byggere har en tendens til å bære oppdateringer som ikke er nødvendig lenger, og å ha rettelser som bare er nødvendige på grunn av deres bestemte valg i hvordan de bygger en pakke. Du må kanskje søke dypt for å finne en løsning for pakkeversjonen du prøver å bruke, eller til og med for å finne pakken (navnene er noen ganger ikke det du kan forvente, f.eks. ghostscript har ofte et prefiks eller et suffiks i sitt navn), men følgende merknader kan hjelpe, spesielt for de, som redaktørene, prøver å bygge de nyeste versjonene og møter problemer:
Arch https://www.archlinux.org/packages/
- Tast inn pakkenavnet i 'Søkeord' boksen, velg
pakkenavnet, velg 'Kildefiler' feltet, og velg deretter
PKGBUILD
oppføring for å se
hvordan de bygger denne pakken.
Debian http://ftp.debian.org/debian/pool
(bruk ditt lands versjon hvis det er en) - kilden vil
være i .tar.gz tarballen (enten den opprinnelige
oppstrøms .orig
kilden,
eller dfsg
som inneholder
de delene som er i samsvar med Debians retningslinjer for
gratis programvare) akkompagnert av versjonert .diff.gz
eller .tar.gz tillegg. Disse tilleggene viser ofte
hvordan pakken er bygget, og kan inneholde oppdateringer.
I .diff.gz-versjonene opprettes alle oppdateringsfiler i
debian/patches
.
Fedora pakkekilden blir omorganisert fra tid til annen. For øyeblikket er pakkekilden for rpms på https://src.fedoraproject.org/projects/rpms/%2A og derfra kan du prøve å legge inn et pakkenavn i søkeboksen. Hvis pakken er funnet kan du se på filene (spesifikasjonsfil for å kontrollere bygget, diverse oppdateringer) eller commits. Hvis det mislykkes, kan du laste ned en srpm (kilde rpm) og bruke rpm2cpio (se tipset nederst på siden). For rpms gå til https://dl.fedoraproject.org/pub/fedora/linux/ og velg deretter hvilken repo du ønsker å se på - development/rawhide er den siste utvikling, eller velg utgivelser for det som ble sendt i en utgivelse, updates for oppdateringer til en utgivelse, eller updates/testing for de siste oppdateringer som kan fungere eller ha problemer.
Gentoo - Bruk først en søkemotor for å finne et ebuild
som ser ut som det løser problemet, eller søk på
https://packages.gentoo.org/
- bruk søkefeltet. Legg merke til hvor pakken bor i
porterings hierarkiet, f.eks. app-something/
. Generelt kan du
behandle ebuild som en slags pseudo-kode / skall
kombinasjon med noen funksjoner du kan som du kan gjøre
en gjetning på, som f.eks dodoc. Hvis løsningen
bare er en sed, Prøv det.
Imidlertid vil reparasjonen i de fleste tilfeller bruke
en oppdatering. For å finne oppdateringen, bruk et
gentoo-portage speil: To lenker til speil i U.S.A. som
vanligvis ser ut til å være oppdatert er https://mirror.rackspace.com/gentoo-portage/
og https://mirror.steadfast.net/gentoo-portage/.
Naviger ned treet til pakken, deretter til files/
mappen for å se etter
oppdateringen. Noen ganger har ikke et porteringsspeil
blitt oppdatert, spesielt for en nylig ny oppdatering. I
noen få tilfeller, gentoo batch oppdaterer inn i en
tarball og ebuild vil ha en lenke i skjemaet
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz
: her, se etter PATCH_DEV og PATCH_VER i bygget og
formater hele URL i nettleseren din eller for wget : husk
'~' før utviklerens ID og merk at å prøve å søke på de
tidligere nivåene av URLen i en nettleseren kan sende deg
til www.gentoo.org eller returnere 403 (forbudt).
openSUSE gi en rullende utgivelse, noen pakkeversjoner er i https://download.opensuse.org/source/tumbleweed/repo/oss/src/ men andre er i ../update/openSUSE-current/src - kilden ser bare ut til å være tilgjengelig i kilde rpms.
Slackware - den offisielle pakkenettleseren er for
øyeblikket ødelagt. Stedet https://slackbuilds.org/
har nåværende og tidligere versjoner i deres uoffisielle
depot med lenker til hjemmesider, nedlastinger, og noen
individuelle filer, spesielt .SlackBuild
filer.
Ubuntu http://ftp.ubuntu.com/ubuntu/pool/ - se Debian merknader ovenfor.
Hvis alt annet mislykkes, prøv blfs-support e-postlisten.
Hvis du har funnet en pakke som kun er tilgjengelig i .deb
eller .rpm
format, det er to små skript, rpm2targz og deb2targz som er tilgjengelig på
https://anduin.linuxfromscratch.org/BLFS/extras/deb2targz.tar.bz2
og
https://anduin.linuxfromscratch.org/BLFS/extras/rpm2targz.tar.bz2
å konvertere arkivene til en enkel tar.gz
format.
Du kan også finne et rpm2cpio skript nyttig. Perl versjonen i linux kjernearkiver på https://lore.kernel.org/all/20021016121842.GA2292@ncsu.edu/2-rpm2cpio fungerer for de fleste kilderpm. rpm2targz skriptet vil bruke et rpm2cpio skript eller binær hvis en er på vei. Merk at rpm2cpio vil pakke ut en kilde rpm i gjeldende mappe, og gir en tarball, en spesifikasjonsfil og kanskje oppdateringer eller andre filer.