Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2471 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Fedora Core]Comment creer un rpm ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Fedora Core]Comment creer un rpm ?

n°669369
weed
Posté le 28-04-2005 à 13:20:48  profilanswer
 

On m' a conseillé d'utilisé la commande :
rpmbuild -tb nondetasource.tar.gz,le tout à copier dans usr/src/redhat/RPM/SOURCE avant de tapper la commande
 
 
mais je ne vois pas à quel moment ou l'on peut decider ou l'on copie les fichiers.
 
 
j'aimerais  

- créer le repertoire /etc/www/html/script
- copier le fichier add dans /etc/www/html/script (création du repertoire sc
- copier smb.conf dans /etc/samba (écrasé le fichier avec mon fichier de conf)


 
soit en fait :  

mkdir /etc/www/html/script &&
cp add /etc/www/html/script/ &&
cp smb.conf /etc/samba/


 
 
Qu'est ce qu'il faut je fasse ?
 
Ma solution : lorsque je lance l'installation de mon  rpm (rpm -ivh monrpm.rpm), cela me lance un script bash qui me créé le repertoire script et qui me copie les 2 fichiers, mais comment faire ?
 
Qu'est ce que vous en pensez ?
Comment faire ?  
sinon auriez vous une autre solution ?


Message édité par weed le 28-04-2005 à 15:02:01
mood
Publicité
Posté le 28-04-2005 à 13:20:48  profilanswer
 

n°669372
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 28-04-2005 à 13:23:25  profilanswer
 

titre à la con. On ne sait pas ce que tu veux faire, quel est le programme concerné (ça touche à samba mais après ?). A revoir donc.


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°669425
weed
Posté le 28-04-2005 à 14:27:23  profilanswer
 

Désolé, surtout que je suis partisant pour des titres explicites ...
 
Je pense que maintenant c'est bon ...
 
je parle pas de samba meme, ca peut etre n'importe quel fichier, mais dans mon cas un des fichiers de conf de samba

n°669442
Mjules
Modérateur
Parle dans le vide
Posté le 28-04-2005 à 14:34:07  profilanswer
 

un rpm c'est 2 choses, un tarball des fichiers ou des sources + un fichier de description du paquet (nom, version, dépendances, fichiers, choses à faire avant et après installation, changelog etc) avec l'estension .spec
 
ta commande (man rpm) permet de créer un paquet RPM binaire à partir des sources et d'un fichier spec situé dans le tarball.
 
je ne sais pas ce que tu veux modifier mais ton paquet binaire va aller se placer dans /usr/src/redhat/RPM/RPMS/i586  (ou une autre archi si tu compiles pour une autre). Pour les fichiers qui seront dans le RPM, ils se placeront selon les options passées au ./configure dans le spec.


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°669455
Mjules
Modérateur
Parle dans le vide
Posté le 28-04-2005 à 14:41:55  profilanswer
 

j'allais oublier, 2 tutos pour apprendre à faire des RPMS :
http://www.rpm.org/RPM-HOWTO/  et  http://qa.mandrakesoft.com/twiki/b [...] n/RpmHowTo
 
le second est beaucoup plus complet et actuel que le premier mais il y a quelques points qui sont un peu spécifiques Mandriva et pourraient ne pas convenir à d'autres distribtuions.


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°669504
weed
Posté le 28-04-2005 à 15:01:32  profilanswer
 

et bien dans mon cas, ca sera un fichier tar contenant mes fichiers add, smb.conf et non pas des sources avec le fichier de description  
 

Citation :

je ne sais pas ce que tu veux modifier mais ton paquet binaire va aller se placer dans /usr/src/redhat/RPM/RPMS/i586  (ou une autre archi si tu compiles pour une autre). Pour les fichiers qui seront dans le RPM, ils se placeront selon les options passées au ./configure dans le spec.


je ne veux pas compiler, je veux juste copier 2-3 fichiers dans le systeme. Je sais que c'est con de faire un rpm juste pour ca, mais on m'a demandé de le faire.
 
en faisant un rpm -ivh mon_install.rpm, j'aimerais que cela me copie les fichiers en executant cette commande par exemple :
mkdir /etc/www/html/script &&
cp add /etc/www/html/script/ &&
cp smb.conf /etc/samba/

n°669519
Mjules
Modérateur
Parle dans le vide
Posté le 28-04-2005 à 15:07:06  profilanswer
 

c'est pas forcément stupide de faire ça, ça permet d'utiliser un système d'installation automatique par ex.
 
pour moi, le plus simple que je vois c'est de faire un rpm qui contient juste tes fichiers, tu les copies dans un emplacement libre sur ton système et ensuite, tu utilises un script de post installation pour les mettre à leur place finale.
 
je te conseille d'ailleurs d'utiliser la macro %doc pour faire ça
 
ce qui devrait donner un .spec de ce type :


Summary: fichiers de conf
Name: fileconfig
Version: 0.1
Release: 1
Packager: Mjules <mjules@free.fr>
License: GPL
Group: system
Source0: %{name}-%{version}.tar.bz2
 
 
BuildArch: noarch
 
Requires: bash
 
BuildRoot:  %{_tmppath}/%{name}-buildroot
 
%description
stocke et copie les fichiers de conf
 
 
   
%prep
%setup
   
%build
   
%install
 
%clean
rm -rf $RPM_BUILD_ROOT
 
%files
%defattr(-,root,root,0755)
%doc fichier1 fichier2 config/*
 
%post
cp fichier /emplacement_final
 
%changelog
* Tue Apr 12 2005 Mjules <mjules@free.fr> 0.1-1
- new version


 
c'est pas génial mais ça devrait marcher


Message édité par Mjules le 28-04-2005 à 15:13:28

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°669540
Mjules
Modérateur
Parle dans le vide
Posté le 28-04-2005 à 15:27:53  profilanswer
 

une fois corrigé, ça donne ça (c'est toujours pas parfait, mais c'est l'idée et ça marche) :
 

Summary: Fichiers de conf
Name: smbconf
Version: 0.1
Release: 1
Packager: Mjules <mjules@free.fr>
License: GPL
Group: System/Servers
Source0: %{name}-%{version}.tar.bz2
BuildArch: noarch
 
Requires: bash
 
BuildRoot:  %{_tmppath}/%{name}-buildroot
 
%description
stocke et copie les fichiers de conf
 
%prep
%setup
 
%clean
rm -rf $RPM_BUILD_ROOT
 
%files
%defattr(-,root,root,0755)
%doc file1 file2 doc/*
 
%post
cp %{_docdir}/%{name}-%{version}/file1 /home/jules/tmp/file1
 
%changelog
* Tue Apr 12 2005 Mjules <mjules@free.fr> 0.1-1
- new version


Message édité par Mjules le 28-04-2005 à 15:28:08

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°669572
weed
Posté le 28-04-2005 à 16:07:23  profilanswer
 

oki, donc dans mon cas, ca serait  
 
je copie le fichier add et smb.conf dans un repertoire se nommant smbconf-0.1
 
puis je compresse le repertoire  
 

tar cjvf smbconf-0.1.tar.bz2 ./smbconf-0.1


 
 
pour ce que est de %doc, non ?

Citation :

%doc est utiliser pour marquer la documentation dans le paquetage source que vous voulez installer dans un paquetage binaire. Les documents seront installés dans /usr/doc/$NAME-$VERSION-$RELEASE. Vous pouvez lister plusieurs documents sur la ligne de commande avec cette macro, ou les lister séparément en utilisant une macro pour chaque


source : http://www.freenix.fr/unix/linux/H [...] WTO-6.html
 
je ne comprends pas tes 2 commande :  

%defattr(-,root,root,0755)
%doc file1 file2 doc/*


 
 
oki pour %post
donc dans mon cas, ca sera :
 

%post
mkdir /etc/www/html/script/
cp %{_docdir}/%{name}-%{version}/add /etc/www/html/script/
cp %{_docdir}/%{name}-%{version}/smb.conf /etc/samba/


Message édité par weed le 28-04-2005 à 16:07:57
n°669577
Mjules
Modérateur
Parle dans le vide
Posté le 28-04-2005 à 16:16:56  profilanswer
 

pour le %doc, ça permet de copier les fichiers sans avoir besoin de mettre un script d'install dans le tar.bz2 ; c'est un détournement de la fonction initiale.
 
pour le defattr, c'est pour donner les permissions/proprio qui vont bien, là, ça doit pas être bon pour les permissions.


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
mood
Publicité
Posté le 28-04-2005 à 16:16:56  profilanswer
 

n°669589
weed
Posté le 28-04-2005 à 16:35:25  profilanswer
 

en fait tu fais avec la macro %doc, dans le repertoire temporaire : doc
et apres a partir de ce reprtoire tu fais la copie dans la macro %post
 
 
oki je comprends, donc pour moi  
 

%defattr(-,root,root,0755)
%doc add smb.conf doc/*


 
et ensuite :

%post
mkdir /etc/www/html/script/
cp %{_docdir}/%{name}-%{version}/add /etc/www/html/script/
cp %{_docdir}/%{name}-%{version}/smb.conf /etc/samba/


 
Est ce que je peux faire un mkdir dans le %post ?

n°669592
Mjules
Modérateur
Parle dans le vide
Posté le 28-04-2005 à 16:37:28  profilanswer
 

surement pour le mkdir
 
pour le doc/* c'est jsute un exemple pour montrer qu'on peut inclure directement un dossier sans énumérer tout les fichiers ;)
 
%doc fait ça en fait :
copie tout les arguments de la ligne de commande dans /usr/share/doc/nom_paquet/
 
et ici les arguments sont :
file1 file2 et ./doc/*
 
donc si t'as pas de dossier doc dans ton archive, il faut l'enlever


Message édité par Mjules le 28-04-2005 à 16:38:38

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°669602
weed
Posté le 28-04-2005 à 16:53:40  profilanswer
 

oki,  
 
donc ce que je fais je mets mes fichiers "add", "smb.conf" mais aussi le fichier spec dans un .tar.bz2
 
et apres je lance la commande ?
 
 

rpmbuild -tb nondetasource.tar.bz2


 
pour creer le rpm
 
Quel nom de fichier de spec je dois mettre ? n'importe quel nom ?  
par exemple : mon_fichier.spec

n°669604
Mjules
Modérateur
Parle dans le vide
Posté le 28-04-2005 à 17:05:14  profilanswer
 

perso, je préfère dissocier le spec et le tarball
 
nomme ton spec comme le nom de ton rpm (smbconf dans mon exemple) et mets le dans /usr/src/redhat/RPM/SPECS
 
mets le tarball avec les fichiers dans /usr/src/redhat/RPM/SOURCES
 
va dans /usr/src/redhat/RPM/SPECS et tapes rpm -bb smbconf.spec
 
si il n'y a pas d'erreur, ton paquet se trouvera dans /usr/src/redhat/RPM/RPMS/noarch


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°669650
weed
Posté le 28-04-2005 à 18:42:29  profilanswer
 

j'ai un message d'erreur, commande inconnu ?
Qu'est cela signifie ?
D'apres toi ou ai je fais une erreur ?
 
[root@weed SPECS]# rpm -bb smbconf.spec
-bb: option iconnue
 
 
Pour info, je suis sous fedora core2, et je n'avais pas les sous repertoires redhat dans src. Je l'ai donc créé.
 

n°669651
Mjules
Modérateur
Parle dans le vide
Posté le 28-04-2005 à 18:44:18  profilanswer
 

tu as bien installé les paquets rpm-build et spec-helper ?


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°669672
weed
Posté le 28-04-2005 à 19:41:04  profilanswer
 

Mjules a écrit :

tu as bien installé les paquets rpm-build et spec-helper ?


ce paquage n'existe pas ...

n°669674
weed
Posté le 28-04-2005 à 19:41:30  profilanswer
 

[root@localhost ~]# yum install spec-helper
Setting up Install Process
Setting up Repo:  base
repomd.xml                100% |=========================| 1.1 kB    00:00
Setting up Repo:  updates-released
repomd.xml                100% |=========================|  951 B    00:00
Reading repository metadata in from local files
base      : ################################################## 2622/2622
primary.xml.gz            100% |=========================|  96 kB    00:00
http://sunsite.mff.cuni.cz/pub/fed [...] ry.xml.gz: [Errno 4] Socket Error: (104, 'Connexion r\xc3\xa9-initialis\xc3\xa9e par le correspondant')
Trying other mirror.
primary.xml.gz            100% |=========================| 339 kB    00:02
MD Read   : ################################################## 856/856
updates-re: ################################################## 856/856
No Match for argument spec-helper
Nothing to do
[root@localhost ~]#

n°669679
Mjules
Modérateur
Parle dans le vide
Posté le 28-04-2005 à 19:45:19  profilanswer
 

ah oui, effectivement, c'est un paquet mandrake


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°669846
weed
Posté le 29-04-2005 à 09:46:40  profilanswer
 

ahh tout hasard, saurait tu comment cela se passe pour la desintallation (la suppression des fichiers) ?
 
si tu sais pas, pas grave.

n°669848
weed
Posté le 29-04-2005 à 09:47:46  profilanswer
 

weed a écrit :

ahh tout hasard, saurait tu comment cela se passe pour la desintallation du rpm (la suppression des fichiers) ?
Pour l'instant rien ne se passe mais ce n'est pas bien grave si tu ne sais pas
 


n°670192
Mjules
Modérateur
Parle dans le vide
Posté le 29-04-2005 à 17:42:52  profilanswer
 

il ne supprimera que les fichiers référencé dans la section %files
 
pour supprimer les fichiers (ou faire quoique ce soit d'autre) qui ont été copiés dans les dossiers /etc, il faut faire un script de pré ou post désinstallation (%preun ou %postun)


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°712413
Enzo974
Posté le 28-07-2005 à 11:13:56  profilanswer
 

Moi aussi je serais intéréssé par la création de RPM pour mon Fedora Core 4 mais je ne trouve pas de tutorial assez explicite pour bien comprendre tout ce qu'il faut faire. Conaissez vous un bon tutorial en français car je suis définitivement pas doué en Anglais !!!
 
Sinon mon but serais de faire un rpm qui si possible installerai mplayer avec skin, police et codecs bien sûr !!!

n°712447
aka Shiva
Posté le 28-07-2005 à 12:54:36  profilanswer
 

Tu trouveras ce qu'il faut ici, peut-être:
http://faq.fcolc.eu.org/administration/fabriquerrpm

n°712641
Enzo974
Posté le 28-07-2005 à 19:49:01  profilanswer
 

Merci pour le site !!! je vais le lire traquillement...

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Fedora Core]Comment creer un rpm ?

 

Sujets relatifs
pb raid fedoracreer son serveur + heberger son propre site
Accents (console, partages FAT,...) Fedora core 2Créer un raccourcis "run" avec gnome
Probleme carte son realtek alc880 (chipset intel) sur fedoraComment fait on pour creer un 2ème home sous samba
Personnaliser KDE : Comment créer un splash screen ? un thème KDM ?pb fedora
[RESOLU] Fedora 3 ndiswrapper n'a pas créé wlan0+ moyen de créer une disquette de boot sous fedora core 2!!!
Plus de sujets relatifs à : [Fedora Core]Comment creer un rpm ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR