Fedora-Fr - Communauté francophone Fedora - Linux

Planet de Fedora-Fr : la communauté francophone autour de la distribution Linux Fedora

A propos

Cette page est actualisée toutes les heures.

Cette page est une sélection de blogs autour de Fedora. Fedora-Fr.org décline toute responsabilité au sujet des propos tenus par les auteurs des blogs de ce planet. Leurs propos sont leur entière responsabilité.

Le contenu de ce planet appartient à leurs auteurs respectifs. Merci de consulter leur blogs pour obtenir les licences respectives.

Mot-clefs : dépôt

Dêpôt expérimental Fedora 16

Remi Collet

Je travaille souvent sur des fonctionnalités afin de préparer des mises à jour, réaliser des tests, etc.

J'ai donc décidé de mettre ces RPM à votre disposition, uniquement pour fedora 16 x86_64, que j'utilise comme système principal.

Voir : Dépôt remi développement Actuellement on y trouve httpd 2.4.1 et php 5.4.0 (rétro-portage des versions Fedora 18). Bien sûr, son utilisation est vraiment réservé aux experts qui n'ont pas peur de casser leur machine. Pour yum, il suffit d'ajouter dans le fichier /etc/yum.repos.d/remi.repo : [remi-dev]name=Les RPM de remi en DEV pour... Lire Dêpôt expérimental Fedora 16

Fermeture du dépôt EL-4

Remi Collet

Lire : Red Hat Enterprise Linux Life Cycle Red Hat Enterprise Linux 4 - 30 day End Of Life Notice CentOS-4 End Of Life 3 Month Notice Scientific Linux 4 - 3-Month End Of Life Notice EPEL-ANNOUNCE EPEL-4 end of life Le dépôt remi pour Enterprise Linux 4 est donc fermé. Les RPM restent accessibles, mais ne seront plus mis à jour. Si vous... Lire Fermeture du dépôt EL-4

10 millions

Remi Collet

Le cap des 10 millions de RPM téléchargés depuis le dépôt remi viens d'être franchi (7 millions uniquement pour EL-5). Merci de votre fidélité.... Lire 10 millions

Création d'un dépôt RPM à base de Fedora

Alexandre Frandemiche

Introduction

Je vais partir du principe que nous allons créer un dépôt RPM pour Fedora 14 et CentOS/RHEL 5 dans /var/www/html/linux/. Voici l'arborescence :

/var/www/html/linux/fedora/14/i386/
/var/www/html/linux/fedora/14/x86_64/
/var/www/html/linux/el5/5/i386/
/var/www/html/linux/el5/5/x86_64/

Chacun des chemins cités ci-dessus est un dépôt. Ainsi, dans ce qui suit on remplacera /path/myrepo par /var/www/html/linux/fedora/14/i386/ puis pour l'ensemble des commandes par /var/www/html/linux/fedora/14/x86_64/ et ainsi de suite pour chacune des architecture des distributions que concerne notre dépôt.

Vos rpm seront donc présents avant la génération de createrepo et repoview ;)
MyRepo

Préparation des chemins contenant les RPM

su -lc 'mkdir -p /var/www/html/linux/fedora/14/i386/'
su -lc 'mkdir -p /var/www/html/linux/fedora/14/x86_64/'
su -lc 'mkdir -p /var/www/html/linux/el5/5/i386/'
su -lc 'mkdir -p /var/www/html/linux/el5/5/x86_64/'


Pour el5, on peut installer des pré-configuration lors de l'installation de l'OS, du coup, $releaseversion n'est pas forcément 5, mais peut être 5Workstation, 5client ou 5Server. Dans ce cas on en profite pour créer des liens symboliques :
su -lc 'ln -s /var/www/html/linux/el5/5/ /var/www/html/linux/el5/5Workstation'
su -lc 'ln -s /var/www/html/linux/el5/5/ /var/www/html/linux/el5/5Client'
su -lc 'ln -s /var/www/html/linux/el5/5/ /var/www/html/linux/el5/5Server
'

Installer un dépôt RPM

Installation d'un serveur web

Tout d'abord commençons par installer un serveur Apache :
su -lc 'yum install httpd'

Configuration du dépôt

Pour configurer notre dépôt, nous allons utiliser l'outil createrepo :
su -lc 'yum install createrepo'

