Einführung —
* “Rpmbuild” Werkzeug wird verwendet, um beide zu bauen …
1) ~ Binary-Paket verwendet, um die Software zu installieren und Skripten unterstützt. Es enthält die Dateien, die die Anwendung umfassen, zusammen mit zusätzlichen Informationen, die zu installieren und zu löschen.
2) ~ Quellcode-Paket enthält die Original-komprimierten tar-Datei des Quellcodes, Patches und File-Spezifikation.
* Was ist RPM und RPM-Paket-Manager?
Die RPM Package Manager (RPM) ist ein leistungsfähiges Befehlszeilen-Paket-Management-System, das Installieren, Deinstallieren, Überprüfung, Abfrage und Aktualisierung von Softwarepaketen.
RPM-Paket besteht aus einem Archiv von Dateien und Meta-Daten, die zur Installation und Archiv-Dateien zu löschen. Die Meta-Daten umfassen Hilfsskripte, Dateiattribute und beschreibende Informationen über das Paket.
* So erstellen Sie RPM-Paket müssen Sie drei Dinge angeben ~
1) Quelle der Anwendung – in jedem Fall, sollten Sie nicht ändern, die Quellen in der Paket-Erstellung verwendet.
2) Patches – RPM gibt Ihnen die Möglichkeit, automatisch Patches zu ihnen. Der Patch behebt ein Problem, speziell für das Zielsystem. Dies könnte auch die Veränderung Makefiles um den Antrag in die entsprechenden Verzeichnisse der Lösung von Cross-Plattform installieren Konflikte. Patches erstellen, die Umwelt für die ordnungsgemäße Erstellung erforderlich.
3) Specification File – Die Spezifikation Datei befindet sich im Herzen von RPM-Paket Bauprozess. Es enthält Informationen, die von RPM benötigt, um das Paket zu erstellen, sowie Instruktionen, RPM, wie sie zu bauen. Die Spezifikation Datei bestimmt auch genau, welche Dateien ein Teil des Pakets sind, und wo sie installiert werden.
** Spezifikation Datei ~ ist um 8 Abschnitte unterteilt, wie unten gezeigt
a) Präambel ~ enthält Informationen, die angezeigt werden, wenn Anwender Informationen über das Paket anfordert. Dies würde eine Beschreibung der Funktion des Pakets gehören die Version der Software etc.
b) Herstellung ~ wo die eigentliche Arbeit des Aufbaus eines Pakets gestartet. Wie der Name schon sagt, ist dieser Abschnitt, wo die notwendigen Vorbereitungen vor dem eigentlichen Aufbau der Software vorgenommen werden. In der Regel, wenn alles muss geschehen, bevor die Quellen für den Aufbau der Software sein, muss es in der Vorbereitung Abschnitt passieren. Der Inhalt dieses Abschnitts sind eine normale Shell-Skript. Jedoch nicht RPM zwei Makros bieten das Leben leichter machen. Ein Makro kann eine komprimierte tar-Datei entpacken und in das Quell-Verzeichnis cd. Die anderen Makros gilt leicht Patches auf die entpackte Quellen.
c) Build ~ Dieser Abschnitt besteht aus einer Shell-Skript. Es wird verwendet, um Befehle auszuführen, was sind erforderlich, um tatsächlich den Quellen kompilieren wie Single-make-Befehl, oder komplizierter sein, wenn der Build-Prozess erfordert. Es gibt keine Makros in diesem Abschnitt.
d) Installieren ~ Dieser Abschnitt beinhaltet auch ein Shell-Skript, die Installation Abschnitt wird verwendet, um die Befehle benötigt, um tatsächlich die Installation der Software ausführen.
e) Installieren und Deinstallieren von Scripts ~ Es besteht aus Skripten, die ausgeführt werden, auf dem System des Benutzers, wenn das Paket tatsächlich installiert oder entfernt. RPM kann ein Script ausführen pre / post Installation / Deinstallation des Pakets.
f) Stellen Sie sicher, Script ~ Skript, das auf dem System des Benutzers ausgeführt wird. Es wird ausgeführt, wenn das RPM-Paket ist die ordnungsgemäße Installation überprüft.
g) Abschnitt Sauberkeit ~ Skript, das Dinge sauber nach dem aufbauen können. Dieses Skript wird nur selten verwendet, da RPM in der Regel einen guten Job gemacht hat Clean-up in den meisten Build-Umgebungen.
h) Dateiliste ~ besteht aus einer Liste von Dateien, die das Paket enthalten. Darüber hinaus können eine Reihe von Makros verwendet werden, um Dateiattribute Kontrolle bei der Installation, sowie zu bezeichnen, welche Dateien Dokumentation sind, und die Konfigurations-Informationen enthalten. Die Dateiliste ist sehr wichtig.
*** RPM Voraussetzung für die Build-Umgebung ~
A] U / min erfordert eine Reihe von Verzeichnissen, die Ausführung der zu bauen. Während die Standorte der Verzeichnisse und Namen können geändert werden. Standard-Layout wird unten gezeigt —
root @ arunsb: ~ # ls-l / usr / src / redhat /
drwxr-xr-x 2 root root 4096 25. August 2007 SOURCES => Enthält die Original-Quellen, Patches und Icon-Dateien
drwxr-xr-x 2 root root 4096 25. August 2007 SPECS => Enthält die Spezifikations-Dateien
drwxr-xr-x 2 root root 4096 25. August 2007 BUILD => Verzeichnis, in dem die Quellen entpackt werden, und Software wird gebaut
drwxr-xr-x 8 root root 4096 28. Mai 2008 RPMS => Enthält die Binär-Paket Dateien, die von den Build-Prozess erstellt
drwxr-xr-x 2 root root 4096 25. August 2007 SRPMS => Quellcode-Paket enthält die Dateien, die von den Build-Prozess erstellt
root @ arunsb: ~ #
B] Need zu exportieren einige globale Variablen durch RPM verwendet —
root @ arunsb: ~ # export RPM_BUILD_DIR = / usr / src / redhat / BUILD /
root @ arunsb: ~ # export RPM_SOURCE_DIR = / usr / src / redhat / SOURCES /
Schritt 1] erstellen Spezifikation (spec) Datei ~
root @ arunsb: ~ # head-n 50 / usr / src / redhat / SPECS / openlsm.spec
# Authority: Arun Bagul
# RPM_BUILD_DIR / usr / src / redhat / BUILD /
# RPM_SOURCE_DIR / usr / src / redhat / SOURCES /
% define MY_PREFIX / usr / local / openlsm /
# # Präambel Section –
Name: openlsm
Version: 0.99
Hersteller: IndianGNU.org & openlsm
Release: r45
Group: System Environment / Daemons
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Zusammenfassung: openlsm Admin-Server
Lizenz: GPL
% description
openlsm Admin-Server ist kostenlos und Open-Source-Web-basiertes Control Panel für Linux, Unix-Systemen.
# # Section-Vorbereitung
% prep
rm-rf $ (RPM_BUILD_DIR) / openlsm-0.99-R45 /
tar xvfz RPM_SOURCE_DIR $ () / openlsm-0,99-r45.tar.gz-C $ (RPM_BUILD_DIR)
# # Build-Abschnitt
% build
cd ./openlsm-0.99-r45 /
. / configure-prefix = / usr / local / openlsm-with-mysql = / usr / bin / mysql_config-enable-interne-pcre-mit-geoip = / usr-with-ldap = / usr-enable-trace
machen
# # Install-Abschnitt
% install
cd ./openlsm-0.99-r45 /
make install
# # Files-Sektion
% files
/ usr / local / openlsm
/ usr / local / openlsm / etc / openlsm / openlsm.conf
/ usr / local / openlsm / etc / openlsm / openlsm.conf.perf_sample
/ usr / local / openlsm / etc / openlsm / ssl /
/ usr / local / openlsm / bin / openlsm-config
….
… ..
… .. Liste der Dateien, die von pkg installiert
root @ arunsb: ~ #
* Wie erstellen Sie die Datei-Liste?
Erstellen der Datei-Liste ist manuell. Was ich tat, ist nahm ich die Datei-Liste aus meiner Anleitung installiert Präfix Verzeichnis mit Befehl finden wie unten gezeigt …
root @ arunsb: ~ # find / usr / local / openlsm /-type f-oder-Typ D
Schritt 2] Ab dem Build ~
root @ arunsb: ~ # cd / usr / src / redhat / SPECS
root @ arunsb: / usr / src / redhat / SPECS # ls-l openlsm.spec
-rw-r-r-1 root root 12938 2. Dezember 17.21 openlsm.spec
root @ arunsb: / usr / src / redhat / SPECS #
root @ arunsb: / usr / src / redhat / SPECS # rpmbuild-ba openlsm.spec
…
….
… ..
Überprüfen bei unverpackten Datei (en): / usr / lib / rpm / check-files% (buildroot)
Schrieb: / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
Schrieb: / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root @ arunsb: / usr / src / redhat / SPECS # echo $?
0
root @ arunsb: / usr / src / redhat / SPECS # ls-l / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
-rw-r-r-1 root root 3206 2. Dezember 17.50 Uhr / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
root @ arunsb: / usr / src / redhat / SPECS # ls-l / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
-rw-r-r-1 root root 3052868 2. Dezember 17.50 Uhr / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
root @ arunsb: / usr / src / redhat / SPECS #
* Quelle und Binär-Paket erzeugt!
** Mal sehen, was passiert ist in “/ usr / src / redhat /”-Verzeichnis
root @ arunsb: / usr / src / redhat # pwd
/ usr / src / redhat
root @ arunsb: / usr / src / redhat # ls
BUILD RPMS SOURCES SPECS SRPMS
root @ arunsb: / usr / src / redhat # ls BUILD /
openlsm-0.99-r45 <== Quelle extrahiert hier als Teil des Build-Instruktionen von der Spezifikation Datei zB “openlsm.spec”
root @ arunsb: / usr / src / redhat # ls SOURCES /
openlsm-0,99-r45.tar.gz <== Original “openlsm-0,99-r45.tar.gz” Quelle von mir kopierte Datei
root @ arunsb: / usr / src / redhat # ls RPMS /
athlon i386 i486 i586 i686 noarch
root @ arunsb: / usr / src / redhat RPMS/i386 # ls /
openlsm-0,99-r45.i386.rpm <== Binär-RPM-Paket erstellt!
root @ arunsb: / usr / src / redhat SRPMS # ls /
openlsm-0,99-r45.src.rpm <== Source-RPM-Paket erstellt!
root @ arunsb: / usr / src / redhat #
Schritt 3] Jetzt installieren Sie das Paket und testen Sie es ~
root @ arunsb: / usr / src / redhat RPMS/i386/openlsm-0.99-r45.i386.rpm # cp / home / arunsb /
root @ arunsb: / usr / src / redhat # cd / home / arunsb /
root @ arunsb: ~ # ls
openlsm-0,99-r45.i386.rpm
root @ arunsb: ~ # rpm-ivh openlsm-0,99-r45.i386.rpm
Preparing … ########################################### [100%]
1: openlsm ########################################### [100%]
root @ arunsb: ~ # ls / usr / local / openlsm /
bin contrib etc gehören lib sbin Skripte Aktien var
root @ arunsb: ~ #
** Starten des openlsm-Server ~
root @ arunsb: ~ # / usr / local / openlsm / contrib / openlsm-redhat starten
* Starting openlsm Admin-Server: openlsm
. [OK]
root @ arunsb: ~ #
root @ arunsb: ~ # / usr / local / openlsm / contrib / openlsm redhat-Status
openlsm (pid 21607) läuft …
root @ arunsb: ~ #
root @ arunsb: ~ # rpm-q openlsm-0.99-r45
openlsm-0.99-r45
root @ arunsb: ~ #
root @ arunsb: ~ # rpm-ql openlsm-0.99-r45
..
…
root @ arunsb: ~ # rpm-qiv openlsm-0.99-r45
Name: openlsm Relocations: (nicht verschiebbar)
Version: 0.99 Hersteller: IndianGNU.org & openlsm
Release: r45 Build Date: Mi 02 Dec 2009 05:50:54 PM ist
Install Date: Mi 02 Dec 2009 06:06:23 PM ist Build Host: alongseveral-dr.eglbp.corp.yahoo.com
Group: System Environment / Daemons Source RPM: openlsm-0,99-r45.src.rpm
Grösse: 14877918 Lizenz: GPL
Signature: (none)
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Zusammenfassung: openlsm Admin-Server
Beschreibung:
openlsm Admin-Server ist kostenlos und Open-Source-Web-basiertes Control Panel für Linux, Unix-Systemen.
root @ arunsb: ~ #
** Hinweis ~ Dieser Artikel keine Informationen darüber enthalten, wie micros definieren, wie man Dokumente zu kopieren, sind man-Seiten Standort standardmäßig, wie Baugenehmigungen und Eigenverantwortung usw. Ich werde diese Themen im nächsten Artikel über RPM-Decke.
** Bitte beachten Sie die Englisch Artikel ~ http://www.indiangnu.org/2009/how-to-create-or-build-rpm-package/
Grüße,
Arun Bagul