Archives pour la catégorie Système

Créer un paquet pour les ppa

Bonjour à tous …

Aujourd’hui rapide tutoriel pour les ubunteros, rapidement, ppa ça signifie Personnal Package Archive, vous avez du sûrement le voir plus d’une fois lors que vous lisez la doc de ubuntu-fr. C’est assez souvent les dépôts de personnes qui propose soit des versions beta de paquet existant déjà dans les dépots officiels, ou bien, ce sont des paquets qui n’existe pas dans les dépots ^^…

Alors pourquoi est-ce que je fait un tuto sur les ppa ? Tous simplement, parce que depuis quelque temps je m’amuse à faire des paquets …et le gros ennuis lorsque l’on fait ses paquets, c’est qu’a un moment, il faut les compiler !! et sur mon ordi portable … ça chauffe pas mal, alors j’utilise les ppa pour compiler mes paquets :).

Alors bon voila … comment crée-t-on un paquet pour l’uploader sur son PPA ? (un fichier .changes plutôt, qui fait le lien entre le paquet et ses informations)

C’est tous simple :

  1. Faite un dossier nommé Package où vous voulez.
  2. Créez un dossier du nom de votre logiciel à empaqueter dans ce dossier Package.
  3. Dans ce nouveau dossier :
    • (a)Récupérez l’archive et décompressé la dans un dossier nommé : nomlogiciel-x.x.x
    • (b)Récupérer un dépot SVN/bzr/Mercurial dans un dossier nommé : nomlogiciel-x.x.x
  4. Allez dans le dossier et faites un : dh_make -e mon.adresse@mail.fr (l’adresse mail est importante, elle va vous permettre de signer vos paquets). et choisissez l’option s.
  5. Allez dans le dossier debian qui a été crée dans le dossier nomlogiciel-x.x.x
  6. Reportez-vous sur la doc d’ubuntu pour modifier les fichiers copyright, rules et control
  7. Sortez du dossier debian et faite un debuild -k0x123456789 -S -sa –lintian-opts -i (123456789 est le numéro de la clé publique de l’adresse mail utilisé en 4. Si vous n’avez pas de clé, faite un gpg –gen-key dans votre terminal favoris et refaite l’opération 7).
  8. Allez dans le dossier parent (cd .. :)) et là il vous faut installer le logiciel dput qui vous permettra d’envoyer vos fichiers sur le serveur de launchpad avec la syntaxe : dput my-ppa monfichier_x.x.x.changes

Si vous avez les yeux en face des trous, vous remarquerez que my-ppa est en gras … c’est parce qu’il faut faire une petit config spécial, il vous faut créez un fichier .dput.cf dans votre home (cd ~) avec un contenu similaire à celui-ci :

[my-ppa]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~login/ubuntu/
login = anonymous
allow_unsigned_uploads = 0

en changeant bien sûr login par votre login, attention … il vous faut avoir un compte Ubuntero pour uploader des paquets (nécessite de signer un code de conduite avec la clé gpg générer qui a signé les paquets, c’est ce qui permet d’identifier assurément l’identité de la personne qui upload les paquets).

Et voilà … c’est uploader mais c’est pas encore compiler, pour vos premier paquet, vous serez rejeté assez souvent (oubli de petit truc, bug à la compil, à la création du paquet ,…).

Réduire la consommation de bande passante (Apache mod_deflate)

Rapide mémo sur la configuration du mod_deflate de apache qui permet de réduite pas mal la consommation de bande passante en compressant les données à la volée avec gzip avant de l’envoyer au client :

Tous d’abord, on charge le module dans la config :

Debian : a2enmod deflate

Ubuntu : sudo a2enmod deflate

Ensuite :

on ouvre le fichier apache2.conf ou httpd.conf, et l’on met l’une de ces lignes :

Si l’on veut seulement compresser les fichiers html, xml, et texte plein …

AddOutputFilterByType DEFLATE text/html text/plain text/xml

ou si l’on veut tous compresser par défaut

SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ \
no-gzip dont-vary
SetEnvIfNoCase Request_URI \
\.(?:exe|t?gz|zip|bz2|sit|rar)$ \
no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary

ou pour compresser suivant le navigateur :

BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

Pour avoir des logs :

DeflateFilterNote Input input_info
DeflateFilterNote Output output_info
DeflateFilterNote Ratio ratio_info
LogFormat ‘ »%r » %{output_info}n/%{input_info}n (%{ratio_info}n%%)’ deflate
CustomLog /var/log/apache2/deflate_log deflate