Créons dans /etc/httpd/conf.d/ un fichier de configuration pour notre dépôt dans Apache :
su -lc 'vi /etc/httpd/conf.d/repository.conf'

Voici le contenu du fichier :

<Directory /var/www/html/>
    Options Indexes
    Options Indexes FollowSymLinks
    Order allow, deny
    Allow from all
</Directory>

Création du dépôt

La commande de base pour créer une dépôt est createrepo :
createrepo /path/monrepo

Le plus souvent, on crée un dépôt en générant une base sqlite (cela nous sera utile pour repoview), pour cela, il faut utiliser l'option -d :
createrepo -d  /path/monrepo

L'option -g permet de prendre en compte un groupe de RPM définit dans un fichier comps.xml :
createrepo -d -g /path/comps.xml /path/monrepo

Ainsi, nous pourrons utiliser les commandes yum grouptruc avec notre dépôt !

L'option --unique-md-filenames semble utile, notamment lorsque 'lon a plusieurs mirroir, permet ede donner un nom unique aux metadatas.
L'option --checksum sha est indispensable pour le dépôt EL-5 (la valeur par défaut, sha256, est ok pour fedora >= 11 et EL >= 6)

Donc au final on se retrouve avec :

createrepo --unique-md-filenames --checksum sha -d -g /path/comps.xml /path/monrepo

Génération de repoview

Un dépôt, c'est bien, de quoi le parcourir avec un design sympa, c'est mieux !

Installation de Repoview

su -lc 'yum install repoview'

Utiliser l'option -d sur la commande createrepo afin de créer la base sqlite qui sera utilisée par repoview.

Création des page html via repoview

Ensuite, c'est très simple on demande à repoview de créer les pages qui permettront de naviguer dans notre dépôt !
repoview /path/monrepo

Pour terminer, assurons-nous de disposer des droits pour l'utilisateur apache :
su -lc 'chmod o+rX /path/monrepo'

Exemple de fichier Comps.xml afin de créer des groupes de rpm

Si vous désirez installer l'ensemble de vos rpm dans votre repo, ou un sous-ensemble spécifique, vous devrez créer un fichier de groupes : comps.xml. Pour notre exemple, si nous voulions que myrpm.noarch.rpm soit installé par défaut et mybinrpm.i386.rpm soit une option, nous créerions un fichier de comps.xml comme ceci :

    <comps>
    <!--  <meta> -->
    <!-- Meta information will go here eventually -->
    <!--  </meta> -->
      <group>
        <id>mygroup</id>
        <name>MyGroup</name>
        <default>true</default>
        <description>Default RPMS from MyRepo</description>
        <uservisible>true</uservisible>
        <packagelist>
          <packagereq type="default">myrpm</packagereq>
          <packagereq type="optional">mybinrpm</packagereq>
        </packagelist>
      </group>
    </comps>

Pensez à relancer createrepo afin que vos groupes soient accessibles par les personnes ayant votre dépôt de configuré !

Ajout de pages manquantes

Cette opération est effectuée qu'un seule fois à la création de l'arborescence, puis à l'ajout d'un release ou d'une distribution.

Index principal dans /var/www/html/

Notre dépôt est prêt, reste à y ajouter quelques pages et feuilles de style !
su -lc 'vi /var/www/html/index.html
Voici le contenu :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<head>
        <meta content="text/html; charset=utf-8" http-equiv="content-type" />
        <title>RepoView: MyRpo</title>
        <link href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/css/repostyle.css" type="text/css" rel="stylesheet" />
        <meta content="index,follow" name="robots" />
        <link rel="shortcut icon" href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/favicon.ico" />
