<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fi">
	<id>https://www.linux.fi/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jkarlson</id>
	<title>Linux.fi - Käyttäjän muokkaukset [fi]</title>
	<link rel="self" type="application/atom+xml" href="https://www.linux.fi/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jkarlson"/>
	<link rel="alternate" type="text/html" href="https://www.linux.fi/wiki/Toiminnot:Muokkaukset/Jkarlson"/>
	<updated>2026-04-13T11:56:37Z</updated>
	<subtitle>Käyttäjän muokkaukset</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Keskustelu:Init&amp;diff=15178</id>
		<title>Keskustelu:Init</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Keskustelu:Init&amp;diff=15178"/>
		<updated>2007-05-10T19:22:04Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;jälleen minulla on sysvinit, joka käynnistää palvelut rinnakkain. minulla ei myöskään ole hakemistoa /etc/rc.d vaan runlevels. I&lt;br /&gt;
&lt;br /&gt;
Init ei myöskään millään tasolla perustu palvelujen käynnistämiseen rinnakkain, on olemassa tiettyjä ominaisuuksia ja joitain ominaisuuksia ei ole.&lt;br /&gt;
&lt;br /&gt;
Ehkä tässä initeille voisi tehdä jotain alaotsikoita. nämä kokonaiset iso kappaleet eivät jotenkin miellytä silmääni.&lt;br /&gt;
&lt;br /&gt;
otsikot ovat pop, niiden avulla voi sisällysluettelosta hypätä suoraan haluamaansa kohtaan, eikä koko pitkää tekstiä tarvitse editoida kerralla.&lt;br /&gt;
&lt;br /&gt;
mielestäni kannattaa ainakin vielä kerran uudelleenkoostaa.&lt;br /&gt;
&lt;br /&gt;
--[[Käyttäjä:Jkarlson|jkarlson]] 10. toukokuuta 2007 kello 22.22 (EEST)&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Keskustelu:Dd&amp;diff=15171</id>
		<title>Keskustelu:Dd</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Keskustelu:Dd&amp;diff=15171"/>
		<updated>2007-05-10T16:50:30Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; dd if=tiedosto.txt of=teksti count=3 &lt;br /&gt;
en saa tätä mitenkään toimimaan, man-sivun mukaan olen lähes varma, ettei myöskään toimi:&lt;br /&gt;
 dd if=/root/tiedosto.txt of=/dev/null count=3&lt;br /&gt;
--[[Käyttäjä:Jkarlson|jkarlson]] 10. toukokuuta 2007 kello 19.50 (EEST)&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Dd&amp;diff=15170</id>
		<title>Dd</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Dd&amp;diff=15170"/>
		<updated>2007-05-10T16:47:37Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: /* Levykuvien luominen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;dd on työkalu eri tiedostojen matalan tason kopiointiin ja muuntamiseen toiseen muotoon. Toisin kuin [[cp]], joka kopioi kokonaisia tiedostoja, kopioi dd tiedoston sisällön bitintarkasti. Tästä syystä dd:llä voidaan esimerkiksi tehdä identtinen kopio jostakin osiosta (partition) jollekin toiselle osiolle.&lt;br /&gt;
&lt;br /&gt;
== Käyttö ==&lt;br /&gt;
 dd if=/dev/urandom of=/dev/hda &lt;br /&gt;
Kopioi koko ykköskiintolevyn (/dev/hda), mukaanlukien esimerkiksi osiotaulukon, täyteen satunnaista dataa, mikä tuhoaa kaiken tällä kiintolevyllä ja sen eri osioilla sijaitsevan tiedon. Mikäli lähdetiedostona käytetään /dev/random:ia, on satunnaisluvun taso korkeampi, mutta operaatio sujuu selvästi hitaammin.&lt;br /&gt;
&lt;br /&gt;
 dd if=dev/zero of=/dev/hdb bs=512 count=2&lt;br /&gt;
Kirjoittaa kiintolevyn /dev/hdb osiotaulukon ja pääkäynnistyslohkon täyteen nollaa, mikä käytännössä estää kiintolevyn nykyisten tietojen käytön. Sitä varten käytettäväksi lohkokooksi määritellään 512 tavua ja tämän lohkon kirjoitus määritellään toistettavaksi kaksi kertaa.&lt;br /&gt;
&lt;br /&gt;
 dd if=/root/tiedosto.txt of=/dev/null count=3&lt;br /&gt;
Kopioi tiedoston /root/tiedosto.txt kolme kertaa bitti bitiltä [[laitetiedostot|nollalaitteeseen]] /dev/null. (kts keskustelu!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dd:tä voi käyttää myös [[komentorivin perusteet|putkissa]], if- ja of-parametrit eivät ole pakollisia:&lt;br /&gt;
 fortune | dd | less&lt;br /&gt;
toimii tarkalleen samoin kuin &lt;br /&gt;
 fortune | less&lt;br /&gt;
Tällöin dd:n käyttö vaikuttaa tyhmältä, mutta jos välissä on vaikkapa [[ssh]]-yhteys, dd:stä saattaa olla enemmän hyötyä:&lt;br /&gt;
 fortune | ssh kayttaja@kone &#039;dd | less&#039;&lt;br /&gt;
&lt;br /&gt;
===[[levykuva|Levykuvien]] luominen===&lt;br /&gt;
 dd if=/dev/fd0 of=korppu.img&lt;br /&gt;
Tekee sisälläolevasta levykkeestä (laitetiedosto /dev/fd0) [[levykuva]]n (imagen) tiedostoon korppu.img. Vastaavasti voi luoda myös iso-imagen optisesta levystä.&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=/polku/&amp;lt;[[levykuva|levykuvan]] nimi&amp;gt; count=&amp;lt;koko&amp;gt; bs=1024&lt;br /&gt;
Luo tyhjän tiedoston, jota voi käyttää levykuvana. Levykuvan koko annetaan tässä kibitavuina.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Coreutils]]&lt;br /&gt;
[[Luokka:Komentorivin perustyökalut]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Dd&amp;diff=15169</id>
		<title>Dd</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Dd&amp;diff=15169"/>
		<updated>2007-05-10T16:46:03Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: /* Käyttö */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;dd on työkalu eri tiedostojen matalan tason kopiointiin ja muuntamiseen toiseen muotoon. Toisin kuin [[cp]], joka kopioi kokonaisia tiedostoja, kopioi dd tiedoston sisällön bitintarkasti. Tästä syystä dd:llä voidaan esimerkiksi tehdä identtinen kopio jostakin osiosta (partition) jollekin toiselle osiolle.&lt;br /&gt;
&lt;br /&gt;
== Käyttö ==&lt;br /&gt;
 dd if=/dev/urandom of=/dev/hda &lt;br /&gt;
Kopioi koko ykköskiintolevyn (/dev/hda), mukaanlukien esimerkiksi osiotaulukon, täyteen satunnaista dataa, mikä tuhoaa kaiken tällä kiintolevyllä ja sen eri osioilla sijaitsevan tiedon. Mikäli lähdetiedostona käytetään /dev/random:ia, on satunnaisluvun taso korkeampi, mutta operaatio sujuu selvästi hitaammin.&lt;br /&gt;
&lt;br /&gt;
 dd if=dev/zero of=/dev/hdb bs=512 count=2&lt;br /&gt;
Kirjoittaa kiintolevyn /dev/hdb osiotaulukon ja pääkäynnistyslohkon täyteen nollaa, mikä käytännössä estää kiintolevyn nykyisten tietojen käytön. Sitä varten käytettäväksi lohkokooksi määritellään 512 tavua ja tämän lohkon kirjoitus määritellään toistettavaksi kaksi kertaa.&lt;br /&gt;
&lt;br /&gt;
 dd if=/root/tiedosto.txt of=/dev/null count=3&lt;br /&gt;
