[FreeBSD] Comment créer son propre serveur de packages ?
6 réponses
Paul Gaborit
Afin d'éviter la recompilation des ports lors des mises à jour sur
chacune de nos machines en FreeBSD et comme les serveurs publics ne
proposent évidemment pas tous les packages dont nous avons besoin,
j'aimerai créer un serveur de packages local.
Existe-t-il sur Internet des documents expliquant comme procéder (le
handbook FreeBSD explique bien le côté client mais je n'ai rien vu
d'explicite concernant le côté serveur) ? Sinon, quels conseils
pratiques pouvez-vous me donner à ce sujet ?
Merci.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Marwan Burelle
In article , Paul Gaborit wrote:
Afin d'éviter la recompilation des ports lors des mises à jour sur chacune de nos machines en FreeBSD et comme les serveurs publics ne proposent évidemment pas tous les packages dont nous avons besoin, j'aimerai créer un serveur de packages local.
Existe-t-il sur Internet des documents expliquant comme procéder (le handbook FreeBSD explique bien le côté client mais je n'ai rien vu d'explicite concernant le côté serveur) ? Sinon, quels conseils pratiques pouvez-vous me donner à ce sujet ?
Je ne sais pas s'il existe des docs, mais ce n'est pas très difficile.
Il y a en gros 2 méthodes (en partant du principe que vous savez construire vos packages) :
- partager en nfs le répertoire /usr/ports/packages, surement très bien pour un réseau local, mais je ne suis pas sûre que ça marche pour toutes les commandes qui vont chercher des packages ...
- Mettre un ftp quelque part en place, y faire un répertoire pub/FreeBSD/ports/$arch/packages-$release avec les sous-répertoires correspondant à ce que l'on trouve sur le ftp de FreeBSD (ou dans /usr/ports/packages) et fixer les variables PACKAGEROOT ou PACKAGESITE pour pkg_fetch(1) (voir la man page pour les détails.) Normalement 'pkg_add -r' et portupgrade devrait être content avec ces 2 variables.
Une dernière solutions, pourrait être de passer par un ports tree en nfs, un premier build/install (ou upgrade) via 'portupgrade -W' pour ne pas nettoyer après l'installe et après utiliser 'portupgrade -Ww' (toujours pour ne pas nettoyer le répertoire de build ... )
La je n'explique pas tous les détails sur la construction des packages et la mise en place d'un serveur ftp (annonymous) mais bon, ça devrait être mieux documenté tout ça ...
-- Burelle Marwan, Equipe Bases de Donnees - LRI http://www.cduce.org ( | )
In article <r7wtnnc6m2.fsf@vaugirard.enstimac.fr>, Paul Gaborit wrote:
Afin d'éviter la recompilation des ports lors des mises à jour sur
chacune de nos machines en FreeBSD et comme les serveurs publics ne
proposent évidemment pas tous les packages dont nous avons besoin,
j'aimerai créer un serveur de packages local.
Existe-t-il sur Internet des documents expliquant comme procéder (le
handbook FreeBSD explique bien le côté client mais je n'ai rien vu
d'explicite concernant le côté serveur) ? Sinon, quels conseils
pratiques pouvez-vous me donner à ce sujet ?
Je ne sais pas s'il existe des docs, mais ce n'est pas très difficile.
Il y a en gros 2 méthodes (en partant du principe que vous savez
construire vos packages) :
- partager en nfs le répertoire /usr/ports/packages, surement très
bien pour un réseau local, mais je ne suis pas sûre que ça marche
pour toutes les commandes qui vont chercher des packages ...
- Mettre un ftp quelque part en place, y faire un répertoire
pub/FreeBSD/ports/$arch/packages-$release avec les sous-répertoires
correspondant à ce que l'on trouve sur le ftp de FreeBSD (ou dans
/usr/ports/packages) et fixer les variables PACKAGEROOT ou
PACKAGESITE pour pkg_fetch(1) (voir la man page pour les détails.)
Normalement 'pkg_add -r' et portupgrade devrait être content avec
ces 2 variables.
Une dernière solutions, pourrait être de passer par un ports tree en
nfs, un premier build/install (ou upgrade) via 'portupgrade -W' pour
ne pas nettoyer après l'installe et après utiliser 'portupgrade -Ww'
(toujours pour ne pas nettoyer le répertoire de build ... )
La je n'explique pas tous les détails sur la construction des packages
et la mise en place d'un serveur ftp (annonymous) mais bon, ça devrait
être mieux documenté tout ça ...
--
Burelle Marwan,
Equipe Bases de Donnees - LRI
http://www.cduce.org
(burelle@lri.fr | Marwan.Burelle@ens.fr)
Afin d'éviter la recompilation des ports lors des mises à jour sur chacune de nos machines en FreeBSD et comme les serveurs publics ne proposent évidemment pas tous les packages dont nous avons besoin, j'aimerai créer un serveur de packages local.
Existe-t-il sur Internet des documents expliquant comme procéder (le handbook FreeBSD explique bien le côté client mais je n'ai rien vu d'explicite concernant le côté serveur) ? Sinon, quels conseils pratiques pouvez-vous me donner à ce sujet ?
Je ne sais pas s'il existe des docs, mais ce n'est pas très difficile.
Il y a en gros 2 méthodes (en partant du principe que vous savez construire vos packages) :
- partager en nfs le répertoire /usr/ports/packages, surement très bien pour un réseau local, mais je ne suis pas sûre que ça marche pour toutes les commandes qui vont chercher des packages ...
- Mettre un ftp quelque part en place, y faire un répertoire pub/FreeBSD/ports/$arch/packages-$release avec les sous-répertoires correspondant à ce que l'on trouve sur le ftp de FreeBSD (ou dans /usr/ports/packages) et fixer les variables PACKAGEROOT ou PACKAGESITE pour pkg_fetch(1) (voir la man page pour les détails.) Normalement 'pkg_add -r' et portupgrade devrait être content avec ces 2 variables.
Une dernière solutions, pourrait être de passer par un ports tree en nfs, un premier build/install (ou upgrade) via 'portupgrade -W' pour ne pas nettoyer après l'installe et après utiliser 'portupgrade -Ww' (toujours pour ne pas nettoyer le répertoire de build ... )
La je n'explique pas tous les détails sur la construction des packages et la mise en place d'un serveur ftp (annonymous) mais bon, ça devrait être mieux documenté tout ça ...
-- Burelle Marwan, Equipe Bases de Donnees - LRI http://www.cduce.org ( | )
Marwan Burelle
In article , Patrick Lamaizière wrote:
Pourquoi ça ne marcherait pas ?
Il me semble que 'pkg_add -r' ne se pose pas la question de ce qui est dispo dans /usr/ports/packages (j'ai essayé il y a longtemps ... )
Sinon on peut fixer les répertoires avec WRKDIRPREFIX (build), DISTDIR (distfiles) et PACKAGES dans make.conf. Mais il faut aussi les paramétrer pour portupgrade dans pkgtools.conf.
Oui ... mais vu que l'on va tout faire avec du nfs autant changer le moins de variable possibles ;)
Il ne faudrait pas les options de compilations (le make config) qui sont dans /var/quelquechose ?
Euh, oui, mais non ... lorsqu'un make se finit dans un répertoire il rajoute un fichier bidon dans work pour dire quel phase est finie et si on refait make, il ne fait rien si ce fichier est présent (si les même options sont passées à make.) Je penses (pas testé) qu'il ne doit pas reposer la question pour tout ce qui est config ...
L'avantage du port tree en NFS c'est aussi d'en avoir qu'un à mettre à jour.
Effectivement (on peut cumuler la deuxième solution avec cette avantage ... )
-- Burelle Marwan, Equipe Bases de Donnees - LRI http://www.cduce.org ( | )
In article <Xns6A5CEC82A9E41plam@nulle.invalid>, Patrick Lamaizière wrote:
Pourquoi ça ne marcherait pas ?
Il me semble que 'pkg_add -r' ne se pose pas la question de ce qui est
dispo dans /usr/ports/packages (j'ai essayé il y a longtemps ... )
Sinon on peut fixer les répertoires avec WRKDIRPREFIX (build), DISTDIR
(distfiles) et PACKAGES dans make.conf. Mais il faut aussi les
paramétrer pour portupgrade dans pkgtools.conf.
Oui ... mais vu que l'on va tout faire avec du nfs autant changer le
moins de variable possibles ;)
Il ne faudrait pas les options de compilations (le make config) qui sont
dans /var/quelquechose ?
Euh, oui, mais non ... lorsqu'un make se finit dans un répertoire il
rajoute un fichier bidon dans work pour dire quel phase est finie et
si on refait make, il ne fait rien si ce fichier est présent (si les
même options sont passées à make.) Je penses (pas testé) qu'il ne doit
pas reposer la question pour tout ce qui est config ...
L'avantage du port tree en NFS c'est aussi d'en avoir qu'un à mettre à
jour.
Effectivement (on peut cumuler la deuxième solution avec cette
avantage ... )
--
Burelle Marwan,
Equipe Bases de Donnees - LRI
http://www.cduce.org
(burelle@lri.fr | Marwan.Burelle@ens.fr)
Il me semble que 'pkg_add -r' ne se pose pas la question de ce qui est dispo dans /usr/ports/packages (j'ai essayé il y a longtemps ... )
Sinon on peut fixer les répertoires avec WRKDIRPREFIX (build), DISTDIR (distfiles) et PACKAGES dans make.conf. Mais il faut aussi les paramétrer pour portupgrade dans pkgtools.conf.
Oui ... mais vu que l'on va tout faire avec du nfs autant changer le moins de variable possibles ;)
Il ne faudrait pas les options de compilations (le make config) qui sont dans /var/quelquechose ?
Euh, oui, mais non ... lorsqu'un make se finit dans un répertoire il rajoute un fichier bidon dans work pour dire quel phase est finie et si on refait make, il ne fait rien si ce fichier est présent (si les même options sont passées à make.) Je penses (pas testé) qu'il ne doit pas reposer la question pour tout ce qui est config ...
L'avantage du port tree en NFS c'est aussi d'en avoir qu'un à mettre à jour.
Effectivement (on peut cumuler la deuxième solution avec cette avantage ... )
-- Burelle Marwan, Equipe Bases de Donnees - LRI http://www.cduce.org ( | )
- Mettre un ftp quelque part en place, y faire un répertoire pub/FreeBSD/ports/$arch/packages-$release avec les sous-répertoires correspondant à ce que l'on trouve sur le ftp de FreeBSD (ou dans /usr/ports/packages) et fixer les variables PACKAGEROOT ou PACKAGESITE pour pkg_fetch(1) (voir la man page pour les détails.) Normalement 'pkg_add -r' et portupgrade devrait être content avec ces 2 variables.
C'est la solution que je pense adopter car elle a l'avantage de minimiser le paramètrage côté client. Je ne pensais pas que c'était aussi simple...
La je n'explique pas tous les détails sur la construction des packages et la mise en place d'un serveur ftp (annonymous) mais bon, ça devrait être mieux documenté tout ça ...
Pour ça, effectivement je me débrouillerai tout seul : la doc est suffisament explicite ;-)
Merci.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
- Mettre un ftp quelque part en place, y faire un répertoire
pub/FreeBSD/ports/$arch/packages-$release avec les sous-répertoires
correspondant à ce que l'on trouve sur le ftp de FreeBSD (ou dans
/usr/ports/packages) et fixer les variables PACKAGEROOT ou
PACKAGESITE pour pkg_fetch(1) (voir la man page pour les détails.)
Normalement 'pkg_add -r' et portupgrade devrait être content avec
ces 2 variables.
C'est la solution que je pense adopter car elle a l'avantage de
minimiser le paramètrage côté client. Je ne pensais pas que c'était
aussi simple...
La je n'explique pas tous les détails sur la construction des packages
et la mise en place d'un serveur ftp (annonymous) mais bon, ça devrait
être mieux documenté tout ça ...
Pour ça, effectivement je me débrouillerai tout seul : la doc est
suffisament explicite ;-)
Merci.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
- Mettre un ftp quelque part en place, y faire un répertoire pub/FreeBSD/ports/$arch/packages-$release avec les sous-répertoires correspondant à ce que l'on trouve sur le ftp de FreeBSD (ou dans /usr/ports/packages) et fixer les variables PACKAGEROOT ou PACKAGESITE pour pkg_fetch(1) (voir la man page pour les détails.) Normalement 'pkg_add -r' et portupgrade devrait être content avec ces 2 variables.
C'est la solution que je pense adopter car elle a l'avantage de minimiser le paramètrage côté client. Je ne pensais pas que c'était aussi simple...
La je n'explique pas tous les détails sur la construction des packages et la mise en place d'un serveur ftp (annonymous) mais bon, ça devrait être mieux documenté tout ça ...
Pour ça, effectivement je me débrouillerai tout seul : la doc est suffisament explicite ;-)
Merci.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
sinese
Paul Gaborit wrote:
Existe-t-il sur Internet des documents expliquant comme procéder (le handbook FreeBSD explique bien le côté client mais je n'ai rien vu d'explicite concernant le côté serveur) ? Sinon, quels conseils pratiques pouvez-vous me donner à ce sujet ?
Sur http://open-projects.univ-mlv.fr y a une doc expliquant comment faire. Le serveur cvsup est sur un openBSD et non un FreeBSD. Pour un FreeBSD il suffit d'installer le package cvsup-mirror et suivre les instructions.
Le principe sur open-projects est: - A minuit une machine (FreeBSD) se synchronise avec le cvsup de freebsd. - A 8h je recompile les packages dont j'ai besoin (j'evite de le faire en automatique avec ces histoires de UPDATING qui demande de faire des trucs bizarre par moment). - A 20h le serveur "officiel" (serveur ftp et cvsup) se synchronise avec le serveur qui a servi a compiler.
Pour les clients un simple portupgrade -PPRrua suffit a mettre a jour le systeme.
La seul contrainte est que tout les ports a compiler doivent etre installer sur la machine de compilation avec ce mode (pkg_create semble ne travailler que sur des ports installes). De meme, il est necessaire de recreer les packages de tout les ports dependant d'un port mis a jour, sinon on a un probleme de dependance lors du pkg_add de l'installation.
La generation de package est faite grace au script qui se trouve http://www.olympe.hn.org/repository/create_all_pkg.sh La variable PKGDIR est a changer dans le script.
Y a surment d'autres moyens de faire un serveur de package mais je n'ai pas specialement le temps de regarder plus en avant.
-- sinese
Paul Gaborit wrote:
Existe-t-il sur Internet des documents expliquant comme procéder (le
handbook FreeBSD explique bien le côté client mais je n'ai rien vu
d'explicite concernant le côté serveur) ? Sinon, quels conseils
pratiques pouvez-vous me donner à ce sujet ?
Sur http://open-projects.univ-mlv.fr y a une doc expliquant comment
faire. Le serveur cvsup est sur un openBSD et non un FreeBSD. Pour un
FreeBSD il suffit d'installer le package cvsup-mirror et suivre les
instructions.
Le principe sur open-projects est:
- A minuit une machine (FreeBSD) se synchronise avec le cvsup de freebsd.
- A 8h je recompile les packages dont j'ai besoin (j'evite de le faire
en automatique avec ces histoires de UPDATING qui demande de faire des
trucs bizarre par moment).
- A 20h le serveur "officiel" (serveur ftp et cvsup) se synchronise avec
le serveur qui a servi a compiler.
Pour les clients un simple portupgrade -PPRrua suffit a mettre a jour le
systeme.
La seul contrainte est que tout les ports a compiler doivent etre
installer sur la machine de compilation avec ce mode (pkg_create semble
ne travailler que sur des ports installes). De meme, il est necessaire
de recreer les packages de tout les ports dependant d'un port mis a
jour, sinon on a un probleme de dependance lors du pkg_add de
l'installation.
La generation de package est faite grace au script qui se trouve
http://www.olympe.hn.org/repository/create_all_pkg.sh
La variable PKGDIR est a changer dans le script.
Y a surment d'autres moyens de faire un serveur de package mais je n'ai
pas specialement le temps de regarder plus en avant.
Existe-t-il sur Internet des documents expliquant comme procéder (le handbook FreeBSD explique bien le côté client mais je n'ai rien vu d'explicite concernant le côté serveur) ? Sinon, quels conseils pratiques pouvez-vous me donner à ce sujet ?
Sur http://open-projects.univ-mlv.fr y a une doc expliquant comment faire. Le serveur cvsup est sur un openBSD et non un FreeBSD. Pour un FreeBSD il suffit d'installer le package cvsup-mirror et suivre les instructions.
Le principe sur open-projects est: - A minuit une machine (FreeBSD) se synchronise avec le cvsup de freebsd. - A 8h je recompile les packages dont j'ai besoin (j'evite de le faire en automatique avec ces histoires de UPDATING qui demande de faire des trucs bizarre par moment). - A 20h le serveur "officiel" (serveur ftp et cvsup) se synchronise avec le serveur qui a servi a compiler.
Pour les clients un simple portupgrade -PPRrua suffit a mettre a jour le systeme.
La seul contrainte est que tout les ports a compiler doivent etre installer sur la machine de compilation avec ce mode (pkg_create semble ne travailler que sur des ports installes). De meme, il est necessaire de recreer les packages de tout les ports dependant d'un port mis a jour, sinon on a un probleme de dependance lors du pkg_add de l'installation.
La generation de package est faite grace au script qui se trouve http://www.olympe.hn.org/repository/create_all_pkg.sh La variable PKGDIR est a changer dans le script.
Y a surment d'autres moyens de faire un serveur de package mais je n'ai pas specialement le temps de regarder plus en avant.
Existe-t-il sur Internet des documents expliquant comme procéder (le handbook FreeBSD explique bien le côté client mais je n'ai rien vu d'explicite concernant le côté serveur) ? Sinon, quels conseils pratiques pouvez-vous me donner à ce sujet ?
Sur http://open-projects.univ-mlv.fr y a une doc expliquant comment faire. [...]
Ok. Je vais jeter un oeil. Merci pour cette doc...
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Existe-t-il sur Internet des documents expliquant comme procéder (le
handbook FreeBSD explique bien le côté client mais je n'ai rien vu
d'explicite concernant le côté serveur) ? Sinon, quels conseils
pratiques pouvez-vous me donner à ce sujet ?
Sur http://open-projects.univ-mlv.fr y a une doc expliquant comment
faire.
[...]
Ok. Je vais jeter un oeil. Merci pour cette doc...
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Existe-t-il sur Internet des documents expliquant comme procéder (le handbook FreeBSD explique bien le côté client mais je n'ai rien vu d'explicite concernant le côté serveur) ? Sinon, quels conseils pratiques pouvez-vous me donner à ce sujet ?
Sur http://open-projects.univ-mlv.fr y a une doc expliquant comment faire. [...]
Ok. Je vais jeter un oeil. Merci pour cette doc...
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
- Mettre un ftp quelque part en place, y faire un répertoire pub/FreeBSD/ports/$arch/packages-$release avec les sous-répertoires correspondant à ce que l'on trouve sur le ftp de FreeBSD (ou dans /usr/ports/packages)[...]
Juste une petite question sur ce point...
Sur les serveurs ftp de FreeBSD, en plus du contenu de /usr/ports/packages, il y a un fichier INDEX. À quoi sert-il ? Est-ce celui qui est dans /usr/ports que je dois recopier ? Pourquoi ne s'appelle-t-il pas INDEX-5 alors que je suis en 5-stable ? Sinon, comment le construit-on ?
J'ai fait un test depuis une machine cliente et elle ne semble pas se servir du fichier INDEX présent sur le serveur ftp ... mais je précies qu'elle a un arbre de ports à jour avec un fichier INDEX-5 à jour (grâce à portindex).
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
- Mettre un ftp quelque part en place, y faire un répertoire
pub/FreeBSD/ports/$arch/packages-$release avec les sous-répertoires
correspondant à ce que l'on trouve sur le ftp de FreeBSD (ou dans
/usr/ports/packages)[...]
Juste une petite question sur ce point...
Sur les serveurs ftp de FreeBSD, en plus du contenu de
/usr/ports/packages, il y a un fichier INDEX. À quoi sert-il ? Est-ce
celui qui est dans /usr/ports que je dois recopier ? Pourquoi ne
s'appelle-t-il pas INDEX-5 alors que je suis en 5-stable ? Sinon,
comment le construit-on ?
J'ai fait un test depuis une machine cliente et elle ne semble pas se
servir du fichier INDEX présent sur le serveur ftp ... mais je précies
qu'elle a un arbre de ports à jour avec un fichier INDEX-5 à jour
(grâce à portindex).
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
- Mettre un ftp quelque part en place, y faire un répertoire pub/FreeBSD/ports/$arch/packages-$release avec les sous-répertoires correspondant à ce que l'on trouve sur le ftp de FreeBSD (ou dans /usr/ports/packages)[...]
Juste une petite question sur ce point...
Sur les serveurs ftp de FreeBSD, en plus du contenu de /usr/ports/packages, il y a un fichier INDEX. À quoi sert-il ? Est-ce celui qui est dans /usr/ports que je dois recopier ? Pourquoi ne s'appelle-t-il pas INDEX-5 alors que je suis en 5-stable ? Sinon, comment le construit-on ?
J'ai fait un test depuis une machine cliente et elle ne semble pas se servir du fichier INDEX présent sur le serveur ftp ... mais je précies qu'elle a un arbre de ports à jour avec un fichier INDEX-5 à jour (grâce à portindex).
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>