Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[gentoo] gestion de paquets

5 réponses
Avatar
Sebastien Kirche
Salut,

Je commence à regarder la doc Gentoo et ma première impression c'est qu'elle
est *très* claire et concrète.

J'aurais néanmoins besoin d'éclaircissements :

1) Je regarde en premier le fonctionnement des paquets d'install et il y a
un point que je n'ai pas tout à fait compris à leur propos, et que
certains ;) pourront me confirmer : comment est constitué un paquet
Gentoo (La faq n'a pas vraiment répondu et le ebuild-howto est un poil
technique de prime abord.) ?

Portage/ebuild m'a l'air de ressembler à Fink sous OSX : pour compiler et
utiliser sous OSX des applis Unix, Fink permet d'un côté de récupérer les
sources officielles (.tar.gz) des applis et d'un autre côté un ou des
scripts+patches qui vont modifier juste ce qu'il faut dans les sources
pour rendre l'appli compilable sous OSX. L'arborescence de Fink est
calquée sur Debian et utilise d'ailleurs un portage des outils apt et
dpkg; de plus les paquets stables sont aussi dispo en précompilés.
Est-ce du même tonneau ?

2) est-il possible/simple/facile d'intégrer une appli «non-paquet»
(typiquement compilée d'un arbre cvs ou simple tgz récupéré en line) à
l'arborescence Gentoo ? J'ai l'impression qu'il me faudrait relire le
ebuild-howto pour cela.

L'exemple évident qui me vient en tête est l'installation d'Emacs-cvs sur
la Debian :
- soit je .configure/make/make install ce qui est plutôt crade car ça en
met partout et apt n'est pas au courant de l'install -> problèmes de
dépendances pour la suite ou pour la désinstallation

- soit (grâce à Jérôme Marant - mainteneur Debian) je peux utiliser un
squelette de paquet Debian (emacs-snapshot) et l'intégrer aux sources
CVS pour fabriquer un paquet, cependant il se met en parallèle avec
Emacs21 et les 2 se marchent joyeusement sur les pieds, ce n'est pas
tout à fait au point...

Merci de vos informations.

Sébastien Kirche

5 réponses

Avatar
no_spam
On Mon, 06 Dec 2004 15:38:55 +0100, Sebastien Kirche wrote:

Salut,

Je commence à regarder la doc Gentoo et ma première impression c'est qu'elle
est *très* claire et concrète.

J'aurais néanmoins besoin d'éclaircissements :

1) Je regarde en premier le fonctionnement des paquets d'install et il y a
un point que je n'ai pas tout à fait compris à leur propos, et que
certains ;) pourront me confirmer : comment est constitué un paquet
Gentoo (La faq n'a pas vraiment répondu et le ebuild-howto est un poil
technique de prime abord.) ?


Un packet Gentoo est un tar.bz2 avec des infos en plus à la fin.
C'est pratique quand on casse portage: si tar marche toujours, on arrive
facilement à le restaurer ;-)

Portage/ebuild m'a l'air de ressembler à Fink sous OSX : pour compiler et
utiliser sous OSX des applis Unix, Fink permet d'un côté de récupérer les
sources officielles (.tar.gz) des applis et d'un autre côté un ou des
scripts+patches qui vont modifier juste ce qu'il faut dans les sources
pour rendre l'appli compilable sous OSX. L'arborescence de Fink est
calquée sur Debian et utilise d'ailleurs un portage des outils apt et
dpkg; de plus les paquets stables sont aussi dispo en précompilés.
Est-ce du même tonneau ?


Fink et darwinports sont, je crois, des adaptations du système des ports
BSD. portage est en partie inspiré de celà mais est beaucoup plus
évolué en ce qui concerne la gestion des dépendances, des flags de
build et des slots. Ce dernier point, qui permet d'avoir plusieurs
versions du même package installées simultanément, est à mon avis
l'une des plus grandes avancées de la Gentoo. Par exemple, garder <n>
versions de gcc sur les autres distribs relève souvent du parcours du
combatant. Sur la Gentoo, il y a juste à les merger....

2) est-il possible/simple/facile d'intégrer une appli «non-paquet»
(typiquement compilée d'un arbre cvs ou simple tgz récupéré en line) à
l'arborescence Gentoo ? J'ai l'impression qu'il me faudrait relire le
ebuild-howto pour cela.


Faire un ebuild simple est vraiment facile.
S'il le package s'installe sans patches, en faisant juste ./configure ;
make ; make install, il suffit de très peu de choses:

DESCRIPTION="my test package"
HOMEPAGE="http://my_home/"
SRC_URI="mirror://my_home/${PN}-${PV}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="x86"
IUSE=""
DEPEND=""
RDEPEND=""

dans un fichier ebuild, et c'est tout.
A noter qu'il existe des outils pour aider au développement des ebuilds:
faire un petit tour dans /usr/portage/app-portage/ peut donner des idées
;-)

