• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst]Wie einfaches RPM bauen

rolle

Guru
Liebe Leute!

Google spuckt mir leider aufgrund unscharfer Suchbegriffe nichts Verwertbares aus. Ich habe hier einen LaTeX-Style, den ich der Einfachheit halber in ein RPM packen möchte, damit die Dateien sauber in der RPM-Datenbank stehen und ich mir spätere Frickeleien spare. Der Style besteht aus drei Verzeichnissen mit Inhalt unterhalb des Texpfades. Zum Installieren genügt das Kopieren der Verzeichnisse gefolgt von texhash.
Nun Finde ich aber nur Anleitungen, wie ich aus einer Source ein RPM baue. Alles was ich möchte ist aber, die Verzeichnisse samt Inhalt einzufügen und texhash auszuführen. Kompiliert muß da nichts werden.
Kann mir bitte jemand einen Schubs in die richtige Richtung geben, damit ich da eine passende Anleitung finde?
 

spoensche

Moderator
Teammitglied
checkinstall installieren. das kannst du mit yast machen und dann folgendes howto lesen:http://linuxwiki.de/CheckInstall
 

oc2pus

Ultimate Guru
Name: myRPM
Version: 0.1
Release: 0.rolle.1
Summary: blah blah blah
Group: Development/Other
URL: http://rolle.zuhause.de
License: GPL
Source: %{name}-%{version}.tar.gz
BuildArch: noarch
Requires: ???? TODO ???
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root
Packager: Rolle

%description
a nice description ....

Authors:
Rolle

%prep
%setup -n %{name}-%{version}

%install
# hier das Zielverzeichnis erstellen
# im Beispiel ist es /usr/share/<name des paketes>
%__install -dm 755 %{buildroot}%{_datadir}/%{name}

# alle Dateien kopieren
%__install -m 644 file1 %{buildroot}%{_datadir}/%{name}
%__install -m 644 file2 %{buildroot}%{_datadir}/%{name}
...
%__install -m 644 filen %{buildroot}%{_datadir}/%{name}

%clean
[ -d %{buildroot} -a "%{buildroot}" != "" ] && rm -rf %{buildroot}

%files
%defattr(-,root,root)
#%doc "falls es was gibt ..."
%{_datadir}/%{name}

%changelog
* Tue Mar 18 2008 rolle 0.1
- first packaged version

für Korrekte Gruppen siehe hier:
http://en.opensuse.org/SUSE_Package_Conventions

:)
 
OP
R

rolle

Guru
Uff, das ging ja wieder mal schnell. Dann werde ich mich da mal reinarbeiten, dankeschön.
 
OP
R

rolle

Guru
'Einfach' ist gut. :shock: Ich kämpfe noch etwas mit der Logik des Ganzen. Aber ich krieg das schon hin. :wink:
 
OP
R

rolle

Guru
So, hurra! Ich habe ein RPM gebaut. :D Für Verbesserungsvorschläge bin ich offen:
Code:
Name: jurabib
Version: 0.61beta
Release: 1.0
Summary: Jurabib
Group: Productivity/Publishing/Tex/Utilities
URL: http://www.jurabib.org
License: GPL
Source: jurabib-0.61beta.tar.gz
BuildArch: noarch
Buildroot: /tmp/%{name}-%{version}
Packager: Rolle

%description
JuraBib Style for LaTeX, ermöglicht die Erstellung standardkonformer Fußnoten und Literaturverzeichnisse
%prep
%setup -n %{name}-%{version}
%build
%install
install -dm 755 %{buildroot}/usr/share/texmf/latex/%{name}
install -m 644 dajbbib.ldf %{buildroot}/usr/share/texmf/latex/%{name}/dajbbib.ldf
install -m 644 dejbbib.ldf %{buildroot}/usr/share/texmf/latex/%{name}/dejbbib.ldf
install -m 644 dujbbib.ldf %{buildroot}/usr/share/texmf/latex/%{name}/dujbbib.ldf
install -m 644 enjbbib.ldf %{buildroot}/usr/share/texmf/latex/%{name}/enjbbib.ldf
install -m 644 fijbbib.ldf %{buildroot}/usr/share/texmf/latex/%{name}/fijbbib.ldf
install -m 644 frjbbib.ldf %{buildroot}/usr/share/texmf/latex/%{name}/frjbbib.ldf
install -m 644 itjbbib.ldf %{buildroot}/usr/share/texmf/latex/%{name}/itjbbib.ldf
install -m 644 jurabib.sty %{buildroot}/usr/share/texmf/latex/%{name}/jurabib.sty
install -m 644 nojbbib.ldf %{buildroot}/usr/share/texmf/latex/%{name}/nojbbib.ldf
install -m 644 ptjbbib.ldf %{buildroot}/usr/share/texmf/latex/%{name}/ptjbbib.ldf
install -m 644 spjbbib.ldf %{buildroot}/usr/share/texmf/latex/%{name}/spjbbib.ldf
install -m 644 svjbbib.ldf %{buildroot}/usr/share/texmf/latex/%{name}/svjbbib.ldf