</head>
<body>
    <div id="page">
        <div id="top">
            <h1><span><a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/index.html">My - Packages</a></span></h1>
        </div>
        <p id="prelude"><a href="http://www.opti-time.com/">Site</a> | <a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/index.html">Dépôt</a></p>
        <div id="wrapper">
            <div id="main">
                <div id="content">
                    <h2>Download mirrors</h2>
                    <ul class="pkglist">
                        <li><a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/index.html" class="inpage">http://monurl/linux/</a> - <strong>primary</strong></li>
                    </ul>
                    <h2>Distribution choice</h2>
                    <h3>Fedora - Maintained version</h3>
                    <ul class="pkglist">
                        <li>
                            <a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/linux/fedora/14/index.html" class="inpage">Fedora 14 (Laughlin)</a> -
                                                        repository auto-configuration package : <a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/linux/fedora/14/x86_64/my-repo-fedora-2.0-0.0.fc14.noarch.rpm">My-repository-fc-14.rpm</a>
                        </li>
                    </ul>
                    <h3>Enterprise Linux (RHEL / CentOS / Other clones)</h3>
                    <ul class="pkglist">
                        <li>
                            <a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/linux/el5/5/index.html" class="inpage">Enterprise Linux 5.5</a> -
                            repository auto-configuration package : <a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/linux/el5/5/x86_64/my-repo-el5-2.0-0.0.el5.noarch.rpm">My-repository-el-5.rpm</a>
                        </li>

                    </ul>
                    <h2>Other resources</h2>
                    <ul class="pkglist">
                        <li>
                            <a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/linux/RPM-GPG-KEY-MyRepo.gpg" class="inpage">RPM-GPG-KEY-MyRepo</a>: the GnuPG public key of the key pair used to sign MyRepo's packages
                        </li>
                    </ul>
                </div>
            </div>
        </div>
        <div id="footer">
            <ul id="w3c">
                <li>
                    <a id="vxhtml" href="http://validator.w3.org/check/referer">XHTML 1.1 valide</a>
                </li>
                <li>
                    <a id="vcss" href="http://jigsaw.w3.org/css-validator/check/referer">CSS 2.0 valide</a>
                </li>
            </ul>
            <p>
                by <a href="http://mricon.com/trac/wiki/Repoview">Repoview</a> | Designed for <a href="http://www.myRepo.org/">MyRepo</a>
            </p>
        </div>
    </div>
</body>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
</html>

su -lc 'vi /var/www/html/css/repostyle.css
Voici le contenu :

ul, ul li {
    list-style: none;
    }
a:link, a:visited {
    color: #000;
    text-decoration: underline;
    }
a:hover {
    color: #000;
    text-decoration: none;
    }
.nav {
    text-align: right;
    color: gray;
    font-size: small;
    }
.nactive {
    border-bottom: 1px dotted blue;
    background-color: lavender;
    color: blue;
    font-size: small;
    text-decoration: none;
    }
.ninactive {
    color: gray;
    font-size: small;
    }
.nlink {
    text-decoration: none;
    color: blue;
    font-size: small;
    }
.nlink:hover {
    background-color: lavender;
    border-bottom: 1px dotted blue;
    font-size: small;
    }
.inpage {
    text-decoration: none;
    color: blue;
    }
.inpage:hover {
    background-color: mistyrose;
    color: red;
    border-bottom: 1px dotted red;
    }
.levbar {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 11em;
    height: 100%;
    border-right: 4px dotted gray;
    border-bottom: 4px dotted gray;
    background-color: gainsboro;
    }
.main {
    position: absolute;
    left: 13em;
    width: 75%;
    }
h1,h2,h3,h4,h5 {
    border-bottom: 1px dotted gray;
    border-top: 1px dotted gray;
    background-color: whitesmoke;
    font-weight: normal;
    }
.pagetitle {
    border-top: 1px dotted gray;
    border-bottom: 1px dotted gray;
    padding-top: 5%;
    padding-bottom: 5%;
    margin-top: 5%;
    margin-bottom: 5%;
    text-align: center;
    width: 100%;
    color: gray;
    background-color: white;
    }
dt  {
    font-weight: bold;
    margin-top: 1%;
    }
th  {
    background-color: whitesmoke;
    text-align: left;
    }
.field  {
    background-color: whitesmoke;
    text-align: right;
    }
.levbarlist {
    list-style-type: none;
    padding: 5%;
    border-top: 1px dotted gray;
    border-bottom: 1px dotted gray;
    background-color: whitesmoke;
    }
.pkglist {
    padding-top: 2%;
    padding-bottom: 2%;
    list-style-type: circle;
    }
.letterlist {
    background-color: whitesmoke;
    }
.letterlist a {
    padding-left: 0.2em;
    padding-right: 0.2em;
    }
.footernote {
    text-align: right;
    font-size: small;
    background-color: whitesmoke;
    border-top: 1px dotted gray;
    color: gray;
    }
.repoview {
    text-decoration: none;
    color: gray;
    border-bottom: 1px dotted gray;
    font-size: small;
    }
.repoview:hover {
    background-color: lavender;
    border-bottom: 1px dotted blue;
    color: blue;
    font-size: small;
    }