Kopioi tiedoston /root/tiedosto.txt kolme kertaa bitti bitiltä [[laitetiedostot|nollalaitteeseen]] /dev/null. (kts keskustelu!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dd:tä voi käyttää myös [[komentorivin perusteet|putkissa]], if- ja of-parametrit eivät ole pakollisia:&lt;br /&gt;
 fortune | dd | less&lt;br /&gt;
toimii tarkalleen samoin kuin &lt;br /&gt;
 fortune | less&lt;br /&gt;
Tällöin dd:n käyttö vaikuttaa tyhmältä, mutta jos välissä on vaikkapa [[ssh]]-yhteys, dd:stä saattaa olla enemmän hyötyä:&lt;br /&gt;
 fortune | ssh kayttaja@kone &#039;dd | less&#039;&lt;br /&gt;
&lt;br /&gt;
===Levykuvien luominen===&lt;br /&gt;
 dd if=/dev/fd0 of=korppu.img&lt;br /&gt;
Tekee sisälläolevasta levykkeestä (laitetiedosto /dev/fd0) [[levykuva]]n (imagen) tiedostoon korppu.img&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=/polku/&amp;lt;[[levykuva|levykuvan]] nimi&amp;gt; count=&amp;lt;koko&amp;gt; bs=1024&lt;br /&gt;
Luo tyhjän tiedoston, jota voi käyttää levykuvana. Levykuvan koko annetaan tässä kibitavuina.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Coreutils]]&lt;br /&gt;
[[Luokka:Komentorivin perustyökalut]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Keskustelu:Dd&amp;diff=15168</id>
		<title>Keskustelu:Dd</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Keskustelu:Dd&amp;diff=15168"/>
		<updated>2007-05-10T16:45:05Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; dd if=tiedosto.txt of=teksti count=3 &lt;br /&gt;
en saa tätä mitenkään toimimaan, man-sivun mukaan olen lähes varma, ettei myöskään toimi:&lt;br /&gt;
 dd if=/root/tiedosto.txt of=/dev/null count=3&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Dd&amp;diff=15165</id>
		<title>Dd</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Dd&amp;diff=15165"/>
		<updated>2007-05-10T16:20:12Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: /* Käyttö */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;dd on työkalu eri tiedostojen matalan tason kopiointiin ja muuntamiseen toiseen muotoon. Toisin kuin [[cp]], joka kopioi kokonaisia tiedostoja, kopioi dd tiedoston sisällön bitintarkasti. Tästä syystä dd:llä voidaan esimerkiksi tehdä identtinen kopio jostakin osiosta (partition) jollekin toiselle osiolle.&lt;br /&gt;
&lt;br /&gt;
== Käyttö ==&lt;br /&gt;
 dd if=/dev/urandom of=/dev/hda &lt;br /&gt;
Kopioi koko ykköskiintolevyn (/dev/hda), mukaanlukien esimerkiksi osiotaulukon, täyteen satunnaista dataa, mikä tuhoaa kaiken tällä kiintolevyllä ja sen eri osioilla sijaitsevan tiedon. Mikäli lähdetiedostona käytetään /dev/random:ia, on satunnaisluvun taso korkeampi, mutta operaatio sujuu selvästi hitaammin.&lt;br /&gt;
&lt;br /&gt;
 dd if=dev/zero of=/dev/hdb bs=512 count=2&lt;br /&gt;
Kirjoittaa kiintolevyn /dev/hdb osiotaulukon ja pääkäynnistyslohkon täyteen nollaa, mikä käytännössä estää kiintolevyn nykyisten tietojen käytön. Sitä varten käytettäväksi lohkokooksi määritellään 512 tavua ja tämän lohkon kirjoitus määritellään toistettavaksi kaksi kertaa.&lt;br /&gt;
&lt;br /&gt;
===[[levykuva|levykuvien]] luonti===&lt;br /&gt;
 dd if=/dev/fd0 of=korppu.img&lt;br /&gt;
Tekee sisälläolevasta levykkeestä (laitetiedosto /dev/fd0) [[levykuva]]n (imagen) tiedostoon korppu.img&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=/polku/&amp;lt;[[levykuva|levykuvan]] nimi&amp;gt; count=&amp;lt;koko&amp;gt; bs=1024&lt;br /&gt;
Luo tyhjän tiedoston, jota voi käyttää levykuvana, levykuvan koko kibitavuina.&lt;br /&gt;
&lt;br /&gt;
===yleistä===&lt;br /&gt;
&lt;br /&gt;
Dd:tä voi käyttä myös putkissa, if- ja of-parametrit eivät ole pakollisia:&lt;br /&gt;
 fortune | dd | less&lt;br /&gt;
toimii tarkalleen samoin kuin &lt;br /&gt;
 fortune | less&lt;br /&gt;
Tällöin dd:n käyttö vaikuttaa tyhmältä, mutta jos välissä on vaikkapa [[ssh]]-yhteys, dd:stä saattaa olla enemmän hyötyä:&lt;br /&gt;
 fortune | ssh kayttaja@kone &#039;dd | less&#039;&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Coreutils]][[Luokka:Komentorivin perustyökalut]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Dd&amp;diff=15155</id>
		<title>Dd</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Dd&amp;diff=15155"/>
		<updated>2007-05-10T16:13:15Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: /* Käyttö */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;dd on työkalu eri tiedostojen matalan tason kopiointiin ja muuntamiseen toiseen muotoon. Toisin kuin [[cp]], joka kopioi kokonaisia tiedostoja, kopioi dd tiedoston sisällön bitintarkasti. Tästä syystä dd:llä voidaan esimerkiksi tehdä identtinen kopio jostakin osiosta (partition) jollekin toiselle osiolle.&lt;br /&gt;
&lt;br /&gt;
== Käyttö ==&lt;br /&gt;
 dd if=/dev/urandom of=/dev/hda &lt;br /&gt;
Kopioi koko ykköskiintolevyn (/dev/hda), mukaanlukien esimerkiksi osiotaulukon, täyteen satunnaista dataa, mikä tuhoaa kaiken tällä kiintolevyllä ja sen eri osioilla sijaitsevan tiedon. Mikäli lähdetiedostona käytetään /dev/random:ia, on satunnaisluvun taso korkeampi, mutta operaatio sujuu selvästi hitaammin.&lt;br /&gt;
&lt;br /&gt;
 dd if=dev/zero of=/dev/hdb bs=512 count=2&lt;br /&gt;
Kirjoittaa kiintolevyn /dev/hdb osiotaulukon ja pääkäynnistyslohkon täyteen nollaa, mikä käytännössä estää kiintolevyn nykyisten tietojen käytön. Sitä varten käytettäväksi lohkokooksi määritellään 512 tavua ja tämän lohkon kirjoitus määritellään toistettavaksi kaksi kertaa.&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/fd0 of=korppu.img&lt;br /&gt;
Tekee sisälläolevasta levykkeestä (laitetiedosto /dev/fd0) [[levykuva]]n (imagen) tiedostoon korppu.img&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=/polku/&amp;lt;[[levykuva|levykuvan]] nimi&amp;gt; count=&amp;lt;koko&amp;gt; bs=1024&lt;br /&gt;
Luo tyhjän tiedoston, jota voi käyttää levykuvana, levykuvan koko kibitavuina.&lt;br /&gt;
&lt;br /&gt;
Dd:tä voi käyttä myös putkissa, if- ja of-parametrit eivät ole pakollisia:&lt;br /&gt;
 fortune | dd | less&lt;br /&gt;
toimii tarkalleen samoin kuin &lt;br /&gt;
 fortune | less&lt;br /&gt;
Tällöin dd:n käyttö vaikuttaa tyhmältä, mutta jos välissä on vaikkapa [[ssh]]-yhteys, dd:stä saattaa olla enemmän hyötyä:&lt;br /&gt;
 fortune | ssh kayttaja@kone &#039;dd | less&#039;&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Coreutils]][[Luokka:Komentorivin perustyökalut]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Dd&amp;diff=15148</id>
		<title>Dd</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Dd&amp;diff=15148"/>
		<updated>2007-05-10T16:03:03Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;dd on työkalu eri tiedostojen matalan tason kopiointiin ja muuntamiseen toiseen muotoon. Toisin kuin [[cp]], joka kopioi kokonaisia tiedostoja, kopioi dd tiedoston sisällön bitintarkasti. Tästä syystä dd:llä voidaan esimerkiksi tehdä identtinen kopio jostakin osiosta (partition) jollekin toiselle osiolle.&lt;br /&gt;
&lt;br /&gt;
== Käyttö ==&lt;br /&gt;
 dd if=/dev/urandom of=/dev/hda &lt;br /&gt;
Kopioi koko ykköskiintolevyn (/dev/hda), mukaanlukien esimerkiksi osiotaulukon, täyteen satunnaista dataa, mikä tuhoaa kaiken tällä kiintolevyllä ja sen eri osioilla sijaitsevan tiedon. Mikäli lähdetiedostona käytetään /dev/random:ia, on satunnaisluvun taso korkeampi, mutta operaatio sujuu selvästi hitaammin.&lt;br /&gt;
&lt;br /&gt;
 dd if=dev/zero of=/dev/hdb bs=512 count=2&lt;br /&gt;
Kirjoittaa kiintolevyn /dev/hdb osiotaulukon ja pääkäynnistyslohkon täyteen nollaa, mikä käytännössä estää kiintolevyn nykyisten tietojen käytön. Sitä varten käytettäväksi lohkokooksi määritellään 512 tavua ja tämän lohkon kirjoitus määritellään toistettavaksi kaksi kertaa.&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/fd0 of=korppu.img&lt;br /&gt;
Tekee sisälläolevasta levykkeestä (laitetiedosto /dev/fd0) [[levykuva]]n (imagen) tiedostoon korppu.img&lt;br /&gt;
&lt;br /&gt;
 dd if=/root/tiedosto.txt of=/dev/null count=3&lt;br /&gt;
Kopioi tiedoston /root/tiedosto.txt kolme kertaa bitti bitiltä nollalaitteeseen /dev/null.&lt;br /&gt;
&lt;br /&gt;
Dd:tä voi käyttä myös putkissa, if- ja of-parametrit eivät ole pakollisia:&lt;br /&gt;
 fortune | dd | less&lt;br /&gt;
toimii tarkalleen samoin kuin &lt;br /&gt;
 fortune | less&lt;br /&gt;
Tällöin dd:n käyttö vaikuttaa tyhmältä, mutta jos välissä on vaikkapa [[ssh]]-yhteys, dd:stä saattaa olla enemmän hyötyä.&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Coreutils]][[Luokka:Komentorivin perustyökalut]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Usein_kysyttyj%C3%A4_kysymyksi%C3%A4_ytimest%C3%A4&amp;diff=15141</id>
		<title>Usein kysyttyjä kysymyksiä ytimestä</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Usein_kysyttyj%C3%A4_kysymyksi%C3%A4_ytimest%C3%A4&amp;diff=15141"/>
		<updated>2007-05-10T14:32:55Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: /* Miksi 1 GiB:n muistista jää osa käyttämättä? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Kernel - Usein kysyttyjä kysymyksiä =&lt;br /&gt;
&lt;br /&gt;
== Miksi 1 GiB:n muistista jää osa käyttämättä? ==&lt;br /&gt;
&lt;br /&gt;
Tarkempi kuvaus ongelman syistä ja ratkaisuista löytyy mm. artikkelista [http://groups-beta.google.com/group/cn.bbs.comp.unix.development.kernel/browse_thread/thread/ae812c4736d7aa10/0d1cc7cecaf6671d?q=linux+kernel+ram+896+arcangeli&amp;amp;rnum=1&amp;amp;hl=en&amp;amp;fwc=1 High Memory in the Linux Kernel]. Ytimen versiosta 2.6.16 alkaen on mahdollista käyttää ratkaisua, jossa muutetaan kernelin muistinjakoa, jolloin ei tarvitse vielä turvautua highmem-tukeen, joka tuo oman overheadinsä. Vanhemmille ytimille tarvittava patch löytyy mm. [http://members.optusnet.com.au/ckolivas/kernel/ Con Kolivasin seteistä].&lt;br /&gt;
Muisti voidaan jakaa neljällä eri tavalla:&lt;br /&gt;
&lt;br /&gt;
  * 3G/1G - vanha tapa, jossa muistia käytetään n. 896 MiB.&lt;br /&gt;
  * 3G/1G - Jako koneille, joissa on tasan 1 GiB muistia.&lt;br /&gt;
  * 2G/2G - Jako koneille, joissa on tasan 2 GiB muistia.&lt;br /&gt;
  * 1G/3G - Jako koneille, joissa on tasan 3 GiB muistia.&lt;br /&gt;
&lt;br /&gt;
Haittapuoli esimerkiksi 2G/2G jaosta on se, että user space virtuaalimuistiavaruus (prosessin maksimikoko) on enää 2 GiB entisen reilun 3GiB:n sijasta. Tämä estää esimerkiksi [[wine|winen]] toiminnan ja saattaa haitata prosesseja, jotka käyttävät matalan tason muistinhallintaa. Useimpia tämä ei kuitenkaan haittaa.&lt;br /&gt;
&lt;br /&gt;
== Patchsetit (eli korjauspaketit) ==&lt;br /&gt;
&lt;br /&gt;
Yleisimpiä patchsettejä ovat mm. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
- mm (Andrew Mortonin kokeellinen patchset, tässä testataan paljon asioita)&amp;lt;br&amp;gt;&lt;br /&gt;
- ac (Alan Coxin patchset, RedHat tuntuu käyttävän näitä osina paketointiaan)&amp;lt;br&amp;gt;&lt;br /&gt;
- xx-git (tarkoittaa että paketti on git paketoinnista)&amp;lt;br&amp;gt;&lt;br /&gt;
- xx-pre (prerelease-versio)&amp;lt;br&amp;gt;&lt;br /&gt;
- xx-rc (release candicate versio)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Nämä yleisimmät patchsetit löydät suoraan [http://www.kernel.org kernel.org]:ista.&lt;br /&gt;
&lt;br /&gt;
- [http://iphitus.loudas.com/archck.php beyond] (&amp;quot;archck, nitro&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
- [http://members.optusnet.com.au/ckolivas/kernel/ ck] (Con Kolivasin patchset, panostaa työpöytäkäytön vasteaikoihin)&amp;lt;br&amp;gt;&lt;br /&gt;
- [http://sourceforge.net/projects/wolk WOLK] (WOLK patchset lisää monia pätsejä monista projekteista. Se tähtää vakauteen, skaalautuvuuteen, suorituskykyyn, ja erityisesti turvallisuuteen. Tosin kehitystyö on näköjään loppunut kokonaan.)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vanilla on peruskerneli, eli tarkoittaa Linus Torvaldsin kernel-paketointia.&lt;br /&gt;
&lt;br /&gt;
Korjauspaketeilla pyritään korjaamaan tai säätämään jotain kernelin ominaisuutta, &lt;br /&gt;
esimerkiksi laitetukea tai vasteaikaa. Isommat patchsetit yleensä lisäävät paljon ominaisuuksia.&lt;br /&gt;
&lt;br /&gt;
Korjauspaketti asennetaan komennolla &lt;br /&gt;
 [[patch]] -pN &amp;lt; polku patch-tiedostoon&lt;br /&gt;
N on poistettavien polkujen lukumäärä, yleensä vaihtelee 0-1 välillä. Tämän jälkeen ydin pitää vielä kääntää uusiksi.&lt;br /&gt;
&lt;br /&gt;
== Miten vältät yleisimmät ongelmat käynnistyksen yhteydessä ==&lt;br /&gt;
&lt;br /&gt;
Parametri acpi=off voi auttaa bugiseen ACPI-toteutuksen kiertämiseen.&lt;br /&gt;
&lt;br /&gt;
Parametria init=/bin/sh voi käyttää salasanan vaihtoon.&lt;br /&gt;
&lt;br /&gt;
Parametrillä vga=xxx voidaan määritellä framebuffer tilan resoluutio.&lt;br /&gt;
&lt;br /&gt;
== Kuinka kernel käännetään? ==&lt;br /&gt;
[[Kernelin kääntäminen]] on ohjeistettuna tässä wikissä.&lt;br /&gt;
&lt;br /&gt;
== Kysy jotain? ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Dd&amp;diff=15136</id>
		<title>Dd</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Dd&amp;diff=15136"/>
		<updated>2007-05-10T14:11:52Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: /* Käyttö */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;dd on työkalu eri tiedostojen matalan tason kopiointiin ja muuntamiseen toiseen muotoon. Toisin kuin [[cp]], joka kopioi kokonaisia tiedostoja, kopioi dd yksittäisiä bittejä. Tästä syystä dd:llä voidaan esimerkiksi tehdä identtinen kopio jostakin osiosta (partition) jollekin toiselle osiolle.&lt;br /&gt;
&lt;br /&gt;
== Käyttö ==&lt;br /&gt;
 dd if=/dev/urandom /dev/hda &lt;br /&gt;
Kopioi koko ykköskiintolevyn (/dev/hda), mukaanlukien esimerkiksi osiotaulukon, täyteen satunnaista dataa, mikä tuhoaa kaiken tällä kiintolevyllä ja sen eri osioilla sijaitsevan tiedon. Mikäli lähdetiedostona käytetään /dev/random:ia, on satunnaisluvun taso korkeampi, mutta operaatio sujuu selvästi hitaammin.&lt;br /&gt;
&lt;br /&gt;
 dd if=dev/zero of=/dev/hdb bs=512 count=2&lt;br /&gt;
Kirjoittaa kiintolevyn /dev/hdb osiotaulukon ja pääkäynnistyslohkon täyteen nollaa, mikä käytännössä estää kiintolevyn nykyisten tietojen käytön. Sitä varten käytettäväksi lohkokooksi määritellään 512 tavua ja tämän lohkon kirjoitus määritellään toistettavaksi kaksi kertaa.&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/fd0 of=korppu.img&lt;br /&gt;
Tekee sisälläolevasta levykkeestä (laitetiedosto /dev/fd0) levykuvan (imagen) tiedostoon korppu.img&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=/polku/levykuva.img count=&amp;lt;koko&amp;gt; bs=1024&lt;br /&gt;
luo kibitavuina määrätynkokoisen tyhjän tiedoston, jota voidaan käyttää [[levykuva|levykuvan]] pohjana.&lt;br /&gt;
&lt;br /&gt;
Dd:tä voi käyttä myös putkissa, if- ja of-parametrit eivät ole pakollisia:&lt;br /&gt;
 fortune | dd | less&lt;br /&gt;
toimii tarkalleen samoin kuin &lt;br /&gt;
 fortune | less&lt;br /&gt;
Tällöin dd:n käyttö vaikuttaa tyhmältä, mutta jos välissä on vaikkapa [[ssh]]-yhteys, dd:stä saattaa olla enemmän hyötyä.&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Coreutils]][[Luokka:Komentorivin perustyökalut]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Levykuva&amp;diff=15131</id>
		<title>Levykuva</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Levykuva&amp;diff=15131"/>
		<updated>2007-05-10T14:06:04Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Levykuva on tiedosto, jonka sisällön käsitetään vastaavan merkkijonojen mielessä täsmällisesti jonkun massamuistilaitteen sisältöä.&lt;br /&gt;
&lt;br /&gt;
==katso myös==&lt;br /&gt;
*[[loop]]&lt;br /&gt;
*[[dd]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Initramfs&amp;diff=15127</id>
		<title>Initramfs</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Initramfs&amp;diff=15127"/>
		<updated>2007-05-10T14:02:28Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: /* initrd:n luonti käsin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Initial ramdisk, tai initrd, kuten sitä yleensä nimitetään, on keskusmuistiin ytimen käynnistyksen yhteydessä ladattava massamuistinomainen alue. &lt;br /&gt;
&lt;br /&gt;
==kuvaus==&lt;br /&gt;
Tyypillisesti initrd sisältää järjestelmän käynnistämiseen tarvittavat modulit ja perustyökalut. Tällöin itse järjestelmän käynnistys saattaa nopeutua, eikä ole tarpeellista ladata tarpeettomia ajureita, joita muuten vaadittaisiin käynnistykseen. &lt;br /&gt;
&lt;br /&gt;
==initrd:n automaattinen luonti==&lt;br /&gt;
===[[Debian]]-pohjaiset===&lt;br /&gt;
Initrd:n Debian-pohjaisissa [[jakelu| jakeluissa]] automatisoitu ytimen kääntämisen yhteydessä tapahtuvaksi, liittämällä --initrd -parametrin make-kpkg-komentoon:&lt;br /&gt;
 make-kpkg --initrd --rootcmd fakeroot kernel_image&lt;br /&gt;
&lt;br /&gt;
===[[Gentoo]]===&lt;br /&gt;
[[genkernel]] luo initrd-kuvan automaattisesti&lt;br /&gt;
&lt;br /&gt;
===[[mkinitramfs]]===&lt;br /&gt;
Initrd:n voi (useimmissa [[jakelu|jakeluissa]]) luoda  &amp;lt;tt&amp;gt;mkinitramfs&amp;lt;/tt&amp;gt;-työkalulla. Seuraava esimerkki tallentaa luodun initrd:n tiedostoon initrd.img:&lt;br /&gt;
 mkinitramfs -o initrd.img&lt;br /&gt;
&lt;br /&gt;
==initrd:n luonti käsin==&lt;br /&gt;
Initrd:n voi myös luoda käsin peruskomentorivityökaluilla kuten minkä tahansa [[levykuva|levykuvan]].&lt;br /&gt;
&lt;br /&gt;
==Katso==&lt;br /&gt;
[[kernelin kääntäminen]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;br /&gt;
[[Luokka:Käsitteet]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Initramfs&amp;diff=15119</id>
		<title>Initramfs</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Initramfs&amp;diff=15119"/>
		<updated>2007-05-10T13:54:23Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Initial ramdisk, tai initrd, kuten sitä yleensä nimitetään, on keskusmuistiin ytimen käynnistyksen yhteydessä ladattava massamuistinomainen alue. &lt;br /&gt;
&lt;br /&gt;
==kuvaus==&lt;br /&gt;
Tyypillisesti initrd sisältää järjestelmän käynnistämiseen tarvittavat modulit ja perustyökalut. Tällöin itse järjestelmän käynnistys saattaa nopeutua, eikä ole tarpeellista ladata tarpeettomia ajureita, joita muuten vaadittaisiin käynnistykseen. &lt;br /&gt;
&lt;br /&gt;
==initrd:n automaattinen luonti==&lt;br /&gt;
===[[Debian]]-pohjaiset===&lt;br /&gt;
Initrd:n Debian-pohjaisissa [[jakelu| jakeluissa]] automatisoitu ytimen kääntämisen yhteydessä tapahtuvaksi, liittämällä --initrd -parametrin make-kpkg-komentoon:&lt;br /&gt;
 make-kpkg --initrd --rootcmd fakeroot kernel_image&lt;br /&gt;
&lt;br /&gt;
===[[Gentoo]]===&lt;br /&gt;
[[genkernel]] luo initrd-kuvan automaattisesti&lt;br /&gt;
&lt;br /&gt;
===[[mkinitramfs]]===&lt;br /&gt;
Initrd:n voi (useimmissa [[jakelu|jakeluissa]]) luoda  &amp;lt;tt&amp;gt;mkinitramfs&amp;lt;/tt&amp;gt;-työkalulla. Seuraava esimerkki tallentaa luodun initrd:n tiedostoon initrd.img:&lt;br /&gt;
 mkinitramfs -o initrd.img&lt;br /&gt;
&lt;br /&gt;
==initrd:n luonti käsin==&lt;br /&gt;
Initrd:n voi myös luoda käsin peruskomentorivityökaluilla.&lt;br /&gt;
&lt;br /&gt;
==Katso==&lt;br /&gt;
[[kernelin kääntäminen]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;br /&gt;
[[Luokka:Käsitteet]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Init&amp;diff=15100</id>
		<title>Init</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Init&amp;diff=15100"/>
		<updated>2007-05-10T13:34:49Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: /* muuta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Init on [[wikipedia:fi:Unix|Unix]]-järjestelmissä ohjelma, jonka tehtävänä on kaikkien muiden ohjelmien (prosessien) käynnistäminen. Tyypillisesti järjestelmän ydin käynnistää init-ohjelman ensimmäisenä ulkoisena prosessina ([[PID]] 1).&lt;br /&gt;
&lt;br /&gt;
==yleistä==&lt;br /&gt;
Linux-järjestelmissä on perinteisesti ollut käytössä kahden tyyppisiä init-ohjelmia, [[wikipedia:en:System V|System V Unixin]] ([[sysvinit]]) ja [[wikipedia:fi:BSD|BSD-Unixin]] initin toimintaa jäljitteleviä. Lähes kaikki [[jakelu]]t käyttävät nykyisin System V -tyylistä initiä poikkeuksena esimerkiksi [[Slackware]] ja [[Arch Linux]] jotka käyttävät BSD-initiä. &lt;br /&gt;
&lt;br /&gt;
==toteutukset==&lt;br /&gt;
*[[sysvinit]]: Useimmat [[jakelu|levitysversiot]] käyttävät tätä&lt;br /&gt;
*[[bsdinit]]: [[archlinux]], [[slackware]] &lt;br /&gt;
*[[init-ng]]: uusi init, uusilla ominaisuuksilla, harva distro kuitenkaan suosii tätä&lt;br /&gt;
*[[upstart]]: [[Ubuntu|Ubuntun]] init&lt;br /&gt;
*[[minit]]: kevyt init&lt;br /&gt;
&lt;br /&gt;
==[[ydin]]-parametrit==&lt;br /&gt;
*init=&amp;lt;polku rootilla inittiin&amp;gt; Oletusarvo tässä on /sbin/init. Kuitenkin vikatilanteessa saatetaan haluta käynnistää kone esimerkiksi suoraan shelliin. Esimerkiksi parametrilla &#039;&#039;init=/bin/zsh&#039;&#039; ydin korvaisi normaalin init-ohjelman [[Zsh]]-[[komentotulkki|komentotulkilla]].&lt;br /&gt;
&lt;br /&gt;
*S käynnistää initin yhden käyttäjän tilassa.&lt;br /&gt;
&lt;br /&gt;
*rdinit=&amp;lt;polku initrd:llä initiin&amp;gt; ajaa [[initrd]]:n initin ohjelman /init sijaan.&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Init&amp;diff=15009</id>
		<title>Init</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Init&amp;diff=15009"/>
		<updated>2007-05-10T12:52:29Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Init on [[wikipedia:fi:Unix|Unix]]-järjestelmissä ohjelma, jonka tehtävänä on kaikkien muiden ohjelmien (prosessien) käynnistäminen. Tyypillisesti järjestelmän ydin käynnistää init-ohjelman ensimmäisenä ulkoisena prosessina ([[PID]] 1).&lt;br /&gt;
&lt;br /&gt;
==yleistä==&lt;br /&gt;
Linux-järjestelmissä on perinteisesti ollut käytössä kahden tyyppisiä init-ohjelmia, [[wikipedia:en:System V|System V Unixin]] ([[sysvinit]]) ja [[wikipedia:fi:BSD|BSD-Unixin]] initin toimintaa jäljitteleviä. Lähes kaikki [[jakelu]]t käyttävät nykyisin System V -tyylistä initiä poikkeuksena esimerkiksi [[Slackware]] ja [[Arch Linux]] jotka käyttävät BSD-initiä. &lt;br /&gt;
&lt;br /&gt;
==toteutukset==&lt;br /&gt;
*[[sysvinit]]: Useimmat [[jakelu|levitysversiot]] käyttävät tätä&lt;br /&gt;
*[[bsdinit]]: [[archlinux]], [[slackware]] &lt;br /&gt;
*[[init-ng]]: uusi init, uusilla ominaisuuksilla, harva distro kuitenkaan suosii tätä&lt;br /&gt;
*[[upstart]]: [[Ubuntu|Ubuntun]] init&lt;br /&gt;
*[[minit]]: kevyt init&lt;br /&gt;
&lt;br /&gt;
==muuta==&lt;br /&gt;
Käytettävän init-ohjelman voi itse vaihtaa [[ydin|ytimen]] init-parametrilla. Esimerkiksi parametrilla &#039;&#039;init=/bin/zsh&#039;&#039; ydin korvaisi normaalin init-ohjelman [[Zsh]]-[[komentotulkki|komentotulkilla]].&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Sysvinit&amp;diff=15003</id>
		<title>Sysvinit</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Sysvinit&amp;diff=15003"/>
		<updated>2007-05-10T12:47:06Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sysvinit on useimpien [[jakelu|levitysversioiden]] [[init]]-ohjelma.&lt;br /&gt;
&lt;br /&gt;
==yleistä==&lt;br /&gt;
System V -initin toiminta pohjautuu ns. [[ajotaso]]ihin (runlevel), joiden avulla määritellään järjestelmän eri tilojen (esim. monen käyttäjän tekstipohjainen, monen käyttäjän graafinen, yhden käyttäjän tila sekä uudelleenkäynnistys ja sulkeminen) yhteydessä käynnistettävät ja suljettavat prosessit. Käytännössä nämä määritellään /etc/rc?.d-hakemistojen alle sijoitettavilla [[symbolinen linkki|symlinkeillä]]. BSD-init taas pohjautuu /etc-hakemiston alle sijoitettaviin rc-[[wikipedia:fi:skripti|skripteihin]]. BSD-initin valttina on nopeus ja yksinkertaisuus.&lt;br /&gt;
&lt;br /&gt;
Nykyisin System V -init on alkanut hitautensa ja joustamattomuutensa vuoksi käydä monella tapaa vanhentuneeksi. Tästä syystä on viime aikoina perustettu lukuisia projekteja, joiden tehtävänä on korvaavan järjestelmän kehittäminen. Tunnetuin näistä on [[Initng]], joka pohjautuu useiden prosessien käynnistämiseen samanaikaisesti perinteisen yksi prosessi kerrallaan -tavan sijaan. Joissain tapauksissa Initng on jopa puolittanut järjestelmän käynnistysajan verrattuna vanhanmalliseen initiin. &lt;br /&gt;
&lt;br /&gt;
==katso==&lt;br /&gt;
*[[init-skriptit]]&lt;br /&gt;
*[[init]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Fork()&amp;diff=14990</id>
		<title>Fork()</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Fork()&amp;diff=14990"/>
		<updated>2007-05-10T12:21:32Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fork on SVr4, 4.3BSD ja POSIX.1-2001 -standardienmukainen funktio [[C]]:ssä, jolla luodaan ohjelmalle kutsun suorituskohtaan lapsiprosessi vastaavassa tilassa.&lt;br /&gt;
&lt;br /&gt;
==Määritelmä==&lt;br /&gt;
pid_t fork()&lt;br /&gt;
===palautusarvo===&lt;br /&gt;
palautusarvo pid_t on -1 virheen tapauhtuessa, muuten se vastaa lapsiprosessin [[pid|prosessitunnusta]]. Lapsiprosessille palautusarvo näkyy nollana 0x0.&lt;br /&gt;
==käyttö==&lt;br /&gt;
===[[demoni|taustaprosessin]] luominen===&lt;br /&gt;
fork-funktion ajavan ohjelman toinen osa jää taustalle, alkuperäinen ohjelma voidaan sammuttaa esim [[exit()]]-kutsulla.&lt;br /&gt;
 pid_t prosessi = fork();&lt;br /&gt;
 if pid_t &amp;gt; exit(EXIT_SUCCESS);&lt;br /&gt;
 if pid_t &amp;lt; exit(EXIT_FAILURE);&lt;br /&gt;
 /*taustaprosessin toiminta*/&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Taustaprosessi&amp;diff=14982</id>
		<title>Taustaprosessi</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Taustaprosessi&amp;diff=14982"/>
		<updated>2007-05-10T12:03:51Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: /* katso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Daemon eli demoni on Linux-järjestelmässä (ja yleisestikin UNIXissa) taustapalvelu. Esimerkiksi http-palvelin toimii yleensä demonina.&lt;br /&gt;
&lt;br /&gt;
==katso==&lt;br /&gt;
*[[fork]]&lt;br /&gt;
*[[init-skriptit]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Taustaprosessi&amp;diff=14981</id>
		<title>Taustaprosessi</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Taustaprosessi&amp;diff=14981"/>
		<updated>2007-05-10T12:03:32Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Daemon eli demoni on Linux-järjestelmässä (ja yleisestikin UNIXissa) taustapalvelu. Esimerkiksi http-palvelin toimii yleensä demonina.&lt;br /&gt;
&lt;br /&gt;
==katso==&lt;br /&gt;
[[fork]]&lt;br /&gt;
[[init-skriptit]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Järjestelmä]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Ebuild&amp;diff=14980</id>
		<title>Ebuild</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Ebuild&amp;diff=14980"/>
		<updated>2007-05-10T11:57:25Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: /* Muuta luettavaa */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ohjelma | nimi=ebuild  | kuva= |  kuvateksti=  | lisenssi=[[GPL]]| käyttöliittymä=ei | kotisivu=[http://gentoo.org gentoo.org] }}&lt;br /&gt;
&lt;br /&gt;
Ebuild on kieli jolla kuvaillaan, miten paketteja asennetaan sekä ohjelma, joka toteuttaa kyseisen kielen. Ebuild on käytössä erityisesti [[Gentoo]]-[[jakelu|jakelussa]] [[paketinhallintajärjestelmä| paketinhallintajärjestelmän]] osana.&lt;br /&gt;
&lt;br /&gt;
==Kieli==&lt;br /&gt;
ebuild epäilemättä on kielenä monipuolinen, jopa tietyllä tapaa täydellinen. On kuitenkin tärkeää muistaa noudattaa oikeita käytäntöjä tehtäessä paketteja Gentoo-järjestelmään. Esimerkiksi valmiiseen järjestelmään kirjoittaminen useimmissa funktioissa on huonoa tyyliä, ja aiheuttaakin tyypillisesti esimerkiksi [[portage |portagessa]] [[sandbox]]-loukkauksen.&lt;br /&gt;
&lt;br /&gt;
===Muuttujat===&lt;br /&gt;
Seuraavien tyypillisesti ebuildin alussa määriteltävien muuttujien määrittely on suositeltavaa:&lt;br /&gt;
&lt;br /&gt;
 #kuvaus&lt;br /&gt;
 DESCRIPTION=&amp;quot;tässä kerrot mitä ohjelma tekee&amp;quot;&lt;br /&gt;
 #ohjelman kotisivu&lt;br /&gt;
 HOMEPAGE=&amp;quot;http://hyodyllinen.ohjelma.org&amp;quot;&lt;br /&gt;
 #mistä ohjelman lähdekoodi haetaan&lt;br /&gt;
 SRC_URI=&amp;quot;ftp://hyodyllinen.ohjelma.org/pub/${P}.tar.bz2&amp;quot;&lt;br /&gt;
 #ohjelman lisenssi&lt;br /&gt;
 LICENCE=&amp;quot;GPL-2&amp;quot;&lt;br /&gt;
 #kertoo, mihin slottiin ebuild asentuu, Gentoossa samassa slotissa&lt;br /&gt;
 #ei voi olla kahta samannimistä pakettia&lt;br /&gt;
 SLOT=&amp;quot;0&amp;quot;&lt;br /&gt;
 #kertoo mihin avainsanoihin ebuild kuuluu&lt;br /&gt;
 KEYWORDS=&amp;quot;x86 -*&amp;quot;&lt;br /&gt;
 #kertoo mitkä USE-muuttujat vaikuttavat ebuildiin &lt;br /&gt;
 IUSE=&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #kertoo mitkä paketit ovat paketin riippuvuuksia&lt;br /&gt;
 DEPEND=&amp;quot;dev-libs/hyodyllinen-kirjasto&amp;quot;&lt;br /&gt;
 #kertoo ne ebuildit, jotka ovat ebuildin ajonaikaisia riippuvuuksia&lt;br /&gt;
 #tyypillisesti dynaaminen kirjastolinkkaus voi hajota vain näihin.&lt;br /&gt;
 RDEPEND=&amp;quot;dev-libs/hyödyllinen-kirjasto&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Paketinnimi-muuttujat====&lt;br /&gt;
Kokonaisuudelle, jonka ebuildin nimi on kategoria/paketti-1.0-r1.ebuild muuttujat ovat &lt;br /&gt;
&lt;br /&gt;
*P=&amp;quot;paketti-1.0&amp;quot;&lt;br /&gt;
*PN=&amp;quot;paketti&amp;quot;&lt;br /&gt;
*PV=&amp;quot;1.0&amp;quot;&lt;br /&gt;
*PR=&amp;quot;r1&amp;quot;  &lt;br /&gt;
*PVR=&amp;quot;1.0-r1&amp;quot;&lt;br /&gt;
*PF=&amp;quot;paketti-1.0-r1&amp;quot;&lt;br /&gt;
*CATEGORY=kategoria&lt;br /&gt;
&lt;br /&gt;
Näitä on hyvä käyttää SRC_URI:n ja muun tarvittavan kanssa. Mikäli [[gentoo|gentoon]] tai muun [[jakelu|jakelun]] tarjoama versiomuotoilu ei sovi, määrittele vastaavat sopivat muuttujat MY_ -etuliitteellä, esim. MY_P. Älä muuta ebuildin nimeä.&lt;br /&gt;
&lt;br /&gt;
====Hakemistomuuttujat====&lt;br /&gt;
*ROOT=&amp;quot;/&amp;quot; kertoo, mitä juurta portagen, tai vastaavan, ylläpitämä systeemi käyttää. Älä koske tämän ulkopuolelle, äläkä muuta tätä muuttujaa.&lt;br /&gt;
&lt;br /&gt;
*WORKDIR=&amp;quot;${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/work&amp;quot; kertoo mihin hakemistoon ohjelman SRC_URI-objektit puretaan tai siirretään kääntämistä, tai muuta, varten.&lt;br /&gt;
&lt;br /&gt;
*FILESDIR=&amp;quot;${PORTDIR}/${CATEGORY}/${PN}/files&amp;quot; files-kansio ebuidin hakemistosta tänne voit tallettaa esimerkiksi pienikokoisia patcheja, alle 20 KiB.&lt;br /&gt;
&lt;br /&gt;
*S=&amp;quot;${WORKDIR}/${P}&amp;quot; Tämä kertoo pääasiallisen kansion, jossa työ tehdään oletusasetusta voi muokata tarpeen mukaan, yleensä suhteessa WORKDIR:iin.&lt;br /&gt;
&lt;br /&gt;
*T=&amp;quot;${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/temp&amp;quot; Tilapäishakemisto vapaasti käytettävissä.&lt;br /&gt;
&lt;br /&gt;
*D=&amp;quot;${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/image&amp;quot; Hakemistokuva asennettavasta kokonaisuudesta. Älä muuta.&lt;br /&gt;
&lt;br /&gt;
====Riippuvuusmuuttujat====&lt;br /&gt;
*DEPEND Ebuildin riippuvuudet, näiden tulee olla asennettuina, ennen kuin ebuild ajetaan.&lt;br /&gt;
*RDEPEND Ebuildin ajonaikaiset riippuvuudet, esimerkiksi dynaamisesti ladattavat kirjastot.&lt;br /&gt;
*PDEPEND Ebuildin jälkeisriippuvuudet, nämä tulee asentaa ebuildin ajon jälkeen.&lt;br /&gt;
*PROVIDE Kuvailee paketin tarjoaman virtuaalipaketin, älä käytä, jos et tiedä, mitä olet tekemässä.&lt;br /&gt;
&lt;br /&gt;
Dynaamisten riippuvuuksien määrittely seuraavia yhdistelemällä loogisina lausekkeina. riippuvuudet ilmaistaan pitkässä muodossa kategoria/paketti-(versio)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;, &amp;gt;, =, &amp;gt;= ja &amp;lt;= nämä kuvaavat, että riippuvuuden version tulee olla kirjatulle versiolle pienempi, suurempi, yhtäsuuri kuin, suurempi tai yhtä suuri kuin tai pienempi tai yhtä suuri kuin.&lt;br /&gt;
&lt;br /&gt;
*use? riippuvuus on voimassa, mikäli USE-muuttuja use on asetettu. Vastaavasti ei voimassa kun !use?.&lt;br /&gt;
&lt;br /&gt;
*|| tai-operaattori jomman kumman riippuvuuksista täytyy olla täytetty&lt;br /&gt;
&lt;br /&gt;
*!kategoria/paketti käänteinen riippuvuus. Tämä ei saa olla asennettuna ebuildia asennettaessa.&lt;br /&gt;
&lt;br /&gt;
* *-jälkiliite, versionumerossa vastaa mitä tahansa merkkijonoa.&lt;br /&gt;
&lt;br /&gt;
====Muut muuttujat====&lt;br /&gt;
*RESTRICT, rajoittaa portagen ominaisuuksia listan mukaan, listaerottimena toimii välilyönti&lt;br /&gt;
**binchecks, jätetään binäärien laadunvalvonta suorittamatta.&lt;br /&gt;
**confcache, ei käytetä confcachea&lt;br /&gt;
**fetch, SRC_URI-kohdetta ei yritetä hakea&lt;br /&gt;
**mirror, älä hae SRC_URI-kohdetta gentoon omilta palvelimilta&lt;br /&gt;
**primaryuri, hae ensisijaisesti SRC_URI-kohde suoraan SRC_URI:sta&lt;br /&gt;
**strip, ei poisteta debug-symboleja&lt;br /&gt;
**test, ei ajeta src_test-funktiota&lt;br /&gt;
**userpriv&lt;br /&gt;
&lt;br /&gt;
QA-muuttujat:&lt;br /&gt;
*QA_TEXTRELS&lt;br /&gt;
*QA_EXECSTACK&lt;br /&gt;
*QA_WX_LOAD&lt;br /&gt;
&lt;br /&gt;
===Funktiot===&lt;br /&gt;
ebuild-kielessä on otsikon jälkeen [[Bash-skriptaus|bash-syntaksin]] mukaisia funktioita, joilla on oma osansa paketin asennuksessa. Mitään näistä funktioista ei ole pakko määritellä. Funktioton ebuild toimiikin tyypillisesti [[autotools]]-ohjelmaa varten, jolle ei tarvitse määritellä käännösaikaisia valintoja. src-alkuiset funktiot ajetaan tyypillisesti [[sandbox|sandboxin]] sisällä, eikä niissä saisi kajota muuhun järjestelmään.&lt;br /&gt;
&lt;br /&gt;
====pkg_nofetch====&lt;br /&gt;
Tätä funktiota kutsutaan, mikäli RESTRICT=&amp;quot;fetch&amp;quot; on asetettu ja ebuildin SRC_URI kohdetta ei kyetä noutamaan.&lt;br /&gt;
pkg_nofetchin jälkeen muita funktioita ei kutsuta vaan siirrytään ohjelman loppuun.&lt;br /&gt;
====pkg_setup====&lt;br /&gt;
Ajetaan tarkistuksia asetusten suhteen.&lt;br /&gt;
====src_unpack====&lt;br /&gt;
Puretaan SRC_URI-objekti $WORKDIR-muuttujan osoittamaan kansioon ja ajetaan eutils.eclassin epatch-funktio patcheille tarpeen mukaan, tar.bz2 ja tar.gz -pakatuille ohjelmille riittää tässä oletusfunktio.&lt;br /&gt;
&lt;br /&gt;
====src_compile====&lt;br /&gt;
Tässä funktiossa käännetään lähdekoodi tai tehdään muuta vastaavaa.&lt;br /&gt;
&lt;br /&gt;
====src_test====&lt;br /&gt;
Funktiota kutsutaan src_compilen jälkeen, mikäli FEATURES=&amp;quot;test&amp;quot; on määritelty, funktiossa tulee ajaa asennettavan ohjelman tarjoamat yksikkötestaus-rutiinit, oletustoteutuksessa nämä ovat &amp;lt;tt&amp;gt;make check&amp;lt;/tt&amp;gt; ja &amp;lt;tt&amp;gt;make test&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src_install====&lt;br /&gt;
Tässä funktiossa siirretään kokonaisuuden asennettava osa, esim suoritettava binääri, hakemistorakenteeseen, jonka juurena toimii muuttujan $D osoittama hakemisto, esimerkiksi make install DESTDIR=$D&lt;br /&gt;
&lt;br /&gt;
====pkg_preinst ja pkg_postinst====&lt;br /&gt;
Nämä funktiot ajetaan sandboxin ulkopuolella ennen ja jälkeen $D-kuvan sisällyttämistä varsinaiseen ROOT-muuttujan osoittamaan kohteeseen, tyypillisesti &amp;quot;/&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====pkg_prerm ja pkg_postrm====&lt;br /&gt;
Vastaavasti kuin edelliset nämä ajetaan ennen ja jälkeen kokonaisuuden sisällön, eli sen, minkä asensit $D:hen, poistamista järjestelmästä.&lt;br /&gt;
&lt;br /&gt;
====pkg_config====&lt;br /&gt;
Ajetaan viimeiseksi tässä uudistetaan systeemin asetuksia, mikäli se on tarpeen.&lt;br /&gt;
&lt;br /&gt;
===Apufunktiot===&lt;br /&gt;
&lt;br /&gt;
====Usea tarkkailevat apufunktiot====&lt;br /&gt;
USE-muuttujan USE=&amp;quot;valinta&amp;quot; suhteen nämä funktiot tekevät seuraavaa&lt;br /&gt;
&lt;br /&gt;
*useq valinta, Tämä palauttaa tosi, mikäli valinta on määritelty.&lt;br /&gt;
Seuraavat ovat lisäksi käteviä autotools-ohjelmien kanssa.&lt;br /&gt;
*use_with valinta [configure-valitsin=valinta] [configure-valitsinasetus], palauttaa  &amp;lt;tt&amp;gt;--with-configure-valitsin=configure-valitsinasetus&amp;lt;/tt&amp;gt; tai without, mikäli muuttujaa ei ole määritelty.&lt;br /&gt;
*use_enable valinta [configure-valitsin=valinta] [configure-valitsinasetus], palauttaa&lt;br /&gt;
&amp;lt;tt&amp;gt;--enable-configure-valitsin=configure-valitsinasetus&amp;lt;/tt&amp;gt; tai disable, mikäli muuttujaa ei ole määritelty.&lt;br /&gt;
&lt;br /&gt;
====Tulostusfunktiot====&lt;br /&gt;
*einfo &amp;quot;viesti&amp;quot;, merkityksetön tuloste esimerkiksi asennuksen edistymisestä&lt;br /&gt;
*elog &amp;quot;viesti&amp;quot;, tuloste, joka on tarkoitettu huomioitavaksi ja joka tulostetaan myös logeihin&lt;br /&gt;
*ewarn &amp;quot;varoitusviesti&amp;quot;, varoitustuloste&lt;br /&gt;
*eerror &amp;quot;virheilmoitus&amp;quot;, virhetuloste&lt;br /&gt;
*ebegin &amp;quot;tapahtumailmoitus&amp;quot;, tulostaa ilmoituksen tapahtumasta, jonka onnistumisesta voidaan ilmoittaa funktiolla eend.&lt;br /&gt;
*eend &amp;lt;onnistuma&amp;gt; &amp;quot;virheilmoitus&amp;quot; jos onnistuma ei ole 0 tulostetaan virheilmoitus, muuten ilmoitetaan onnistumisesta.&lt;br /&gt;
&lt;br /&gt;
===Muut ominaisuudet===&lt;br /&gt;
*Import-lauseella voit sisällyttää ebuildiin .eclass-tiedostoja eclass-hakemistosta &lt;br /&gt;
*&#039;#&#039;-merkillä alkavat rivit sivuutetaan kommentteina samalla tavalla kuin [[bash]]issa. Omia muuttujia voidaan määritellä bash-tyylisesti missä tahansa ebuidin kohdassa.&lt;br /&gt;
&lt;br /&gt;
===Tyyli===&lt;br /&gt;
Tässä tärkeitä asioita tyylistä ebuildien tekemisestä erityisesti [[gentoo|gentoolle]]&lt;br /&gt;
&lt;br /&gt;
*Käytä muuttujia, erityisesti oletusmuuttujia silloin kuin ne on määritelty. Tämä tekee ebuildeista portattavia - hyvin tehdyn ebuildin kohteen uuden version ebuildin voikin tyypillisesti tehdä vain ebuildin nimeä muuttamalla. Lisäksi esimerkiksi portagen ylläpitämän järjestelmän juuri ei aina ole &amp;quot;/&amp;quot;, esimerkiksi osX:ssä, mutta se on aina $ROOT.&lt;br /&gt;
&lt;br /&gt;
*Käytä apufunktioita silloin kuin sopii.&lt;br /&gt;
&lt;br /&gt;
*Käytä eclasseja silloin kuin on soveliasta ja tutustu ohjelmakategoriasi ebuildien teon periaatteisiin, mikäli niitä on dokumentoitu.  &lt;br /&gt;
&lt;br /&gt;
==Ohjelma==&lt;br /&gt;
Ebuildia käytetään seuraavasti&lt;br /&gt;
 ebuild &amp;lt;polku ebuildiin&amp;gt;&amp;lt;ohjelma&amp;gt;-&amp;lt;versio&amp;gt;.ebuild &amp;lt;toiminto&amp;gt;&lt;br /&gt;
Tässä saatetaan edellyttää, että kohteena oleva ebuild on oikeassa paikassa hakemistopuussa, esimerkiksi PORTDIR_OVERLAY, ja että ohjelman SRC_URI-objekti on saatavilla DISTDIR=${PORTDIR}/distfiles - hakemistossa.&lt;br /&gt;
&lt;br /&gt;
===Toiminnot===&lt;br /&gt;
====Ebuildeja ajavat toiminnot====&lt;br /&gt;
Seuraavat ajavat ebuildilleen (lähes)nimikkofunktionsa täsmälleen&lt;br /&gt;
*unpack&lt;br /&gt;
*compile&lt;br /&gt;
*test&lt;br /&gt;
*preinst&lt;br /&gt;
*install&lt;br /&gt;
*postinst&lt;br /&gt;
*qmerge&lt;br /&gt;
*prerm&lt;br /&gt;
*postrm&lt;br /&gt;
*config&lt;br /&gt;
&lt;br /&gt;
Nämä taas ajavat useampia funktioita, jotka riittävät paketin asennukseen(merge) tai poistoon (unmerge)&lt;br /&gt;
*merge, myös hakee kokonaisuuden SRC_URI-objektin&lt;br /&gt;
*unmerge&lt;br /&gt;
&lt;br /&gt;
====Muut toiminnot====&lt;br /&gt;
*digest, luo SRC_URI-objektin varmentamiseen vaadittavat kryptografiset tiivisteet. Tiivisteet lasketaan $DISTDIR:ssä olevasta objektista tai haetaan tarvittaessa netistä.&lt;br /&gt;
*manifest, Luo tiivisteet itse ebuildiin liittyvistä tiedostoista.&lt;br /&gt;
*fetch, noutaa SRC_URI:n ja asettaa sen $DISTDIR:iin&lt;br /&gt;
*clean, siistii ebuildin luoman hakemistopuun $PORTAGE_TMPDIR:stä&lt;br /&gt;
*package, luo binääripaketin tar.bz2-muodossa $D:n hakemistopuusta ja asettaa sen PGKDIR=&amp;quot;${PORTDIR}/packages&amp;quot;-muuttujan osoittamaan hakemistoon &lt;br /&gt;
*rpm, luo package-toimintoa vastaavasti [[rpm|rpm-paketin]], tämä paketti ei välttämättä toimi kuitenkaan kaikissa [[jakelu|jakeluissa]] ja sen ominaisuudet saattavat olla vajavaiset.&lt;br /&gt;
&lt;br /&gt;
==Muuta luettavaa==&lt;br /&gt;
*[[portage]]&lt;br /&gt;
*[[emerge]]&lt;br /&gt;
*[[eclass]]&lt;br /&gt;
===Man-sivut===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[[man]] 1 ebuild&amp;lt;/tt&amp;gt; ebuild-ohjelman man-sivu&lt;br /&gt;
*&amp;lt;tt&amp;gt;[[man]] 5 ebuild&amp;lt;/tt&amp;gt; ebuild-tiedostorakenteen, tai kielen, man-sivu&lt;br /&gt;
&lt;br /&gt;
Lisää man-sivuja aiheesta [[gentoo|gentoossa]] saat&lt;br /&gt;
 [[emerge]] portage-manpages&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;[[man]] eutils.[[eclass]]&amp;lt;/tt&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Ylläpitotyökalut]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Ebuild&amp;diff=14979</id>
		<title>Ebuild</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Ebuild&amp;diff=14979"/>
		<updated>2007-05-10T11:56:23Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: /* Man-sivut */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ohjelma | nimi=ebuild  | kuva= |  kuvateksti=  | lisenssi=[[GPL]]| käyttöliittymä=ei | kotisivu=[http://gentoo.org gentoo.org] }}&lt;br /&gt;
&lt;br /&gt;
Ebuild on kieli jolla kuvaillaan, miten paketteja asennetaan sekä ohjelma, joka toteuttaa kyseisen kielen. Ebuild on käytössä erityisesti [[Gentoo]]-[[jakelu|jakelussa]] [[paketinhallintajärjestelmä| paketinhallintajärjestelmän]] osana.&lt;br /&gt;
&lt;br /&gt;
==Kieli==&lt;br /&gt;
ebuild epäilemättä on kielenä monipuolinen, jopa tietyllä tapaa täydellinen. On kuitenkin tärkeää muistaa noudattaa oikeita käytäntöjä tehtäessä paketteja Gentoo-järjestelmään. Esimerkiksi valmiiseen järjestelmään kirjoittaminen useimmissa funktioissa on huonoa tyyliä, ja aiheuttaakin tyypillisesti esimerkiksi [[portage |portagessa]] [[sandbox]]-loukkauksen.&lt;br /&gt;
&lt;br /&gt;
===Muuttujat===&lt;br /&gt;
Seuraavien tyypillisesti ebuildin alussa määriteltävien muuttujien määrittely on suositeltavaa:&lt;br /&gt;
&lt;br /&gt;
 #kuvaus&lt;br /&gt;
 DESCRIPTION=&amp;quot;tässä kerrot mitä ohjelma tekee&amp;quot;&lt;br /&gt;
 #ohjelman kotisivu&lt;br /&gt;
 HOMEPAGE=&amp;quot;http://hyodyllinen.ohjelma.org&amp;quot;&lt;br /&gt;
 #mistä ohjelman lähdekoodi haetaan&lt;br /&gt;
 SRC_URI=&amp;quot;ftp://hyodyllinen.ohjelma.org/pub/${P}.tar.bz2&amp;quot;&lt;br /&gt;
 #ohjelman lisenssi&lt;br /&gt;
 LICENCE=&amp;quot;GPL-2&amp;quot;&lt;br /&gt;
 #kertoo, mihin slottiin ebuild asentuu, Gentoossa samassa slotissa&lt;br /&gt;
 #ei voi olla kahta samannimistä pakettia&lt;br /&gt;
 SLOT=&amp;quot;0&amp;quot;&lt;br /&gt;
 #kertoo mihin avainsanoihin ebuild kuuluu&lt;br /&gt;
 KEYWORDS=&amp;quot;x86 -*&amp;quot;&lt;br /&gt;
 #kertoo mitkä USE-muuttujat vaikuttavat ebuildiin &lt;br /&gt;
 IUSE=&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #kertoo mitkä paketit ovat paketin riippuvuuksia&lt;br /&gt;
 DEPEND=&amp;quot;dev-libs/hyodyllinen-kirjasto&amp;quot;&lt;br /&gt;
 #kertoo ne ebuildit, jotka ovat ebuildin ajonaikaisia riippuvuuksia&lt;br /&gt;
 #tyypillisesti dynaaminen kirjastolinkkaus voi hajota vain näihin.&lt;br /&gt;
 RDEPEND=&amp;quot;dev-libs/hyödyllinen-kirjasto&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Paketinnimi-muuttujat====&lt;br /&gt;
Kokonaisuudelle, jonka ebuildin nimi on kategoria/paketti-1.0-r1.ebuild muuttujat ovat &lt;br /&gt;
&lt;br /&gt;
*P=&amp;quot;paketti-1.0&amp;quot;&lt;br /&gt;
*PN=&amp;quot;paketti&amp;quot;&lt;br /&gt;
*PV=&amp;quot;1.0&amp;quot;&lt;br /&gt;
*PR=&amp;quot;r1&amp;quot;  &lt;br /&gt;
*PVR=&amp;quot;1.0-r1&amp;quot;&lt;br /&gt;
*PF=&amp;quot;paketti-1.0-r1&amp;quot;&lt;br /&gt;
*CATEGORY=kategoria&lt;br /&gt;
&lt;br /&gt;
Näitä on hyvä käyttää SRC_URI:n ja muun tarvittavan kanssa. Mikäli [[gentoo|gentoon]] tai muun [[jakelu|jakelun]] tarjoama versiomuotoilu ei sovi, määrittele vastaavat sopivat muuttujat MY_ -etuliitteellä, esim. MY_P. Älä muuta ebuildin nimeä.&lt;br /&gt;
&lt;br /&gt;
====Hakemistomuuttujat====&lt;br /&gt;
*ROOT=&amp;quot;/&amp;quot; kertoo, mitä juurta portagen, tai vastaavan, ylläpitämä systeemi käyttää. Älä koske tämän ulkopuolelle, äläkä muuta tätä muuttujaa.&lt;br /&gt;
&lt;br /&gt;
*WORKDIR=&amp;quot;${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/work&amp;quot; kertoo mihin hakemistoon ohjelman SRC_URI-objektit puretaan tai siirretään kääntämistä, tai muuta, varten.&lt;br /&gt;
&lt;br /&gt;
*FILESDIR=&amp;quot;${PORTDIR}/${CATEGORY}/${PN}/files&amp;quot; files-kansio ebuidin hakemistosta tänne voit tallettaa esimerkiksi pienikokoisia patcheja, alle 20 KiB.&lt;br /&gt;
&lt;br /&gt;
*S=&amp;quot;${WORKDIR}/${P}&amp;quot; Tämä kertoo pääasiallisen kansion, jossa työ tehdään oletusasetusta voi muokata tarpeen mukaan, yleensä suhteessa WORKDIR:iin.&lt;br /&gt;
&lt;br /&gt;
*T=&amp;quot;${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/temp&amp;quot; Tilapäishakemisto vapaasti käytettävissä.&lt;br /&gt;
&lt;br /&gt;
*D=&amp;quot;${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/image&amp;quot; Hakemistokuva asennettavasta kokonaisuudesta. Älä muuta.&lt;br /&gt;
&lt;br /&gt;
====Riippuvuusmuuttujat====&lt;br /&gt;
*DEPEND Ebuildin riippuvuudet, näiden tulee olla asennettuina, ennen kuin ebuild ajetaan.&lt;br /&gt;
*RDEPEND Ebuildin ajonaikaiset riippuvuudet, esimerkiksi dynaamisesti ladattavat kirjastot.&lt;br /&gt;
*PDEPEND Ebuildin jälkeisriippuvuudet, nämä tulee asentaa ebuildin ajon jälkeen.&lt;br /&gt;
*PROVIDE Kuvailee paketin tarjoaman virtuaalipaketin, älä käytä, jos et tiedä, mitä olet tekemässä.&lt;br /&gt;
&lt;br /&gt;
Dynaamisten riippuvuuksien määrittely seuraavia yhdistelemällä loogisina lausekkeina. riippuvuudet ilmaistaan pitkässä muodossa kategoria/paketti-(versio)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;, &amp;gt;, =, &amp;gt;= ja &amp;lt;= nämä kuvaavat, että riippuvuuden version tulee olla kirjatulle versiolle pienempi, suurempi, yhtäsuuri kuin, suurempi tai yhtä suuri kuin tai pienempi tai yhtä suuri kuin.&lt;br /&gt;
&lt;br /&gt;
*use? riippuvuus on voimassa, mikäli USE-muuttuja use on asetettu. Vastaavasti ei voimassa kun !use?.&lt;br /&gt;
&lt;br /&gt;
*|| tai-operaattori jomman kumman riippuvuuksista täytyy olla täytetty&lt;br /&gt;
&lt;br /&gt;
*!kategoria/paketti käänteinen riippuvuus. Tämä ei saa olla asennettuna ebuildia asennettaessa.&lt;br /&gt;
&lt;br /&gt;
* *-jälkiliite, versionumerossa vastaa mitä tahansa merkkijonoa.&lt;br /&gt;
&lt;br /&gt;
====Muut muuttujat====&lt;br /&gt;
*RESTRICT, rajoittaa portagen ominaisuuksia listan mukaan, listaerottimena toimii välilyönti&lt;br /&gt;
**binchecks, jätetään binäärien laadunvalvonta suorittamatta.&lt;br /&gt;
**confcache, ei käytetä confcachea&lt;br /&gt;
**fetch, SRC_URI-kohdetta ei yritetä hakea&lt;br /&gt;
**mirror, älä hae SRC_URI-kohdetta gentoon omilta palvelimilta&lt;br /&gt;
**primaryuri, hae ensisijaisesti SRC_URI-kohde suoraan SRC_URI:sta&lt;br /&gt;
**strip, ei poisteta debug-symboleja&lt;br /&gt;
**test, ei ajeta src_test-funktiota&lt;br /&gt;
**userpriv&lt;br /&gt;
&lt;br /&gt;
QA-muuttujat:&lt;br /&gt;
*QA_TEXTRELS&lt;br /&gt;
*QA_EXECSTACK&lt;br /&gt;
*QA_WX_LOAD&lt;br /&gt;
&lt;br /&gt;
===Funktiot===&lt;br /&gt;
ebuild-kielessä on otsikon jälkeen [[Bash-skriptaus|bash-syntaksin]] mukaisia funktioita, joilla on oma osansa paketin asennuksessa. Mitään näistä funktioista ei ole pakko määritellä. Funktioton ebuild toimiikin tyypillisesti [[autotools]]-ohjelmaa varten, jolle ei tarvitse määritellä käännösaikaisia valintoja. src-alkuiset funktiot ajetaan tyypillisesti [[sandbox|sandboxin]] sisällä, eikä niissä saisi kajota muuhun järjestelmään.&lt;br /&gt;
&lt;br /&gt;
====pkg_nofetch====&lt;br /&gt;
Tätä funktiota kutsutaan, mikäli RESTRICT=&amp;quot;fetch&amp;quot; on asetettu ja ebuildin SRC_URI kohdetta ei kyetä noutamaan.&lt;br /&gt;
pkg_nofetchin jälkeen muita funktioita ei kutsuta vaan siirrytään ohjelman loppuun.&lt;br /&gt;
====pkg_setup====&lt;br /&gt;
Ajetaan tarkistuksia asetusten suhteen.&lt;br /&gt;
====src_unpack====&lt;br /&gt;
Puretaan SRC_URI-objekti $WORKDIR-muuttujan osoittamaan kansioon ja ajetaan eutils.eclassin epatch-funktio patcheille tarpeen mukaan, tar.bz2 ja tar.gz -pakatuille ohjelmille riittää tässä oletusfunktio.&lt;br /&gt;
&lt;br /&gt;
====src_compile====&lt;br /&gt;
Tässä funktiossa käännetään lähdekoodi tai tehdään muuta vastaavaa.&lt;br /&gt;
&lt;br /&gt;
====src_test====&lt;br /&gt;
Funktiota kutsutaan src_compilen jälkeen, mikäli FEATURES=&amp;quot;test&amp;quot; on määritelty, funktiossa tulee ajaa asennettavan ohjelman tarjoamat yksikkötestaus-rutiinit, oletustoteutuksessa nämä ovat &amp;lt;tt&amp;gt;make check&amp;lt;/tt&amp;gt; ja &amp;lt;tt&amp;gt;make test&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src_install====&lt;br /&gt;
Tässä funktiossa siirretään kokonaisuuden asennettava osa, esim suoritettava binääri, hakemistorakenteeseen, jonka juurena toimii muuttujan $D osoittama hakemisto, esimerkiksi make install DESTDIR=$D&lt;br /&gt;
&lt;br /&gt;
====pkg_preinst ja pkg_postinst====&lt;br /&gt;
Nämä funktiot ajetaan sandboxin ulkopuolella ennen ja jälkeen $D-kuvan sisällyttämistä varsinaiseen ROOT-muuttujan osoittamaan kohteeseen, tyypillisesti &amp;quot;/&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====pkg_prerm ja pkg_postrm====&lt;br /&gt;
Vastaavasti kuin edelliset nämä ajetaan ennen ja jälkeen kokonaisuuden sisällön, eli sen, minkä asensit $D:hen, poistamista järjestelmästä.&lt;br /&gt;
&lt;br /&gt;
====pkg_config====&lt;br /&gt;
Ajetaan viimeiseksi tässä uudistetaan systeemin asetuksia, mikäli se on tarpeen.&lt;br /&gt;
&lt;br /&gt;
===Apufunktiot===&lt;br /&gt;
&lt;br /&gt;
====Usea tarkkailevat apufunktiot====&lt;br /&gt;
USE-muuttujan USE=&amp;quot;valinta&amp;quot; suhteen nämä funktiot tekevät seuraavaa&lt;br /&gt;
&lt;br /&gt;
*useq valinta, Tämä palauttaa tosi, mikäli valinta on määritelty.&lt;br /&gt;
Seuraavat ovat lisäksi käteviä autotools-ohjelmien kanssa.&lt;br /&gt;
*use_with valinta [configure-valitsin=valinta] [configure-valitsinasetus], palauttaa  &amp;lt;tt&amp;gt;--with-configure-valitsin=configure-valitsinasetus&amp;lt;/tt&amp;gt; tai without, mikäli muuttujaa ei ole määritelty.&lt;br /&gt;
*use_enable valinta [configure-valitsin=valinta] [configure-valitsinasetus], palauttaa&lt;br /&gt;
&amp;lt;tt&amp;gt;--enable-configure-valitsin=configure-valitsinasetus&amp;lt;/tt&amp;gt; tai disable, mikäli muuttujaa ei ole määritelty.&lt;br /&gt;
&lt;br /&gt;
====Tulostusfunktiot====&lt;br /&gt;
*einfo &amp;quot;viesti&amp;quot;, merkityksetön tuloste esimerkiksi asennuksen edistymisestä&lt;br /&gt;
*elog &amp;quot;viesti&amp;quot;, tuloste, joka on tarkoitettu huomioitavaksi ja joka tulostetaan myös logeihin&lt;br /&gt;
*ewarn &amp;quot;varoitusviesti&amp;quot;, varoitustuloste&lt;br /&gt;
*eerror &amp;quot;virheilmoitus&amp;quot;, virhetuloste&lt;br /&gt;
*ebegin &amp;quot;tapahtumailmoitus&amp;quot;, tulostaa ilmoituksen tapahtumasta, jonka onnistumisesta voidaan ilmoittaa funktiolla eend.&lt;br /&gt;
*eend &amp;lt;onnistuma&amp;gt; &amp;quot;virheilmoitus&amp;quot; jos onnistuma ei ole 0 tulostetaan virheilmoitus, muuten ilmoitetaan onnistumisesta.&lt;br /&gt;
&lt;br /&gt;
===Muut ominaisuudet===&lt;br /&gt;
*Import-lauseella voit sisällyttää ebuildiin .eclass-tiedostoja eclass-hakemistosta &lt;br /&gt;
*&#039;#&#039;-merkillä alkavat rivit sivuutetaan kommentteina samalla tavalla kuin [[bash]]issa. Omia muuttujia voidaan määritellä bash-tyylisesti missä tahansa ebuidin kohdassa.&lt;br /&gt;
&lt;br /&gt;
===Tyyli===&lt;br /&gt;
Tässä tärkeitä asioita tyylistä ebuildien tekemisestä erityisesti [[gentoo|gentoolle]]&lt;br /&gt;
&lt;br /&gt;
*Käytä muuttujia, erityisesti oletusmuuttujia silloin kuin ne on määritelty. Tämä tekee ebuildeista portattavia - hyvin tehdyn ebuildin kohteen uuden version ebuildin voikin tyypillisesti tehdä vain ebuildin nimeä muuttamalla. Lisäksi esimerkiksi portagen ylläpitämän järjestelmän juuri ei aina ole &amp;quot;/&amp;quot;, esimerkiksi osX:ssä, mutta se on aina $ROOT.&lt;br /&gt;
&lt;br /&gt;
*Käytä apufunktioita silloin kuin sopii.&lt;br /&gt;
&lt;br /&gt;
*Käytä eclasseja silloin kuin on soveliasta ja tutustu ohjelmakategoriasi ebuildien teon periaatteisiin, mikäli niitä on dokumentoitu.  &lt;br /&gt;
&lt;br /&gt;
==Ohjelma==&lt;br /&gt;
Ebuildia käytetään seuraavasti&lt;br /&gt;
 ebuild &amp;lt;polku ebuildiin&amp;gt;&amp;lt;ohjelma&amp;gt;-&amp;lt;versio&amp;gt;.ebuild &amp;lt;toiminto&amp;gt;&lt;br /&gt;
Tässä saatetaan edellyttää, että kohteena oleva ebuild on oikeassa paikassa hakemistopuussa, esimerkiksi PORTDIR_OVERLAY, ja että ohjelman SRC_URI-objekti on saatavilla DISTDIR=${PORTDIR}/distfiles - hakemistossa.&lt;br /&gt;
&lt;br /&gt;
===Toiminnot===&lt;br /&gt;
====Ebuildeja ajavat toiminnot====&lt;br /&gt;
Seuraavat ajavat ebuildilleen (lähes)nimikkofunktionsa täsmälleen&lt;br /&gt;
*unpack&lt;br /&gt;
*compile&lt;br /&gt;
*test&lt;br /&gt;
*preinst&lt;br /&gt;
*install&lt;br /&gt;
*postinst&lt;br /&gt;
*qmerge&lt;br /&gt;
*prerm&lt;br /&gt;
*postrm&lt;br /&gt;
*config&lt;br /&gt;
&lt;br /&gt;
Nämä taas ajavat useampia funktioita, jotka riittävät paketin asennukseen(merge) tai poistoon (unmerge)&lt;br /&gt;
*merge, myös hakee kokonaisuuden SRC_URI-objektin&lt;br /&gt;
*unmerge&lt;br /&gt;
&lt;br /&gt;
====Muut toiminnot====&lt;br /&gt;
*digest, luo SRC_URI-objektin varmentamiseen vaadittavat kryptografiset tiivisteet. Tiivisteet lasketaan $DISTDIR:ssä olevasta objektista tai haetaan tarvittaessa netistä.&lt;br /&gt;
*manifest, Luo tiivisteet itse ebuildiin liittyvistä tiedostoista.&lt;br /&gt;
*fetch, noutaa SRC_URI:n ja asettaa sen $DISTDIR:iin&lt;br /&gt;
*clean, siistii ebuildin luoman hakemistopuun $PORTAGE_TMPDIR:stä&lt;br /&gt;
*package, luo binääripaketin tar.bz2-muodossa $D:n hakemistopuusta ja asettaa sen PGKDIR=&amp;quot;${PORTDIR}/packages&amp;quot;-muuttujan osoittamaan hakemistoon &lt;br /&gt;
*rpm, luo package-toimintoa vastaavasti [[rpm|rpm-paketin]], tämä paketti ei välttämättä toimi kuitenkaan kaikissa [[jakelu|jakeluissa]] ja sen ominaisuudet saattavat olla vajavaiset.&lt;br /&gt;
&lt;br /&gt;
==Muuta luettavaa==&lt;br /&gt;
&lt;br /&gt;
*[[eclass]]&lt;br /&gt;
===Man-sivut===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[[man]] 1 ebuild&amp;lt;/tt&amp;gt; ebuild-ohjelman man-sivu&lt;br /&gt;
*&amp;lt;tt&amp;gt;[[man]] 5 ebuild&amp;lt;/tt&amp;gt; ebuild-tiedostorakenteen, tai kielen, man-sivu&lt;br /&gt;
&lt;br /&gt;
Lisää man-sivuja aiheesta [[gentoo|gentoossa]] saat&lt;br /&gt;
 [[emerge]] portage-manpages&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;[[man]] eutils.[[eclass]]&amp;lt;/tt&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Ylläpitotyökalut]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Ebuild&amp;diff=14978</id>
		<title>Ebuild</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Ebuild&amp;diff=14978"/>
		<updated>2007-05-10T11:55:27Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: /* Man-sivut */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ohjelma | nimi=ebuild  | kuva= |  kuvateksti=  | lisenssi=[[GPL]]| käyttöliittymä=ei | kotisivu=[http://gentoo.org gentoo.org] }}&lt;br /&gt;
&lt;br /&gt;
Ebuild on kieli jolla kuvaillaan, miten paketteja asennetaan sekä ohjelma, joka toteuttaa kyseisen kielen. Ebuild on käytössä erityisesti [[Gentoo]]-[[jakelu|jakelussa]] [[paketinhallintajärjestelmä| paketinhallintajärjestelmän]] osana.&lt;br /&gt;
&lt;br /&gt;
==Kieli==&lt;br /&gt;
ebuild epäilemättä on kielenä monipuolinen, jopa tietyllä tapaa täydellinen. On kuitenkin tärkeää muistaa noudattaa oikeita käytäntöjä tehtäessä paketteja Gentoo-järjestelmään. Esimerkiksi valmiiseen järjestelmään kirjoittaminen useimmissa funktioissa on huonoa tyyliä, ja aiheuttaakin tyypillisesti esimerkiksi [[portage |portagessa]] [[sandbox]]-loukkauksen.&lt;br /&gt;
&lt;br /&gt;
===Muuttujat===&lt;br /&gt;
Seuraavien tyypillisesti ebuildin alussa määriteltävien muuttujien määrittely on suositeltavaa:&lt;br /&gt;
&lt;br /&gt;
 #kuvaus&lt;br /&gt;
 DESCRIPTION=&amp;quot;tässä kerrot mitä ohjelma tekee&amp;quot;&lt;br /&gt;
 #ohjelman kotisivu&lt;br /&gt;
 HOMEPAGE=&amp;quot;http://hyodyllinen.ohjelma.org&amp;quot;&lt;br /&gt;
 #mistä ohjelman lähdekoodi haetaan&lt;br /&gt;
 SRC_URI=&amp;quot;ftp://hyodyllinen.ohjelma.org/pub/${P}.tar.bz2&amp;quot;&lt;br /&gt;
 #ohjelman lisenssi&lt;br /&gt;
 LICENCE=&amp;quot;GPL-2&amp;quot;&lt;br /&gt;
 #kertoo, mihin slottiin ebuild asentuu, Gentoossa samassa slotissa&lt;br /&gt;
 #ei voi olla kahta samannimistä pakettia&lt;br /&gt;
 SLOT=&amp;quot;0&amp;quot;&lt;br /&gt;
 #kertoo mihin avainsanoihin ebuild kuuluu&lt;br /&gt;
 KEYWORDS=&amp;quot;x86 -*&amp;quot;&lt;br /&gt;
 #kertoo mitkä USE-muuttujat vaikuttavat ebuildiin &lt;br /&gt;
 IUSE=&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #kertoo mitkä paketit ovat paketin riippuvuuksia&lt;br /&gt;
 DEPEND=&amp;quot;dev-libs/hyodyllinen-kirjasto&amp;quot;&lt;br /&gt;
 #kertoo ne ebuildit, jotka ovat ebuildin ajonaikaisia riippuvuuksia&lt;br /&gt;
 #tyypillisesti dynaaminen kirjastolinkkaus voi hajota vain näihin.&lt;br /&gt;
 RDEPEND=&amp;quot;dev-libs/hyödyllinen-kirjasto&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Paketinnimi-muuttujat====&lt;br /&gt;
Kokonaisuudelle, jonka ebuildin nimi on kategoria/paketti-1.0-r1.ebuild muuttujat ovat &lt;br /&gt;
&lt;br /&gt;
*P=&amp;quot;paketti-1.0&amp;quot;&lt;br /&gt;
*PN=&amp;quot;paketti&amp;quot;&lt;br /&gt;
*PV=&amp;quot;1.0&amp;quot;&lt;br /&gt;
*PR=&amp;quot;r1&amp;quot;  &lt;br /&gt;
*PVR=&amp;quot;1.0-r1&amp;quot;&lt;br /&gt;
*PF=&amp;quot;paketti-1.0-r1&amp;quot;&lt;br /&gt;
*CATEGORY=kategoria&lt;br /&gt;
&lt;br /&gt;
Näitä on hyvä käyttää SRC_URI:n ja muun tarvittavan kanssa. Mikäli [[gentoo|gentoon]] tai muun [[jakelu|jakelun]] tarjoama versiomuotoilu ei sovi, määrittele vastaavat sopivat muuttujat MY_ -etuliitteellä, esim. MY_P. Älä muuta ebuildin nimeä.&lt;br /&gt;
&lt;br /&gt;
====Hakemistomuuttujat====&lt;br /&gt;
*ROOT=&amp;quot;/&amp;quot; kertoo, mitä juurta portagen, tai vastaavan, ylläpitämä systeemi käyttää. Älä koske tämän ulkopuolelle, äläkä muuta tätä muuttujaa.&lt;br /&gt;
&lt;br /&gt;
*WORKDIR=&amp;quot;${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/work&amp;quot; kertoo mihin hakemistoon ohjelman SRC_URI-objektit puretaan tai siirretään kääntämistä, tai muuta, varten.&lt;br /&gt;
&lt;br /&gt;
*FILESDIR=&amp;quot;${PORTDIR}/${CATEGORY}/${PN}/files&amp;quot; files-kansio ebuidin hakemistosta tänne voit tallettaa esimerkiksi pienikokoisia patcheja, alle 20 KiB.&lt;br /&gt;
&lt;br /&gt;
*S=&amp;quot;${WORKDIR}/${P}&amp;quot; Tämä kertoo pääasiallisen kansion, jossa työ tehdään oletusasetusta voi muokata tarpeen mukaan, yleensä suhteessa WORKDIR:iin.&lt;br /&gt;
&lt;br /&gt;
*T=&amp;quot;${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/temp&amp;quot; Tilapäishakemisto vapaasti käytettävissä.&lt;br /&gt;
&lt;br /&gt;
*D=&amp;quot;${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/image&amp;quot; Hakemistokuva asennettavasta kokonaisuudesta. Älä muuta.&lt;br /&gt;
&lt;br /&gt;
====Riippuvuusmuuttujat====&lt;br /&gt;
*DEPEND Ebuildin riippuvuudet, näiden tulee olla asennettuina, ennen kuin ebuild ajetaan.&lt;br /&gt;
*RDEPEND Ebuildin ajonaikaiset riippuvuudet, esimerkiksi dynaamisesti ladattavat kirjastot.&lt;br /&gt;
*PDEPEND Ebuildin jälkeisriippuvuudet, nämä tulee asentaa ebuildin ajon jälkeen.&lt;br /&gt;
*PROVIDE Kuvailee paketin tarjoaman virtuaalipaketin, älä käytä, jos et tiedä, mitä olet tekemässä.&lt;br /&gt;
&lt;br /&gt;
Dynaamisten riippuvuuksien määrittely seuraavia yhdistelemällä loogisina lausekkeina. riippuvuudet ilmaistaan pitkässä muodossa kategoria/paketti-(versio)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;, &amp;gt;, =, &amp;gt;= ja &amp;lt;= nämä kuvaavat, että riippuvuuden version tulee olla kirjatulle versiolle pienempi, suurempi, yhtäsuuri kuin, suurempi tai yhtä suuri kuin tai pienempi tai yhtä suuri kuin.&lt;br /&gt;
&lt;br /&gt;
*use? riippuvuus on voimassa, mikäli USE-muuttuja use on asetettu. Vastaavasti ei voimassa kun !use?.&lt;br /&gt;
&lt;br /&gt;
*|| tai-operaattori jomman kumman riippuvuuksista täytyy olla täytetty&lt;br /&gt;
&lt;br /&gt;
*!kategoria/paketti käänteinen riippuvuus. Tämä ei saa olla asennettuna ebuildia asennettaessa.&lt;br /&gt;
&lt;br /&gt;
* *-jälkiliite, versionumerossa vastaa mitä tahansa merkkijonoa.&lt;br /&gt;
&lt;br /&gt;
====Muut muuttujat====&lt;br /&gt;
*RESTRICT, rajoittaa portagen ominaisuuksia listan mukaan, listaerottimena toimii välilyönti&lt;br /&gt;
**binchecks, jätetään binäärien laadunvalvonta suorittamatta.&lt;br /&gt;
**confcache, ei käytetä confcachea&lt;br /&gt;
**fetch, SRC_URI-kohdetta ei yritetä hakea&lt;br /&gt;
**mirror, älä hae SRC_URI-kohdetta gentoon omilta palvelimilta&lt;br /&gt;
**primaryuri, hae ensisijaisesti SRC_URI-kohde suoraan SRC_URI:sta&lt;br /&gt;
**strip, ei poisteta debug-symboleja&lt;br /&gt;
**test, ei ajeta src_test-funktiota&lt;br /&gt;
**userpriv&lt;br /&gt;
&lt;br /&gt;
QA-muuttujat:&lt;br /&gt;
*QA_TEXTRELS&lt;br /&gt;
*QA_EXECSTACK&lt;br /&gt;
*QA_WX_LOAD&lt;br /&gt;
&lt;br /&gt;
===Funktiot===&lt;br /&gt;
ebuild-kielessä on otsikon jälkeen [[Bash-skriptaus|bash-syntaksin]] mukaisia funktioita, joilla on oma osansa paketin asennuksessa. Mitään näistä funktioista ei ole pakko määritellä. Funktioton ebuild toimiikin tyypillisesti [[autotools]]-ohjelmaa varten, jolle ei tarvitse määritellä käännösaikaisia valintoja. src-alkuiset funktiot ajetaan tyypillisesti [[sandbox|sandboxin]] sisällä, eikä niissä saisi kajota muuhun järjestelmään.&lt;br /&gt;
&lt;br /&gt;
====pkg_nofetch====&lt;br /&gt;
Tätä funktiota kutsutaan, mikäli RESTRICT=&amp;quot;fetch&amp;quot; on asetettu ja ebuildin SRC_URI kohdetta ei kyetä noutamaan.&lt;br /&gt;
pkg_nofetchin jälkeen muita funktioita ei kutsuta vaan siirrytään ohjelman loppuun.&lt;br /&gt;
====pkg_setup====&lt;br /&gt;
Ajetaan tarkistuksia asetusten suhteen.&lt;br /&gt;
====src_unpack====&lt;br /&gt;
Puretaan SRC_URI-objekti $WORKDIR-muuttujan osoittamaan kansioon ja ajetaan eutils.eclassin epatch-funktio patcheille tarpeen mukaan, tar.bz2 ja tar.gz -pakatuille ohjelmille riittää tässä oletusfunktio.&lt;br /&gt;
&lt;br /&gt;
====src_compile====&lt;br /&gt;
Tässä funktiossa käännetään lähdekoodi tai tehdään muuta vastaavaa.&lt;br /&gt;
&lt;br /&gt;
====src_test====&lt;br /&gt;
Funktiota kutsutaan src_compilen jälkeen, mikäli FEATURES=&amp;quot;test&amp;quot; on määritelty, funktiossa tulee ajaa asennettavan ohjelman tarjoamat yksikkötestaus-rutiinit, oletustoteutuksessa nämä ovat &amp;lt;tt&amp;gt;make check&amp;lt;/tt&amp;gt; ja &amp;lt;tt&amp;gt;make test&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src_install====&lt;br /&gt;
Tässä funktiossa siirretään kokonaisuuden asennettava osa, esim suoritettava binääri, hakemistorakenteeseen, jonka juurena toimii muuttujan $D osoittama hakemisto, esimerkiksi make install DESTDIR=$D&lt;br /&gt;
&lt;br /&gt;
====pkg_preinst ja pkg_postinst====&lt;br /&gt;
Nämä funktiot ajetaan sandboxin ulkopuolella ennen ja jälkeen $D-kuvan sisällyttämistä varsinaiseen ROOT-muuttujan osoittamaan kohteeseen, tyypillisesti &amp;quot;/&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====pkg_prerm ja pkg_postrm====&lt;br /&gt;
Vastaavasti kuin edelliset nämä ajetaan ennen ja jälkeen kokonaisuuden sisällön, eli sen, minkä asensit $D:hen, poistamista järjestelmästä.&lt;br /&gt;
&lt;br /&gt;
====pkg_config====&lt;br /&gt;
Ajetaan viimeiseksi tässä uudistetaan systeemin asetuksia, mikäli se on tarpeen.&lt;br /&gt;
&lt;br /&gt;
===Apufunktiot===&lt;br /&gt;
&lt;br /&gt;
====Usea tarkkailevat apufunktiot====&lt;br /&gt;
USE-muuttujan USE=&amp;quot;valinta&amp;quot; suhteen nämä funktiot tekevät seuraavaa&lt;br /&gt;
&lt;br /&gt;
*useq valinta, Tämä palauttaa tosi, mikäli valinta on määritelty.&lt;br /&gt;
Seuraavat ovat lisäksi käteviä autotools-ohjelmien kanssa.&lt;br /&gt;
*use_with valinta [configure-valitsin=valinta] [configure-valitsinasetus], palauttaa  &amp;lt;tt&amp;gt;--with-configure-valitsin=configure-valitsinasetus&amp;lt;/tt&amp;gt; tai without, mikäli muuttujaa ei ole määritelty.&lt;br /&gt;
*use_enable valinta [configure-valitsin=valinta] [configure-valitsinasetus], palauttaa&lt;br /&gt;
&amp;lt;tt&amp;gt;--enable-configure-valitsin=configure-valitsinasetus&amp;lt;/tt&amp;gt; tai disable, mikäli muuttujaa ei ole määritelty.&lt;br /&gt;
&lt;br /&gt;
====Tulostusfunktiot====&lt;br /&gt;
*einfo &amp;quot;viesti&amp;quot;, merkityksetön tuloste esimerkiksi asennuksen edistymisestä&lt;br /&gt;
*elog &amp;quot;viesti&amp;quot;, tuloste, joka on tarkoitettu huomioitavaksi ja joka tulostetaan myös logeihin&lt;br /&gt;
*ewarn &amp;quot;varoitusviesti&amp;quot;, varoitustuloste&lt;br /&gt;
*eerror &amp;quot;virheilmoitus&amp;quot;, virhetuloste&lt;br /&gt;
*ebegin &amp;quot;tapahtumailmoitus&amp;quot;, tulostaa ilmoituksen tapahtumasta, jonka onnistumisesta voidaan ilmoittaa funktiolla eend.&lt;br /&gt;
*eend &amp;lt;onnistuma&amp;gt; &amp;quot;virheilmoitus&amp;quot; jos onnistuma ei ole 0 tulostetaan virheilmoitus, muuten ilmoitetaan onnistumisesta.&lt;br /&gt;
&lt;br /&gt;
===Muut ominaisuudet===&lt;br /&gt;
*Import-lauseella voit sisällyttää ebuildiin .eclass-tiedostoja eclass-hakemistosta &lt;br /&gt;
*&#039;#&#039;-merkillä alkavat rivit sivuutetaan kommentteina samalla tavalla kuin [[bash]]issa. Omia muuttujia voidaan määritellä bash-tyylisesti missä tahansa ebuidin kohdassa.&lt;br /&gt;
&lt;br /&gt;
===Tyyli===&lt;br /&gt;
Tässä tärkeitä asioita tyylistä ebuildien tekemisestä erityisesti [[gentoo|gentoolle]]&lt;br /&gt;
&lt;br /&gt;
*Käytä muuttujia, erityisesti oletusmuuttujia silloin kuin ne on määritelty. Tämä tekee ebuildeista portattavia - hyvin tehdyn ebuildin kohteen uuden version ebuildin voikin tyypillisesti tehdä vain ebuildin nimeä muuttamalla. Lisäksi esimerkiksi portagen ylläpitämän järjestelmän juuri ei aina ole &amp;quot;/&amp;quot;, esimerkiksi osX:ssä, mutta se on aina $ROOT.&lt;br /&gt;
&lt;br /&gt;
*Käytä apufunktioita silloin kuin sopii.&lt;br /&gt;
&lt;br /&gt;
*Käytä eclasseja silloin kuin on soveliasta ja tutustu ohjelmakategoriasi ebuildien teon periaatteisiin, mikäli niitä on dokumentoitu.  &lt;br /&gt;
&lt;br /&gt;
==Ohjelma==&lt;br /&gt;
Ebuildia käytetään seuraavasti&lt;br /&gt;
 ebuild &amp;lt;polku ebuildiin&amp;gt;&amp;lt;ohjelma&amp;gt;-&amp;lt;versio&amp;gt;.ebuild &amp;lt;toiminto&amp;gt;&lt;br /&gt;
Tässä saatetaan edellyttää, että kohteena oleva ebuild on oikeassa paikassa hakemistopuussa, esimerkiksi PORTDIR_OVERLAY, ja että ohjelman SRC_URI-objekti on saatavilla DISTDIR=${PORTDIR}/distfiles - hakemistossa.&lt;br /&gt;
&lt;br /&gt;
===Toiminnot===&lt;br /&gt;
====Ebuildeja ajavat toiminnot====&lt;br /&gt;
Seuraavat ajavat ebuildilleen (lähes)nimikkofunktionsa täsmälleen&lt;br /&gt;
*unpack&lt;br /&gt;
*compile&lt;br /&gt;
*test&lt;br /&gt;
*preinst&lt;br /&gt;
*install&lt;br /&gt;
*postinst&lt;br /&gt;
*qmerge&lt;br /&gt;
*prerm&lt;br /&gt;
*postrm&lt;br /&gt;
*config&lt;br /&gt;
&lt;br /&gt;
Nämä taas ajavat useampia funktioita, jotka riittävät paketin asennukseen(merge) tai poistoon (unmerge)&lt;br /&gt;
*merge, myös hakee kokonaisuuden SRC_URI-objektin&lt;br /&gt;
*unmerge&lt;br /&gt;
&lt;br /&gt;
====Muut toiminnot====&lt;br /&gt;
*digest, luo SRC_URI-objektin varmentamiseen vaadittavat kryptografiset tiivisteet. Tiivisteet lasketaan $DISTDIR:ssä olevasta objektista tai haetaan tarvittaessa netistä.&lt;br /&gt;
*manifest, Luo tiivisteet itse ebuildiin liittyvistä tiedostoista.&lt;br /&gt;
*fetch, noutaa SRC_URI:n ja asettaa sen $DISTDIR:iin&lt;br /&gt;
*clean, siistii ebuildin luoman hakemistopuun $PORTAGE_TMPDIR:stä&lt;br /&gt;
*package, luo binääripaketin tar.bz2-muodossa $D:n hakemistopuusta ja asettaa sen PGKDIR=&amp;quot;${PORTDIR}/packages&amp;quot;-muuttujan osoittamaan hakemistoon &lt;br /&gt;
*rpm, luo package-toimintoa vastaavasti [[rpm|rpm-paketin]], tämä paketti ei välttämättä toimi kuitenkaan kaikissa [[jakelu|jakeluissa]] ja sen ominaisuudet saattavat olla vajavaiset.&lt;br /&gt;
&lt;br /&gt;
==Muuta luettavaa==&lt;br /&gt;
&lt;br /&gt;
*[[eclass]]&lt;br /&gt;
===Man-sivut===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[[man]] 1 ebuild&amp;lt;/tt&amp;gt; ebuild-ohjelman man-sivu&lt;br /&gt;
*&amp;lt;tt&amp;gt;[[man]] 5 ebuild&amp;lt;/tt&amp;gt; ebuild-tiedostorakenteen, tai kielen, man-sivu&lt;br /&gt;
&lt;br /&gt;
Lisää man-sivuja aiheesta [[gentoossa]] saat&lt;br /&gt;
 [[emerge]] portage-manpages&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;[[man]] eutils.[[eclass]]&amp;lt;/tt&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Ylläpitotyökalut]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Ebuild&amp;diff=14976</id>
		<title>Ebuild</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Ebuild&amp;diff=14976"/>
		<updated>2007-05-10T11:47:17Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: /* Funktiot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ohjelma | nimi=ebuild  | kuva= |  kuvateksti=  | lisenssi=[[GPL]]| käyttöliittymä=ei | kotisivu=[http://gentoo.org gentoo.org] }}&lt;br /&gt;
&lt;br /&gt;
Ebuild on kieli jolla kuvaillaan, miten paketteja asennetaan sekä ohjelma, joka toteuttaa kyseisen kielen. Ebuild on käytössä erityisesti [[Gentoo]]-[[jakelu|jakelussa]] [[paketinhallintajärjestelmä| paketinhallintajärjestelmän]] osana.&lt;br /&gt;
&lt;br /&gt;
==Kieli==&lt;br /&gt;
ebuild epäilemättä on kielenä monipuolinen, jopa tietyllä tapaa täydellinen. On kuitenkin tärkeää muistaa noudattaa oikeita käytäntöjä tehtäessä paketteja Gentoo-järjestelmään. Esimerkiksi valmiiseen järjestelmään kirjoittaminen useimmissa funktioissa on huonoa tyyliä, ja aiheuttaakin tyypillisesti esimerkiksi [[portage |portagessa]] [[sandbox]]-loukkauksen.&lt;br /&gt;
&lt;br /&gt;
===Muuttujat===&lt;br /&gt;
Seuraavien tyypillisesti ebuildin alussa määriteltävien muuttujien määrittely on suositeltavaa:&lt;br /&gt;
&lt;br /&gt;
 #kuvaus&lt;br /&gt;
 DESCRIPTION=&amp;quot;tässä kerrot mitä ohjelma tekee&amp;quot;&lt;br /&gt;
 #ohjelman kotisivu&lt;br /&gt;
 HOMEPAGE=&amp;quot;http://hyodyllinen.ohjelma.org&amp;quot;&lt;br /&gt;
 #mistä ohjelman lähdekoodi haetaan&lt;br /&gt;
 SRC_URI=&amp;quot;ftp://hyodyllinen.ohjelma.org/pub/${P}.tar.bz2&amp;quot;&lt;br /&gt;
 #ohjelman lisenssi&lt;br /&gt;
 LICENCE=&amp;quot;GPL-2&amp;quot;&lt;br /&gt;
 #kertoo, mihin slottiin ebuild asentuu, Gentoossa samassa slotissa&lt;br /&gt;
 #ei voi olla kahta samannimistä pakettia&lt;br /&gt;
 SLOT=&amp;quot;0&amp;quot;&lt;br /&gt;
 #kertoo mihin avainsanoihin ebuild kuuluu&lt;br /&gt;
 KEYWORDS=&amp;quot;x86 -*&amp;quot;&lt;br /&gt;
 #kertoo mitkä USE-muuttujat vaikuttavat ebuildiin &lt;br /&gt;
 IUSE=&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #kertoo mitkä paketit ovat paketin riippuvuuksia&lt;br /&gt;
 DEPEND=&amp;quot;dev-libs/hyodyllinen-kirjasto&amp;quot;&lt;br /&gt;
 #kertoo ne ebuildit, jotka ovat ebuildin ajonaikaisia riippuvuuksia&lt;br /&gt;
 #tyypillisesti dynaaminen kirjastolinkkaus voi hajota vain näihin.&lt;br /&gt;
 RDEPEND=&amp;quot;dev-libs/hyödyllinen-kirjasto&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Paketinnimi-muuttujat====&lt;br /&gt;
Kokonaisuudelle, jonka ebuildin nimi on kategoria/paketti-1.0-r1.ebuild muuttujat ovat &lt;br /&gt;
&lt;br /&gt;
*P=&amp;quot;paketti-1.0&amp;quot;&lt;br /&gt;
*PN=&amp;quot;paketti&amp;quot;&lt;br /&gt;
*PV=&amp;quot;1.0&amp;quot;&lt;br /&gt;
*PR=&amp;quot;r1&amp;quot;  &lt;br /&gt;
*PVR=&amp;quot;1.0-r1&amp;quot;&lt;br /&gt;
*PF=&amp;quot;paketti-1.0-r1&amp;quot;&lt;br /&gt;
*CATEGORY=kategoria&lt;br /&gt;
&lt;br /&gt;
Näitä on hyvä käyttää SRC_URI:n ja muun tarvittavan kanssa. Mikäli [[gentoo|gentoon]] tai muun [[jakelu|jakelun]] tarjoama versiomuotoilu ei sovi, määrittele vastaavat sopivat muuttujat MY_ -etuliitteellä, esim. MY_P. Älä muuta ebuildin nimeä.&lt;br /&gt;
&lt;br /&gt;
====Hakemistomuuttujat====&lt;br /&gt;
*ROOT=&amp;quot;/&amp;quot; kertoo, mitä juurta portagen, tai vastaavan, ylläpitämä systeemi käyttää. Älä koske tämän ulkopuolelle, äläkä muuta tätä muuttujaa.&lt;br /&gt;
&lt;br /&gt;
*WORKDIR=&amp;quot;${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/work&amp;quot; kertoo mihin hakemistoon ohjelman SRC_URI-objektit puretaan tai siirretään kääntämistä, tai muuta, varten.&lt;br /&gt;
&lt;br /&gt;
*FILESDIR=&amp;quot;${PORTDIR}/${CATEGORY}/${PN}/files&amp;quot; files-kansio ebuidin hakemistosta tänne voit tallettaa esimerkiksi pienikokoisia patcheja, alle 20 KiB.&lt;br /&gt;
&lt;br /&gt;
*S=&amp;quot;${WORKDIR}/${P}&amp;quot; Tämä kertoo pääasiallisen kansion, jossa työ tehdään oletusasetusta voi muokata tarpeen mukaan, yleensä suhteessa WORKDIR:iin.&lt;br /&gt;
&lt;br /&gt;
*T=&amp;quot;${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/temp&amp;quot; Tilapäishakemisto vapaasti käytettävissä.&lt;br /&gt;
&lt;br /&gt;
*D=&amp;quot;${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/image&amp;quot; Hakemistokuva asennettavasta kokonaisuudesta. Älä muuta.&lt;br /&gt;
&lt;br /&gt;
====Riippuvuusmuuttujat====&lt;br /&gt;
*DEPEND Ebuildin riippuvuudet, näiden tulee olla asennettuina, ennen kuin ebuild ajetaan.&lt;br /&gt;
*RDEPEND Ebuildin ajonaikaiset riippuvuudet, esimerkiksi dynaamisesti ladattavat kirjastot.&lt;br /&gt;
*PDEPEND Ebuildin jälkeisriippuvuudet, nämä tulee asentaa ebuildin ajon jälkeen.&lt;br /&gt;
*PROVIDE Kuvailee paketin tarjoaman virtuaalipaketin, älä käytä, jos et tiedä, mitä olet tekemässä.&lt;br /&gt;
&lt;br /&gt;
Dynaamisten riippuvuuksien määrittely seuraavia yhdistelemällä loogisina lausekkeina. riippuvuudet ilmaistaan pitkässä muodossa kategoria/paketti-(versio)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;, &amp;gt;, =, &amp;gt;= ja &amp;lt;= nämä kuvaavat, että riippuvuuden version tulee olla kirjatulle versiolle pienempi, suurempi, yhtäsuuri kuin, suurempi tai yhtä suuri kuin tai pienempi tai yhtä suuri kuin.&lt;br /&gt;
&lt;br /&gt;
*use? riippuvuus on voimassa, mikäli USE-muuttuja use on asetettu. Vastaavasti ei voimassa kun !use?.&lt;br /&gt;
&lt;br /&gt;
*|| tai-operaattori jomman kumman riippuvuuksista täytyy olla täytetty&lt;br /&gt;
&lt;br /&gt;
*!kategoria/paketti käänteinen riippuvuus. Tämä ei saa olla asennettuna ebuildia asennettaessa.&lt;br /&gt;
&lt;br /&gt;
* *-jälkiliite, versionumerossa vastaa mitä tahansa merkkijonoa.&lt;br /&gt;
&lt;br /&gt;
====Muut muuttujat====&lt;br /&gt;
*RESTRICT, rajoittaa portagen ominaisuuksia listan mukaan, listaerottimena toimii välilyönti&lt;br /&gt;
**binchecks, jätetään binäärien laadunvalvonta suorittamatta.&lt;br /&gt;
**confcache, ei käytetä confcachea&lt;br /&gt;
**fetch, SRC_URI-kohdetta ei yritetä hakea&lt;br /&gt;
**mirror, älä hae SRC_URI-kohdetta gentoon omilta palvelimilta&lt;br /&gt;
**primaryuri, hae ensisijaisesti SRC_URI-kohde suoraan SRC_URI:sta&lt;br /&gt;
**strip, ei poisteta debug-symboleja&lt;br /&gt;
**test, ei ajeta src_test-funktiota&lt;br /&gt;
**userpriv&lt;br /&gt;
&lt;br /&gt;
QA-muuttujat:&lt;br /&gt;
*QA_TEXTRELS&lt;br /&gt;
*QA_EXECSTACK&lt;br /&gt;
*QA_WX_LOAD&lt;br /&gt;
&lt;br /&gt;
===Funktiot===&lt;br /&gt;
ebuild-kielessä on otsikon jälkeen [[Bash-skriptaus|bash-syntaksin]] mukaisia funktioita, joilla on oma osansa paketin asennuksessa. Mitään näistä funktioista ei ole pakko määritellä. Funktioton ebuild toimiikin tyypillisesti [[autotools]]-ohjelmaa varten, jolle ei tarvitse määritellä käännösaikaisia valintoja. src-alkuiset funktiot ajetaan tyypillisesti [[sandbox|sandboxin]] sisällä, eikä niissä saisi kajota muuhun järjestelmään.&lt;br /&gt;
&lt;br /&gt;
====pkg_nofetch====&lt;br /&gt;
Tätä funktiota kutsutaan, mikäli RESTRICT=&amp;quot;fetch&amp;quot; on asetettu ja ebuildin SRC_URI kohdetta ei kyetä noutamaan.&lt;br /&gt;
pkg_nofetchin jälkeen muita funktioita ei kutsuta vaan siirrytään ohjelman loppuun.&lt;br /&gt;
====pkg_setup====&lt;br /&gt;
Ajetaan tarkistuksia asetusten suhteen.&lt;br /&gt;
====src_unpack====&lt;br /&gt;
Puretaan SRC_URI-objekti $WORKDIR-muuttujan osoittamaan kansioon ja ajetaan eutils.eclassin epatch-funktio patcheille tarpeen mukaan, tar.bz2 ja tar.gz -pakatuille ohjelmille riittää tässä oletusfunktio.&lt;br /&gt;
&lt;br /&gt;
====src_compile====&lt;br /&gt;
Tässä funktiossa käännetään lähdekoodi tai tehdään muuta vastaavaa.&lt;br /&gt;
&lt;br /&gt;
====src_test====&lt;br /&gt;
Funktiota kutsutaan src_compilen jälkeen, mikäli FEATURES=&amp;quot;test&amp;quot; on määritelty, funktiossa tulee ajaa asennettavan ohjelman tarjoamat yksikkötestaus-rutiinit, oletustoteutuksessa nämä ovat &amp;lt;tt&amp;gt;make check&amp;lt;/tt&amp;gt; ja &amp;lt;tt&amp;gt;make test&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src_install====&lt;br /&gt;
Tässä funktiossa siirretään kokonaisuuden asennettava osa, esim suoritettava binääri, hakemistorakenteeseen, jonka juurena toimii muuttujan $D osoittama hakemisto, esimerkiksi make install DESTDIR=$D&lt;br /&gt;
&lt;br /&gt;
====pkg_preinst ja pkg_postinst====&lt;br /&gt;
Nämä funktiot ajetaan sandboxin ulkopuolella ennen ja jälkeen $D-kuvan sisällyttämistä varsinaiseen ROOT-muuttujan osoittamaan kohteeseen, tyypillisesti &amp;quot;/&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====pkg_prerm ja pkg_postrm====&lt;br /&gt;
Vastaavasti kuin edelliset nämä ajetaan ennen ja jälkeen kokonaisuuden sisällön, eli sen, minkä asensit $D:hen, poistamista järjestelmästä.&lt;br /&gt;
&lt;br /&gt;
====pkg_config====&lt;br /&gt;
Ajetaan viimeiseksi tässä uudistetaan systeemin asetuksia, mikäli se on tarpeen.&lt;br /&gt;
&lt;br /&gt;
===Apufunktiot===&lt;br /&gt;
&lt;br /&gt;
====Usea tarkkailevat apufunktiot====&lt;br /&gt;
USE-muuttujan USE=&amp;quot;valinta&amp;quot; suhteen nämä funktiot tekevät seuraavaa&lt;br /&gt;
&lt;br /&gt;
*useq valinta, Tämä palauttaa tosi, mikäli valinta on määritelty.&lt;br /&gt;
Seuraavat ovat lisäksi käteviä autotools-ohjelmien kanssa.&lt;br /&gt;
*use_with valinta [configure-valitsin=valinta] [configure-valitsinasetus], palauttaa  &amp;lt;tt&amp;gt;--with-configure-valitsin=configure-valitsinasetus&amp;lt;/tt&amp;gt; tai without, mikäli muuttujaa ei ole määritelty.&lt;br /&gt;
*use_enable valinta [configure-valitsin=valinta] [configure-valitsinasetus], palauttaa&lt;br /&gt;
&amp;lt;tt&amp;gt;--enable-configure-valitsin=configure-valitsinasetus&amp;lt;/tt&amp;gt; tai disable, mikäli muuttujaa ei ole määritelty.&lt;br /&gt;
&lt;br /&gt;
====Tulostusfunktiot====&lt;br /&gt;
*einfo &amp;quot;viesti&amp;quot;, merkityksetön tuloste esimerkiksi asennuksen edistymisestä&lt;br /&gt;
*elog &amp;quot;viesti&amp;quot;, tuloste, joka on tarkoitettu huomioitavaksi ja joka tulostetaan myös logeihin&lt;br /&gt;
*ewarn &amp;quot;varoitusviesti&amp;quot;, varoitustuloste&lt;br /&gt;
*eerror &amp;quot;virheilmoitus&amp;quot;, virhetuloste&lt;br /&gt;
*ebegin &amp;quot;tapahtumailmoitus&amp;quot;, tulostaa ilmoituksen tapahtumasta, jonka onnistumisesta voidaan ilmoittaa funktiolla eend.&lt;br /&gt;
*eend &amp;lt;onnistuma&amp;gt; &amp;quot;virheilmoitus&amp;quot; jos onnistuma ei ole 0 tulostetaan virheilmoitus, muuten ilmoitetaan onnistumisesta.&lt;br /&gt;
&lt;br /&gt;
===Muut ominaisuudet===&lt;br /&gt;
*Import-lauseella voit sisällyttää ebuildiin .eclass-tiedostoja eclass-hakemistosta &lt;br /&gt;
*&#039;#&#039;-merkillä alkavat rivit sivuutetaan kommentteina samalla tavalla kuin [[bash]]issa. Omia muuttujia voidaan määritellä bash-tyylisesti missä tahansa ebuidin kohdassa.&lt;br /&gt;
&lt;br /&gt;
===Tyyli===&lt;br /&gt;
Tässä tärkeitä asioita tyylistä ebuildien tekemisestä erityisesti [[gentoo|gentoolle]]&lt;br /&gt;
&lt;br /&gt;
*Käytä muuttujia, erityisesti oletusmuuttujia silloin kuin ne on määritelty. Tämä tekee ebuildeista portattavia - hyvin tehdyn ebuildin kohteen uuden version ebuildin voikin tyypillisesti tehdä vain ebuildin nimeä muuttamalla. Lisäksi esimerkiksi portagen ylläpitämän järjestelmän juuri ei aina ole &amp;quot;/&amp;quot;, esimerkiksi osX:ssä, mutta se on aina $ROOT.&lt;br /&gt;
&lt;br /&gt;
*Käytä apufunktioita silloin kuin sopii.&lt;br /&gt;
&lt;br /&gt;
*Käytä eclasseja silloin kuin on soveliasta ja tutustu ohjelmakategoriasi ebuildien teon periaatteisiin, mikäli niitä on dokumentoitu.  &lt;br /&gt;
&lt;br /&gt;
==Ohjelma==&lt;br /&gt;
Ebuildia käytetään seuraavasti&lt;br /&gt;
 ebuild &amp;lt;polku ebuildiin&amp;gt;&amp;lt;ohjelma&amp;gt;-&amp;lt;versio&amp;gt;.ebuild &amp;lt;toiminto&amp;gt;&lt;br /&gt;
Tässä saatetaan edellyttää, että kohteena oleva ebuild on oikeassa paikassa hakemistopuussa, esimerkiksi PORTDIR_OVERLAY, ja että ohjelman SRC_URI-objekti on saatavilla DISTDIR=${PORTDIR}/distfiles - hakemistossa.&lt;br /&gt;
&lt;br /&gt;
===Toiminnot===&lt;br /&gt;
====Ebuildeja ajavat toiminnot====&lt;br /&gt;
Seuraavat ajavat ebuildilleen (lähes)nimikkofunktionsa täsmälleen&lt;br /&gt;
*unpack&lt;br /&gt;
*compile&lt;br /&gt;
*test&lt;br /&gt;
*preinst&lt;br /&gt;
*install&lt;br /&gt;
*postinst&lt;br /&gt;
*qmerge&lt;br /&gt;
*prerm&lt;br /&gt;
*postrm&lt;br /&gt;
*config&lt;br /&gt;
&lt;br /&gt;
Nämä taas ajavat useampia funktioita, jotka riittävät paketin asennukseen(merge) tai poistoon (unmerge)&lt;br /&gt;
*merge, myös hakee kokonaisuuden SRC_URI-objektin&lt;br /&gt;
*unmerge&lt;br /&gt;
&lt;br /&gt;
====Muut toiminnot====&lt;br /&gt;
*digest, luo SRC_URI-objektin varmentamiseen vaadittavat kryptografiset tiivisteet. Tiivisteet lasketaan $DISTDIR:ssä olevasta objektista tai haetaan tarvittaessa netistä.&lt;br /&gt;
*manifest, Luo tiivisteet itse ebuildiin liittyvistä tiedostoista.&lt;br /&gt;
*fetch, noutaa SRC_URI:n ja asettaa sen $DISTDIR:iin&lt;br /&gt;
*clean, siistii ebuildin luoman hakemistopuun $PORTAGE_TMPDIR:stä&lt;br /&gt;
*package, luo binääripaketin tar.bz2-muodossa $D:n hakemistopuusta ja asettaa sen PGKDIR=&amp;quot;${PORTDIR}/packages&amp;quot;-muuttujan osoittamaan hakemistoon &lt;br /&gt;
*rpm, luo package-toimintoa vastaavasti [[rpm|rpm-paketin]], tämä paketti ei välttämättä toimi kuitenkaan kaikissa [[jakelu|jakeluissa]] ja sen ominaisuudet saattavat olla vajavaiset.&lt;br /&gt;
&lt;br /&gt;
==Muuta luettavaa==&lt;br /&gt;
&lt;br /&gt;
===Man-sivut===&lt;br /&gt;
*&amp;lt;tt&amp;gt;man 1 ebuild&amp;lt;/tt&amp;gt; ebuild-ohjelman man-sivu&lt;br /&gt;
*&amp;lt;tt&amp;gt;man 5 ebuild&amp;lt;/tt&amp;gt; ebuild-tiedostorakenteen, tai kielen, man-sivu&lt;br /&gt;
&lt;br /&gt;
Lisää man-sivuja aiheesta gentoossa saat&lt;br /&gt;
 emerge portage-manpages&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;man eutils.eclass&amp;lt;/tt&amp;gt; ...&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Ylläpitotyökalut]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=S%C3%A4%C3%A4nn%C3%B6llinen_lauseke&amp;diff=14975</id>
		<title>Säännöllinen lauseke</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=S%C3%A4%C3%A4nn%C3%B6llinen_lauseke&amp;diff=14975"/>
		<updated>2007-05-10T11:25:24Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: /* tai */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Säännöllinen lauseke (engl. regular expression, regexp) on merkkijonotemplaatti [[wikipedia:fi:säännöllinen kieli| säännölliselle kielelle]], joka siis voidaan tunnistaa [[wikipedia:fi:äärellinen automaatti|äärellisellä automaatilla]]. Säännöllisiä lausekkeita käytetään monissa ohjelmointikielissä.&lt;br /&gt;
&lt;br /&gt;
==Toteutukset==&lt;br /&gt;
===[[Posix]]-tyylinen===&lt;br /&gt;
====elementit====&lt;br /&gt;
*[&amp;lt;merkkejä&amp;gt;] mikä tahansa merkeistä, tässä usein sallitaan myös laajempia ilmauksia kuten a-z, englantilaisille pienaakkosille, ja 0-9, numeroille.&lt;br /&gt;
*\(&amp;lt;sisältö elementtinä&amp;gt;\) merkitsee sisältönsä yhdeksi elementiksi toistolauseille ulospäin täydelliseksi säännölliseksi lausekkeeksi sisällepäin.&lt;br /&gt;
====toisto-operaattorit====&lt;br /&gt;
*&#039;*&#039;: edellinen elementti 0 tai mielivaltaisen montaa kertaa kokonaan&lt;br /&gt;
*&#039;+&#039;: edellinen elementti mielivaltaisen monta kertaa &lt;br /&gt;
*&#039;?&#039;: edellinen elementti 0 tai 1 kertaa&lt;br /&gt;
monissa sovelluksissa sallitaan myös&lt;br /&gt;
*&#039;{&amp;lt;toistokerrat&amp;gt;}&#039;: edellinen elementti toistokerrat kertaa&lt;br /&gt;
====unioni(tai)====&lt;br /&gt;
merkkijono kuuluu kieleen, jos se kuuluu | edeltävään tai sen jälkeiseen säännölliseen lauseekkeeseen.&lt;br /&gt;
&lt;br /&gt;
====erityismerkit====&lt;br /&gt;
*&#039;^&#039;: Rivin alku, tämä ei siis vastaa rivin ensimmäistä merkkiä vaan vain rivin alkua.&lt;br /&gt;
*&#039;$&#039;: Rivin loppu, vastaavasti.&lt;br /&gt;
*&#039;.&#039;: mikä tahansa merkki&lt;br /&gt;
===[[Perl]]===&lt;br /&gt;
&lt;br /&gt;
==Linkkejä==&lt;br /&gt;
===Wikipedia===&lt;br /&gt;
*[[wikipedia:fi:säännöllinen lauseke|Säännöllinen lauseke]]&lt;br /&gt;
*[[wikipedia:fi:äärellinen automaatti|Äärellinen automaatti]]&lt;br /&gt;
*[[wikipedia:fi:pinoautomaatti|Pinoautomaatti]]&lt;br /&gt;
*[[wikipedia:fi:turingin kone|Turingin kone]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Käsitteet]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=S%C3%A4%C3%A4nn%C3%B6llinen_lauseke&amp;diff=14974</id>
		<title>Säännöllinen lauseke</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=S%C3%A4%C3%A4nn%C3%B6llinen_lauseke&amp;diff=14974"/>
		<updated>2007-05-10T11:24:28Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: /* Posix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Säännöllinen lauseke (engl. regular expression, regexp) on merkkijonotemplaatti [[wikipedia:fi:säännöllinen kieli| säännölliselle kielelle]], joka siis voidaan tunnistaa [[wikipedia:fi:äärellinen automaatti|äärellisellä automaatilla]]. Säännöllisiä lausekkeita käytetään monissa ohjelmointikielissä.&lt;br /&gt;
&lt;br /&gt;
==Toteutukset==&lt;br /&gt;
===[[Posix]]-tyylinen===&lt;br /&gt;
====elementit====&lt;br /&gt;
*[&amp;lt;merkkejä&amp;gt;] mikä tahansa merkeistä, tässä usein sallitaan myös laajempia ilmauksia kuten a-z, englantilaisille pienaakkosille, ja 0-9, numeroille.&lt;br /&gt;
*\(&amp;lt;sisältö elementtinä&amp;gt;\) merkitsee sisältönsä yhdeksi elementiksi toistolauseille ulospäin täydelliseksi säännölliseksi lausekkeeksi sisällepäin.&lt;br /&gt;
====toisto-operaattorit====&lt;br /&gt;
*&#039;*&#039;: edellinen elementti 0 tai mielivaltaisen montaa kertaa kokonaan&lt;br /&gt;
*&#039;+&#039;: edellinen elementti mielivaltaisen monta kertaa &lt;br /&gt;
*&#039;?&#039;: edellinen elementti 0 tai 1 kertaa&lt;br /&gt;
monissa sovelluksissa sallitaan myös&lt;br /&gt;
*&#039;{&amp;lt;toistokerrat&amp;gt;}&#039;: edellinen elementti toistokerrat kertaa&lt;br /&gt;
====tai====&lt;br /&gt;
merkkijono kuuluu kieleen, jos se kuuluu | edeltävään tai sen jälkeiseen säännölliseen lauseekkeeseen.&lt;br /&gt;
====erityismerkit====&lt;br /&gt;
*&#039;^&#039;: Rivin alku, tämä ei siis vastaa rivin ensimmäistä merkkiä vaan vain rivin alkua.&lt;br /&gt;
*&#039;$&#039;: Rivin loppu, vastaavasti.&lt;br /&gt;
*&#039;.&#039;: mikä tahansa merkki&lt;br /&gt;
===[[Perl]]===&lt;br /&gt;
&lt;br /&gt;
==Linkkejä==&lt;br /&gt;
===Wikipedia===&lt;br /&gt;
*[[wikipedia:fi:säännöllinen lauseke|Säännöllinen lauseke]]&lt;br /&gt;
*[[wikipedia:fi:äärellinen automaatti|Äärellinen automaatti]]&lt;br /&gt;
*[[wikipedia:fi:pinoautomaatti|Pinoautomaatti]]&lt;br /&gt;
*[[wikipedia:fi:turingin kone|Turingin kone]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Käsitteet]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Siirrett%C3%A4vyys&amp;diff=14967</id>
		<title>Siirrettävyys</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Siirrett%C3%A4vyys&amp;diff=14967"/>
		<updated>2007-05-10T10:47:15Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Siirrettävyys on lähdekoodin ominaisuus, joka kertoo kuinka hyvin lähdekoodia vastaava ohjelma tai toimii erilaisissa ympäristöissä.&lt;br /&gt;
&lt;br /&gt;
==Katso==&lt;br /&gt;
*[[LSB]]&lt;br /&gt;
*[[posix]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=POSIX&amp;diff=14966</id>
		<title>POSIX</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=POSIX&amp;diff=14966"/>
		<updated>2007-05-10T10:41:24Z</updated>

		<summary type="html">&lt;p&gt;Jkarlson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[IEEE]]:n standardikokoelma koskien käyttöjärjestelmien tarjoamia rajapintoja ja muuta toiminnallisuutta. Tämä on olennaista muunmuassa [[siirrettävyys|siirrettävyyden]] takaamisessa.&lt;br /&gt;
&lt;br /&gt;
==Katso==&lt;br /&gt;
*[[wikipedia:fi:posix| posix wikipediassa]]&lt;br /&gt;
*[[LSB]]&lt;/div&gt;</summary>
		<author><name>Jkarlson</name></author>
	</entry>
</feed>