install -dm 755 %{buildroot}/usr/share/texmf/bibtex/bib/%{name}
install -m 644 book.bib %{buildroot}/usr/share/texmf/bibtex/bib/%{name}/book.bib
install -m 644 comment.bib %{buildroot}/usr/share/texmf/bibtex/bib/%{name}/comment.bib
install -m 644 jbtest.bib %{buildroot}/usr/share/texmf/bibtex/bib/%{name}/jbtest.bib
install -m 644 jbtesthu.bib %{buildroot}/usr/share/texmf/bibtex/bib/%{name}/jbtesthu.bib

install -dm 755 %{buildroot}/usr/share/texmf/bibtex/bst/%{name}
install -m 644 jmhra.bst %{buildroot}/usr/share/texmf/bibtex/bst/%{name}/jmhra.bst
install -m 644 jurabib.bst %{buildroot}/usr/share/texmf/bibtex/bst/%{name}/jurabib.bst
install -m 644 jurunsrt.bst %{buildroot}/usr/share/texmf/bibtex/bst/%{name}/jurunsrt.bst
install -m 644 jox.bst %{buildroot}/usr/share/texmf/bibtex/bst/%{name}/jox.bst
install -m 644 jureco.bst %{buildroot}/usr/share/texmf/bibtex/bst/%{name}/jureco.bst

%post
texhash

%clean
[ -d %{buildroot} -a "%{buildroot}" != "" ] && rm -rf %{buildroot}

%files
/usr/share/texmf/bibtex/bib/jurabib/book.bib
/usr/share/texmf/bibtex/bib/jurabib/comment.bib
/usr/share/texmf/bibtex/bib/jurabib/jbtest.bib
/usr/share/texmf/bibtex/bib/jurabib/jbtesthu.bib
/usr/share/texmf/bibtex/bst/jurabib/jmhra.bst
/usr/share/texmf/bibtex/bst/jurabib/jox.bst
/usr/share/texmf/bibtex/bst/jurabib/jurabib.bst
/usr/share/texmf/bibtex/bst/jurabib/jureco.bst
/usr/share/texmf/bibtex/bst/jurabib/jurunsrt.bst
/usr/share/texmf/latex/jurabib/dajbbib.ldf
/usr/share/texmf/latex/jurabib/dejbbib.ldf
/usr/share/texmf/latex/jurabib/dujbbib.ldf
/usr/share/texmf/latex/jurabib/enjbbib.ldf
/usr/share/texmf/latex/jurabib/fijbbib.ldf
/usr/share/texmf/latex/jurabib/frjbbib.ldf
/usr/share/texmf/latex/jurabib/itjbbib.ldf
/usr/share/texmf/latex/jurabib/jurabib.sty
/usr/share/texmf/latex/jurabib/nojbbib.ldf
/usr/share/texmf/latex/jurabib/ptjbbib.ldf
/usr/share/texmf/latex/jurabib/spjbbib.ldf
/usr/share/texmf/latex/jurabib/svjbbib.ldf

%defattr(-,root,root)
#%doc "falls es was gibt ..."
#%{_datadir}/%{name}

%changelog
* Tue Mar 18 2008 rolle 1.0
- first packaged version
 

oc2pus

Ultimate Guru
%{buildroot}/usr/share/
ersetzen durch
%{buildroot}%{_datadir}

Buildroot: /tmp/%{name}-%{version}
ersetzen durch
BuildRoot: %{_tmppath}/%{name}-%{version}-build

und ganz am Anfang ein:
%define _prefix /usr

und wenn du texhash im %post brauchst, sollte das als Requires: definiert sein... sonst gibt es einen %scriptlet error und das paket lässt sich nicht installieren.
Requires: texlive

Ich weiss nicht ob texhash auch beim deinstallieren gebraucht wird ?
ansonsten müsste die %post Anweisung geringfügig modifiziert werden, das es nur beim installieren und nicht beim deinstallieren ausgeführt wird.

und hier noch ein guter Link zur "RPM-Bibel"
http://docs.fedoraproject.org/drafts/rpm-guide-en/

Kapitel 9
 
OP
R

rolle

Guru
Hm, %{datadir} sollte ja wohl eigentlich eine aufzulösende Variable sein, wenn ich in den installZeilen jetzt /usr/bin dadurch ersetze, dann werden die Dateien nach /var/tmp/jurabib-0.61beta%{datadir}/texmf/.... kopiert und fehlen dann natürlich zum RPM erstellen.

edit: Ich habe den Fehler selbst gefunden, dor datadir muß noch ein_. Jetzt klappt das alles, wie es soll. Vielen lieben Dank.
 
Oben