NB : Ce style est très fortement/probablement inspiré de celui qu'utilise Remi pour ses dépôts !

Index de redirection dans /var/www/html/linux/

su -lc 'vi /var/www/html/linux/index.html'
Voici le contenu :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="refresh" content="0; url=../index.html" />
<title>Repository MyRepo</title>
<meta name="robots" content="noindex,follow" />
<link href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/../css/repostyle.css" type="text/css" rel="stylesheet" />
</head>

<body>
<p><a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/../index.html">Packages MyRepo</a></p>
</body>
</html>

Index dans chacun des dépôts

Ici placez cet index autant de fois que de distributions supportée par votre dépôt
su -lc 'vi /var/www/html/linux/fedora/14/index.html'
Voici le contenu :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
    <meta content="text/html; charset=utf-8" http-equiv="content-type" />
    <title>Opti-Time - Fedora 14</title>
    <link href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/i386/repoview/layout/repostyle.css" type="text/css" rel="stylesheet" />
    <meta content="index,follow" name="robots" />
    <link rel="shortcut icon" href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/../../favicon.ico" />
</head>
<body>
    <div id="page">
        <div id="top">
            <h1><span><a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/../../../index.html">MyRepo- Packages</a></span></h1>
        </div>
        <p id="prelude"><a href="http://www.myrepo.com/">Site</a> | <a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/index.html">Dépôt</a></p>
        <div id="wrapper">
            <div id="main">
                <div id="content">
                        <h2>Fedora 14 (Laughlin)</h2>
                    <h3>MyRepo</h3>
                    <ul class="pkglist">
                        <li>
                            <a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/i386/repoview/index.html" class="inpage">i386</a>
                        </li>
                        <li>
                            <a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/x86_64/repoview/index.html" class="inpage">x86_64</a>
                        </li>
                    </ul>
                    <!--<h3>MyRepo-test</h3>
                    <ul class="pkglist">
                        <li>
                            <a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/test/i386/repoview/index.html" class="inpage">i386</a>
                        </li>
                        <li>
                            <a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/test/x86_64/repoview/index.html" class="inpage">x86_64</a>
                        </li>
                    </ul>-->
                </div>
            </div>
            <div id="sidebar">
                <h2>fedora 14</h2>
                <ul class="levbarlist">
                    <li>
                        <a href="http://www.slobberbone.net/dotclear/index.php?post/2011/08/17/../../../index.html" class="nlink" title="Back to distribution choice">Back to distribution choice</a>
                    </li>
                </ul>
            </div>
        </div>
        <div id="footer">
            <ul id="w3c">
                <li>
                    <a id="vxhtml" href="http://validator.w3.org/check/referer">XHTML 1.1 valide</a>
                </li>
                <li>
                    <a id="vcss" href="http://jigsaw.w3.org/css-validator/check/referer">CSS 2.0 valide</a>
                </li>
            </ul>
            <p>
                by <a href="http://mricon.com/trac/wiki/Repoview">Repoview</a> | Designed for <a href="http://www.myrepo.com/">MyRepo</a>
            </p>
        </div>
    </div>
</body>

<meta http-equiv="content-type" content="text/html;charset=UTF-8">
</html>

NB : changez donc fedora et 14 par el5 et 5 pour CentOS et RHEL.

Terminons par redonner la propriété du répertoire /var/www/html/ à apache :
su -lc 'chown -Rf apache:apache /var/www/html/'Merci Remi !
su -lc 'chmod o+rX /path/monrepo'

Scripts de régénération automatique des dépôts

Tâche que vous allez vous trouvez à faire souvent, voici donc un script pour le dépôt el5.5 (effectué avec les droits root) :

#!/bin/sh

chown -R apache:apache /var/www/html/linux/el5/
createrepo -g ~/comps.xml -d /var/www/html/linux/el5/5/i386/
createrepo -g ~/comps.xml -d /var/www/html/linux/el5/5/x86_64/
repoview /var/www/html/linux/el5/5/i386/
repoview /var/www/html/linux/el5/5/x86_64/
#permet d'avoir le même style que l'index.html
cp -f /var/www/html/css/repostyle.css /var/www/html/linux/el5/5/i386/repoview/layout/
cp -f /var/www/html/css/repostyle.css /var/www/html/linux/el5/5/x86_64/repoview/layout/
/etc/init.d/httpd reload

Et pour Fedora 14 :

