pkgsrc
pkgsrc on NetBSD-projektin paketinhallintajärjestelmä, joka muistuttaa paljon muista BSD-käyttöjärjestelmistä tuttuja ports-kokoelmia. Erona ports-kokoelmiin on kuitenkin yhteensopivuus useampien UNIX:in tapaisten käyttöjärjestelmien, kuten Linuxin, kanssa. Tuki Linuxille lisättiin vuonna 1999.
pkgsrc on erityisen kätevä Linuxilla käytettäessä silloin, kun halutaan asentaa ohjelmistoja omaan kotihakemistoon, eli tyypillisesti sellaisissa tilanteissa, joissa ei ole pääkäyttäjän oikeuksia kohdejärjestelmään.
Asennus kotihakemistoon
Asennus tapahtuu kloonaamalla pkgsrc-puu omalle koneelle NetBSD:n versionhallinnasta ja kääntämällä tarvittavat ohjelmat lähdekoodista. Pkgsrc-puu voidaan myös noutaa pakattuna tervapallona HTTP:n kautta. Myös git-versionhallintaa voidaan käyttää, sillä pkgsrc-puu on myös peilattu GitHub-palveluun. Päivitysten kannalta on kätevintä käyttää joko CVS- tai Git-versionhallintaa. Jos latasit pkgsrc-puun tervapallona, joudut poistamaan puretun pkgsrc-puun ja korvaamaan sen uudella puretulla tervapallolla aina kun haluat päivittää pkgsrc-puun.
Kloonataan pkgsrc-kokoelma versionhallinnasta omaan kotihakemistoon pkgsrc -hakemiston alle.
$ env CVS_RSH=ssh cvs -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout -P pkgsrc
Jos haluat käyttää vakaata versiota pkgsrc-puusta, voi noutaa sen näin.
$ CVS_RSH=ssh cvs -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout -r pkgsrc-2024Q4 -P pkgsrc
Huomaa että tämä lataa vuoden 2024 neljännen kvartaalin version. Päivitä numerot vastaamaan haluttua versiota.
Vaihtoehtoisesti myös git-versionhallintaa voidaan käyttää pkgsrc-puun noutamiseen.
$ git clone --depth 1 https://github.com/NetBSD/pkgsrc.git
Huomaa että, jos haluat pkgsrc-puun koko historian tai kaikki haarat (branch) käyttöösi, sinun täytyy poistaa valitsin --depth 1 käytöstä.
Bootstrapataan tärkeimmät perusohjelmat muiden ohjelmien kääntämiseksi. Mikäli omassa jakelussa /bin/sh on symbolinen linkki Dash-komentotulkkiin, joudutaan määrittelemään pkgsrc käyttämään Bash-komentotulkkia env-ohjelman avulla.
--unprivileged -valitsimen avulla pkgsrc saadaan asentamaan ohjelmat omaan kotihakemistoon ~/pkg -hakemiston alle, muussa tapauksessa ne asennettaisiin /usr/pkg -hakemistoon, johon tavallisella käyttäjällä ei ole muokkausoikeuksia.
$ cd ~/pkgsrc/bootstrap $ env SH=/bin/bash ./bootstrap --unprivileged
bootstrap-skripti ottaa vastaan myös muitakin valitsimia, kuten.
- --make-jobs 2 - Käytä (esimerkiksi) kahta säiettä kääntämiseen
- --prefer-pkgsrc yes - Suosi pkgsrc-puun versioita ohjelmista ja kirjastoista kun asennat paketteja pkgsrc:n avulla.
- --prefer-native yes - Suosi valmiiksi asennettuja versioita ohjelmista ja kirjastoista kun asennat paketteja pkgsrc:n avulla. Huomaa että tämä valitsin ei ole yhteensopiva valitsimen --prefer-pkgsrc yes kanssa.
Tässä vaiheessa voidaan lisätä PATH-ympäristömuuttujaan pkgsrc:n binäärien sijainnit, jolloin käännettyjä ohjelmia voidaan kutsua suoraan komentoriviltä. Tämän voi tehdä esimerkiksi lisäämällä ~/.profile -asetustiedostoon seuraavan rivin ja käynnistämällä komentotulkin sen jälkeen uudelleen:
PATH="$HOME/pkg/bin":"$HOME/pkg/sbin":$PATH
Ohjelmien asentaminen
Ohjelmien asennus lähdekoodeista tapahtuu siirtymällä asennettavan ohjelman hakemistoon pkgsrc-puussa ja kutsumalla siellä bmake -ohjelmaa, joka käännettiin bootsrappaus-vaiheessa ~/pkg/bin -hakemistoon.
Käännetään lähdekoodeista ja asennetaan esimerkkinä Nano-editori:
$ cd ~/pkgsrc/editors/nano $ bmake $ bmake install
Lopuksi voidaan turhat tiedostot siivota pois:
$ bmake clean $ bmake clean-depends
pkgsrc:n päivittäminen
pkgsrc voidaan päivittää yksinkertaisesti siirtymällä sen juurihakemistoon ja hakemalla päivitykset versionhallintajärjestelmästä. pkgsrc-kokoelma on jaettu useampaan haaraan: current on kehityshaara, joka sisältää kaikki uusimmat versiot ohjelmistoista, kun taas stable haarautetaan kvartaaleittain current -haarasta. Stable saa vain tärkeimpiä tietoturvapäivityksiä.
$ cd ~/pkgsrc
Päivitetään puu ja siirrytään käyttämään current -haaraa:
$ env CVS_RSH=ssh cvs update -dP -A
Toinen vaihtoehto on käyttää uusinta stable -haaraa, joka on kirjoitushetkellä 2024Q4.
$ env CVS_RSH=ssh cvs update -dP -rpkgsrc-2024Q4
Ohjelmien päivittäminen
Kun olet päivittänyt pkgsrc-puun, voit päivittää pkgsrc:n kautta asennetut ohjelmat. Pkgsrc tarjoaa useamman tavan päivittää paketteja, esimerkiksi.
- Voit käyttää komentoa pkg_chk -u -s Huom! pkg_chk täytyy asentaa erikseen.
- Voit suorittaa komennon bmake update jonkun paketin hakemistossa (esim. hakemistossa ~/pkgsrc/editors/nano)
- Voit käyttää komentoa bmake replace jonkun paketin hakemistossa. Tämän komenon ero on se että bmake update saattaa kääntää usean eri riippuvuuden (paketin) uudelleen.
Lisää vaihtoehtoja on esim. NetBSD:n Wikissä Huomaa että Linux käyttää NetBSD:n make-ohjelmasta nimeä bmake.
pkgsrc-puun siivoaminen
Toisinaan ohjelmien kääntäminen ei onnistu, jolloin puuhun jää lojumaan turhaa roinaa. Erikseen asennettavien pkgtools/pkglint ja pkgtools/pkg_distinst -ohjelmien avulla ne voidaan poistaa.
$ lintpkgsrc -or $ pkg_distinst --delete
Aiheesta muualla
- Pkgsrc-projektin kotisivut
- The pkgsrc guide
- NetBSD wiki: How to use pkgsrc on Linux
- www.pkgsrc.se - kätevä pakettihaku sivusto
Katso myös
- Flatpak - Jakelusta riippumaton paketinhallinta Linuxille.
- Snap - Canonicalin tekemä kilpailija Flatpakille.
- AppImage - Eräs siirrettävä pakettiformaatti Linuxille.
- GNU Guix - GNU Guix System -jakelun käyttämä paketinhallintajärjestelmä, jota voi käyttää myös muillakin Linux-jakeluilla.
- Nix - NixOS-jakelun käyttämä paketinhallintajärjestelmä, jota voi käyttää myös muillakin Linux-jakeluilla.
- Ravenports - Toinen hieman Pkgsrc:n kaltainen järjestelmä.
- Gentoo Prefix - Gentoon paketinhallintajärjestelmä (Portage) voidaan myös asentaa toisen Linux-jakelun kotikansioon.