GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So erstellen Sie RPM für Ihr eigenes Skript in CentOS/RedHat

RPM (RedHat Package Manager) ist ein Paketverwaltungssystem für RHEL-basierte Systeme. Sie haben vielleicht gesehen, dass alle Pakete in Redhat-basierten Systemen die Erweiterung .rpm haben . Dieses Tutorial hilft Ihnen dabei, RPM für Ihr eigenes Skript zu erstellen

Ich hatte ein Skript erstellt, um eine Datenbanksicherung durchzuführen. Heute habe ich eine RPM-Datei dieses Skripts erstellt. Dies ist mein erstes erstelltes RPM. Unten sind die Schritte, denen ich folge, um es zu tun.

Schritt 1 – Erforderliche Pakete installieren

Zunächst müssen Sie die erforderlichen Pakete auf Ihrem System installieren, um RPM-Dateien zu erstellen.

$ yum install rpm-build rpmdevtools

Schritt 2 – Verzeichnisstruktur erstellen

Gehen Sie zum Home-Verzeichnis des Benutzers und erstellen Sie die erforderliche Verzeichnisstruktur mit dem folgenden Befehl.

$ rpmdev-setuptree

Der obige Befehl erstellt eine Verzeichnisstruktur wie unten.

$ ls -l rpmbuild

drwxr-xr-x 2 root root 6 Oct 25 03:09 BUILD
drwxr-xr-x 2 root root 6 Oct 25 03:09 RPMS
drwxr-xr-x 2 root root 6 Oct 25 03:09 SOURCES
drwxr-xr-x 2 root root 6 Oct 25 03:09 SPECS
drwxr-xr-x 2 root root 6 Oct 25 03:09 SRPMS

Falls rpmdev-setuptree Befehl konnte die Struktur nicht erstellen, Sie können sie manuell erstellen

$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS,tmp}

Schritt 3 – RPM-Makrodatei erstellen

Erstellen Sie nun eine ~/.rpmmacros-Datei mit folgendem Inhalt. Ändern Sie die Werte von rot markierten Namen

~/.rpmmakros

%packager YOUR_NAME

%_topdir %(echo $HOME)/rpmbuild

%_smp_mflags %( \
    [ -z "$RPM_BUILD_NCPUS" ] \\\
        && RPM_BUILD_NCPUS="`/usr/bin/nproc 2>/dev/null || \\\
                             /usr/bin/getconf _NPROCESSORS_ONLN`"; \\\
    if [ "$RPM_BUILD_NCPUS" -gt 16 ]; then \\\
        echo "-j16"; \\\
    elif [ "$RPM_BUILD_NCPUS" -gt 3 ]; then \\\
        echo "-j$RPM_BUILD_NCPUS"; \\\
    else \\\
        echo "-j3"; \\\
    fi )

%__arch_install_post \
    [ "%{buildarch}" = "noarch" ] || QA_CHECK_RPATHS=1 ; \
    case "${QA_CHECK_RPATHS:-}" in [1yY]*) /usr/lib/rpm/check-rpaths ;; esac \
    /usr/lib/rpm/check-buildroot

Schritt 4 – Dateien im SOURCES-Verzeichnis kopieren

Kopieren Sie alle Ihre Dateien und Skriptordner in ~/rpmbuild/SOURCES Verzeichnis, das wir in der RPM-Datei hinzufügen müssen. Für dieses Tutorial habe ich alle Dateien verwendet, die in unserem Tutorial Advance Bash Script for MySQL erstellt wurden.

$ cd ~/rpmbuild/SOURCES
$ ls -l mydumpadmin-1

-rw-r--r-- 1 root root  125 Oct 25 03:54 credentials.txt
-rw-r--r-- 1 root root 4693 Oct 25 03:54 mysql-dump.sh
-rw-r--r-- 1 root root 1008 Oct 25 03:54 README.md
-rw-r--r-- 1 root root 3445 Oct 25 03:54 settings.conf

Erstellen Sie einen Tarball Ihres Codes.

$ tar czf mydumpadmin-1.0.tar.gz mydumpadmin-1

Schritt 5 – SPEC-Datei erstellen

Erstellen Sie eine Spezifikationsdatei ~/rpmbuild/SPECS/mydumpadmin.spec Verwendung des folgenden Inhalts.

~/rpmbuild/SPECS/mydumpadmin.spec

Name:           mydumpadmin
Version:        1
Release:        0
Summary:        An Advance Bash Script for MySQL Database Backup

Group:          TecAdmin
BuildArch:      noarch
License:        GPL
URL:            https://github.com/tecrahul/mydumpadmin.git
Source0:        mydumpadmin-1.0.tar.gz

%description
Write some description about your package here

%prep
%setup -q
%build
%install
install -m 0755 -d $RPM_BUILD_ROOT/etc/mydumpadmin
install -m 0600 credentials.txt $RPM_BUILD_ROOT/etc/mydumpadmin/credentials.txt
install -m 0755 mysql-dump.sh $RPM_BUILD_ROOT/etc/mydumpadmin/mysql-dump.sh
install -m 0644 README.md $RPM_BUILD_ROOT/etc/mydumpadmin/README.md
install -m 0644 settings.conf $RPM_BUILD_ROOT/etc/mydumpadmin/settings.conf

%files
/etc/mydumpadmin
/etc/mydumpadmin/credentials.txt
/etc/mydumpadmin/mysql-dump.sh
/etc/mydumpadmin/README.md
/etc/mydumpadmin/settings.conf

%changelog
* Tue Oct 24 2017 Rahul Kumar  1.0.0
  - Initial rpm release

Ändern Sie den Paketnamen, den Skriptpfad, den Archivnamen, die Beschreibung usw. gemäß Ihren Anforderungen.

Schritt 6 – RPM aufbauen

Nachdem Sie die obigen Schritte ausgeführt haben, können Sie Ihre RPM erstellen, indem Sie den folgenden Befehl ausführen.

$ cd ~/rpmbuild
$ rpmbuild -ba SPECS/mydumpadmin.spec

Nach erfolgreicher Erstellung wird eine RPM-Datei wie ~/rpmbuild/RPMS/noarch/mydumpadmin-1-0.noarch.rpm erstellt

Installieren Sie Ihre RPM mit dem folgenden Befehl. Nach der Installationsprüfung werden die Dateien ordnungsgemäß als definierter Speicherort installiert.

$ rpm -ivh mydumpadmin-1-0.noarch.rpm

Vielen Dank für die Verwendung dieses Artikels. Ich hoffe, die obigen Schritte helfen Ihnen, Ihre eigene RPM zu erstellen.


Cent OS
  1. So setzen Sie Ihr MySQL-Root-Passwort unter CentOS 6 zurück

  2. So erstellen Sie eine Kickstart-Datei für CentOS/Fedora/RedHat (RHEL)

  3. So konfigurieren Sie das YUM-Repository in Linux/Centos/Redhat | YUM unter Linux/Centos/Redhat

  4. So installieren Sie Ntopng unter CentOS 6

  5. So installieren Sie Habari unter CentOS 7

So erstellen Sie Ihr erstes Java-Programm unter CentOS 8

So erstellen Sie einen Sudo-Benutzer unter CentOS

So installieren Sie MariaDB auf CentOS 6

So installieren Sie MariaDB unter CentOS 7

So installieren Sie Moodle unter CentOS 7

So installieren Sie HHVM auf CentOS 6