D'un autre coté, comme la Gentoo n'installe rien dans /usr/local, tu peux
installer tout ce que tu veux par là sans jamais casser la distrib.


L'exemple évident qui me vient en tête est l'installation d'Emacs-cvs


Mauvais exemple pour la Gentoo: il existe un package app-editor/emacs-cvs
;-)

[...]

Avatar
Sebastien Kirche
Le 6 Dec 2004, no spam a formulé :

L'exemple évident qui me vient en tête est l'installation d'Emacs-cvs


Mauvais exemple pour la Gentoo: il existe un package app-editor/emacs-cvs
;-)


Miam :^P

Sébastien Kirche


Avatar
TiChou
Dans le message <news:,
*Sebastien Kirche* tapota sur f.c.o.l.configuration :

Salut,


Salut Séb, :-)

comment est constitué un paquet Gentoo (La faq n'a pas vraiment
répondu et le ebuild-howto est un poil technique de prime abord.) ?


Dans le message suivant :

http://groups.google.fr/groups?selm=

je disais les choses suivantes à Jeremy JUST :

Les « paquets » de la Gentoo contiennent-ils les sources, ou bien
uniquement une description de la compilation (liste de sites où il est
possible que les sources soient, patches et instructions de
compilations)?



T> Il y a deux types de paquets sur Gentoo. Il y a les ebuild
T> principalement et les paquets binaires qui sont des archives tarball
T> .tbz2. Chaque ebuild décrit quels sont les dépendances à satisfaire, où
T> récupérer les sources, comment les extraire et les patcher, l'étape de
T> configuration et de compilation, où installer les différents fichiers et
T> quels sont les éventuels avertissements à afficher une fois le paquet
T> installé. Ces ebuild peuvent être accompagnés de fichiers
T> supplémentaires comme les patches, les outils développés par Gentoo pour
T> la configuration de l'application, les fichiers d'exemples de
T> configuration, etc.

2) est-il possible/simple/facile d'intégrer une appli «non-paquet»


Ma réponse est oui car, c'est mon avis, il est simple de faire un ebuild
d'une application n'existant pas dans portage (c'est quand même relativement
rare ;) ). On peut en effet avoir son propre arbre portage (générallement on
le place dans /usr/local/portage) et y mettre tous ses ebuilds maisons.

Tu peux aller faire un tour dans l'arbre de portage et voir par toi même
comment est constitué portage et voir la syntaxe assez simple et claire des
ebuilds :

http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo-portage/

Exemples d'un ebuild simple :

http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo-portage/media-tv/kdetv/kdetv-0.8.0.ebuild

Il y a aussi le très bon exemple de no_spam.

Mais tu as aussi des ebuilds de paquets avec une description assez
grande :

http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo-portage/x11-base/xorg-x11/xorg-x11-6.8.0-r4.ebuild

(typiquement compilée d'un arbre cvs ou simple tgz récupéré en line) à
l'arborescence Gentoo ? J'ai l'impression qu'il me faudrait relire le
ebuild-howto pour cela.


Note que s'il s'agit d'avoir un paquet avec une version très récente que ne
proposerait pas encore portage, il est alors très facile de récupérer
l'ebuild de la version existante et de le modifier. Souvent, la modification
se limite juste à renommer le nom de l'ebuild.
Si je reprend l'exemple précédent de kdetv et que je compare les ebuild de
deux versions différentes, j'obtiens :

# diff kdetv-0.8.2.ebuild kdetv-0.8.3.ebuild
3c3
< # $Header: /var/cvsroot/gentoo-x86/media-tv/kdetv/kdetv-0.8.2.ebuild,v 1.1
---
# $Header: /var/cvsroot/gentoo-x86/media-tv/kdetv/kdetv-0.8.3.ebuild,v 1.1

Merci de vos informations.


Avec plaisir.

--
TiChou


Avatar
TiChou
Dans le message <news:,
*no_spam* tapota sur f.c.o.l.configuration :

Sebastien Kirche wrote:
comment est constitué un paquet Gentoo


Un packet Gentoo est un tar.bz2 avec des infos en plus à la fin.


Je pense que Sébastien ne parlait pas des paquets binaires mais des paquets
que parfois j'appelle paquets sources, c'est-à-dire des ebuilds.

--
TiChou


Avatar
no_spam
On Mon, 06 Dec 2004 18:22:25 +0100, TiChou wrote:

Dans le message <news:,
*no_spam* tapota sur f.c.o.l.configuration :

Sebastien Kirche wrote:
comment est constitué un paquet Gentoo


Un packet Gentoo est un tar.bz2 avec des infos en plus à la fin.


Je pense que Sébastien ne parlait pas des paquets binaires mais des paquets
que parfois j'appelle paquets sources, c'est-à-dire des ebuilds.


Effectivement, j'ai peut-être traduit un peu vite paquet par "package" ;-)