#!/bin/sh

chown -R apache:apache /var/www/html/linux/fedora/
createrepo -g ~/comps.xml -d /var/www/html/linux/fedora/14/i386/
createrepo -g ~/comps.xml -d /var/www/html/linux/fedora/14/x86_64/
repoview /var/www/html/linux/fedora/14/i386/
repoview /var/www/html/linux/fedora/14/x86_64/
#permet d'avoir le même style que l'index.html
cp -f /var/www/html/css/repostyle.css /var/www/html/linux/fedora/14/i386/repoview/layout/
cp -f /var/www/html/css/repostyle.css /var/www/html/linux/fedora/14/x86_64/repoview/layout/
/etc/init.d/httpd reload

Génération de la clé GPG et du fichier myrepo.repo

Pour finaliser votre dépôt, il vous faut une clé GPG qui va authentifier vos rpm présents sur le dépôt, je vous invite à lire GnuPG : Signature et Chiffrement afin de créer votre propre clé GPG.
Ensuite, il va falloir ajouter la définition de votre dépôt et la clé GPG à chacun de vos "clients" de votre dépôt.
Voici le fichier qui sera dans /etc/yum.repo.d/
su -lc 'vi /etc/yum.repo.d/myrepo.repo'

[MyRepo]
name=MyRepo Repository for Enterprise Linux $releasever - $basearch
baseurl=http://repository.opti-time.net:81/linux/el5/$releasever/$basearch/
enabled=1
#failovermethod=priority
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-MyRepo.gpg

Et comme un exemple est toujours mieux qu'un beau discours, voici le contenu de mon fichier myrepo.spec qui me permet de générer un rpm pour ajouter MyRepo !

Name:           myrepo-repo-el5
Version:        1.0
Release:        0.0%{?dist}
Summary:        This package is the repository of MyRepo

Group:          Applications/ProjectManagement
License:        GPL
URL:            http://www.myrepo.org/linux/
Vendor:        Slobberbone
Source0:        %{name}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch:    noarch

%description
Repository RHEL / Centos for MyRepo

%prep

%setup -q

%install
rm -rf %{buildroot}
mkdir -p %{buildroot}%{_sysconfdir}/yum.repos.d/
mkdir -p %{buildroot}%{_sysconfdir}/pki/rpm-gpg/
install -c -m 755  optitime.repo %{buildroot}%{_sysconfdir}/yum.repos.d/
install -c -m 755 RPM-GPG-KEY-Opti-TimeSA.gpg %{buildroot}%{_sysconfdir}/pki/rpm-gpg/

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%{_sysconfdir}/yum.repos.d/optitime.repo
%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-Opti-TimeSA.gpg

%changelog
* Wed  Aug 17 2011 MyRepo <slobberbone@myrepo.org> 1.0-1.1
- initial release

Bien-sur, il faudra en faire un pour Fedora 14, en remplaçant el5 par fc ;)
Il ne faut pas oublier que lorsque vous mettez vos RPM sur le dépôt que ceux-ci soient signés grâce à la commande :
rpmsign --addsign monrpm.rpm

Conclusion

Vous voilà fin prêt ! La technique n'est peut-être pas orthodoxe, mais ça a le mérite de fonctionner ! Comme d'habitude, je vous invite à me laisser des commentaires afin de l'améliorer !

Nouveau serveur

Remi Collet

L'ancien serveur hébergeant mes différents sites avait 3 ans (une Dedibox V1). Il vient d'être remplacé par une machine plus récente (une Dedibox Classic).

Ancienne machine : CPU : VIA Esther processor 2000MHz Mémoire : 1Gio Disque : 160 Gio Système : Red Hat Enterprise Linux Server release 5.6 (Tikanga) - 32bits Nouvelle machine : CPU :Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz Mémoire : 3Gio Disque : 500 Gio en Raid 1 Système : Red Hat Enterprise Linux Server release 5.6 (Tikanga) -... Lire Nouveau serveur

Accès Premium

Remi Collet

A compter d'aujourd'hui, la procédure d'accès au dépôt remi change. Pour les versions actives de fedora (13 et 14), et d'enterprise linux (6), le dépôt reste accessible librement et gratuitement, mais avec un décalage de 14 jours par rapport aux utilisateurs disposant d'un accès Premium. Pour les anciennes versions, le dépôt est fermé. Les... Lire Accès Premium