Ero sivun ”Pkgsrc” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(Uusia ohjeita)
p (→‎Katso myös: Korjattu linkki artikkeliin Guix System)
 
(3 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
{{pienaakkonen}}
{{pienaakkonen}}
'''pkgsrc''' on [[NetBSD]]-projektin pakettienhallintajä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 [[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.
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 kotihakemistoon ==
Asennus tapahtuu kloonaamalla pkgsrc-puu omalle koneelle NetBSD:n versionhallinnasta ja kääntämällä tarvittavat ohjelmat lähdekoodista.
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 [[Tarball|tervapallona]] HTTP:n kautta. Myös [[git]]-versionhallintaa voidaan käyttää, sillä pkgsrc-puu on myös peilattu [https://github.com/NetBSD/pkgsrc 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 <tt>pkgsrc</tt> -hakemiston alle.
Kloonataan pkgsrc-kokoelma versionhallinnasta omaan kotihakemistoon <tt>pkgsrc</tt> -hakemiston alle.
  $ env CVS_RSH=ssh cvs -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout -P pkgsrc
  $ 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 <tt>--depth 1</tt> käytöstä.


Bootstrapataan tärkeimmät perusohjelmat muiden ohjelmien kääntämiseksi. Mikäli omassa jakelussa <tt>/bin/sh</tt> on symbolinen linkki [[Dash]]-komentotulkkiin, joudutaan määrittelemään pkgsrc käyttämään [[Bash]]-komentotulkkia [[env]]-ohjelman avulla.
Bootstrapataan tärkeimmät perusohjelmat muiden ohjelmien kääntämiseksi. Mikäli omassa jakelussa <tt>/bin/sh</tt> on symbolinen linkki [[Dash]]-komentotulkkiin, joudutaan määrittelemään pkgsrc käyttämään [[Bash]]-komentotulkkia [[env]]-ohjelman avulla.
Rivi 15: Rivi 23:
  $ cd ~/pkgsrc/bootstrap
  $ cd ~/pkgsrc/bootstrap
  $ env SH=/bin/bash ./bootstrap --unprivileged
  $ env SH=/bin/bash ./bootstrap --unprivileged
<tt>bootstrap</tt>-skripti ottaa vastaan myös muitakin valitsimia, kuten.
* <tt>--make-jobs 2</tt> - Käytä (esimerkiksi) kahta säiettä kääntämiseen
* <tt>--prefer-pkgsrc yes</tt> - Suosi pkgsrc-puun versioita ohjelmista ja kirjastoista kun asennat paketteja pkgsrc:n avulla.
* <tt>--prefer-native yes</tt> - Suosi valmiiksi asennettuja versioita ohjelmista ja kirjastoista kun asennat paketteja pkgsrc:n avulla. Huomaa että tämä valitsin ei ole yhteensopiva valitsimen <tt>--prefer-pkgsrc yes</tt> 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ä <tt>~/.profile</tt> -asetustiedostoon seuraavan rivin ja käynnistämällä komentotulkin sen jälkeen uudelleen:
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ä <tt>~/.profile</tt> -asetustiedostoon seuraavan rivin ja käynnistämällä komentotulkin sen jälkeen uudelleen:
Rivi 23: Rivi 36:


Käännetään lähdekoodeista ja asennetaan esimerkkinä [[Nano]]-editori:
Käännetään lähdekoodeista ja asennetaan esimerkkinä [[Nano]]-editori:
  $ cd ~/pkgsrc/editors/
  $ cd ~/pkgsrc/editors/nano
  $ bmake
  $ bmake
  $ bmake install
  $ bmake install
Rivi 38: Rivi 51:
  $ env CVS_RSH=ssh cvs update -dP -A
  $ env CVS_RSH=ssh cvs update -dP -A


Toinen vaihtoehto on käyttää uusinta ''stable'' -haaraa, joka on kirjoitushetkellä <tt>2019Q1</tt>.
Toinen vaihtoehto on käyttää uusinta ''stable'' -haaraa, joka on kirjoitushetkellä <tt>2024Q4</tt>.
  $ env CVS_RSH=ssh cvs update -dP -rpkgsrc-2019Q1
  $ 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 <tt>pkg_chk -u -s</tt> Huom! pkg_chk täytyy asentaa erikseen.
* Voit suorittaa komennon <tt>bmake update</tt> jonkun paketin hakemistossa (esim. hakemistossa  ''~/pkgsrc/editors/nano'')
* Voit käyttää komentoa <tt>bmake replace</tt> jonkun paketin hakemistossa. Tämän komenon ero on se että <tt>bmake update</tt> saattaa kääntää usean eri riippuvuuden (paketin) uudelleen.
Lisää vaihtoehtoja on esim. [https://wiki.netbsd.org/pkgsrc/how_to_upgrade_packages/#index2h1 NetBSD:n Wikissä] Huomaa että Linux käyttää NetBSD:n <tt>make</tt>-ohjelmasta nimeä <tt>bmake</tt>.


== pkgsrc-puun siivoaminen ==
== pkgsrc-puun siivoaminen ==
Rivi 47: Rivi 67:


== Aiheesta muualla ==
== Aiheesta muualla ==
* [https://pkgsrc.org Pkgsrc-projektin kotisivut]
* [https://www.netbsd.org/docs/pkgsrc/ The pkgsrc guide]
* [https://www.netbsd.org/docs/pkgsrc/ The pkgsrc guide]
* [https://wiki.netbsd.org/pkgsrc/how_to_use_pkgsrc_on_linux/ NetBSD wiki: How to use pkgsrc on Linux]
* [https://wiki.netbsd.org/pkgsrc/how_to_use_pkgsrc_on_linux/ NetBSD wiki: How to use pkgsrc on Linux]
* [http://www.pkgsrc.se/ www.pkgsrc.se]
* [https://www.pkgsrc.se/ www.pkgsrc.se - kätevä pakettihaku sivusto]
 
==Katso myös==
* [[Flatpak]] - Jakelusta riippumaton paketinhallinta Linuxille.
* [[Snap]] - [[Canonical]]in tekemä kilpailija Flatpakille.
* [[AppImage]] - Eräs siirrettävä pakettiformaatti Linuxille.
* [[GNU Guix]] - [[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]] - [[Gentoo]]n paketinhallintajärjestelmä ([[Portage]]) voidaan myös asentaa toisen Linux-jakelun kotikansioon.


[[Luokka:Paketinhallinta]]
[[Luokka:Paketinhallinta]]

Nykyinen versio 21. maaliskuuta 2025 kello 12.30

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[muokkaa]

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[muokkaa]

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[muokkaa]

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[muokkaa]

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[muokkaa]

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[muokkaa]

Katso myös[muokkaa]

  • Flatpak - Jakelusta riippumaton paketinhallinta Linuxille.
  • Snap - Canonicalin tekemä kilpailija Flatpakille.
  • AppImage - Eräs siirrettävä pakettiformaatti Linuxille.
  • GNU Guix - 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.