logo

Suletuxe.de
Linux - Nutzer
helfen
Linux - Nutzern

Willkommen, Gast. Bitte Login oder Registrieren.
20. April 2024, 06:23:56
Übersicht Hilfe Suche Login Registrieren

Amateurfunk Sulingen
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Allgemeine Diskussionen  |  Thema: new_script - Bash shell script template generator « zurück vorwärts »
Seiten: [1] nach unten Drucken
   Autor  Thema: new_script - Bash shell script template generator  (Gelesen 891 mal)
Sebastian
Sr. Member
****

Offline

Einträge: 371





Profil anzeigen
new_script - Bash shell script template generator
« am: 06. August 2022, 09:53:54 »

Hallo liebe Suletuxe,

nach weiteren Studium des Buches Adventures with the Linux Command Line bin ich im Kapitel Coding Standards Part 2: new_script über das tolle bash Script new_script.bash gestoßen. Das einem ein gutes grund Gerüst für sein eigenes Script generieren kann. Denn Vorteil denn man daraus gewinnen kann, und wie genau das ganze funktioniert entnimmt bitte selbst aus dem Buch.

Da ich das Skript Praktisch finde, und es dafür noch kein Arch Paket gibt, habe ich dies zum Anlass genommen mich mit pacman noch besser auseinander zu setzten, indem ich lernte selbst Pakete für pacman zu bauen.

Dank des Arch Wikis (Creating packages) hatte ich ca. 30 Minuten später mein erstes PKGBUILD um daraus ein Paket für pacman zu bauen.

Das PKGBUILD möchte ich euch hiermit zu verfügung stellen, falls jemand das Script auch lieber über sein Paketmanager installieren möchte.

Code:

# Maintainer: Sebastian
pkgname=new_script
pkgver=3.5.3
pkgrel=2
pkgdesc="Bash shell script template generator"
arch=(any)
url="https://linuxcommand.org/lc3_adv_new_script.php"
license=('GPL3')
makedepends=(curl)
conflicts=(new_script)
source=("https://linuxcommand.org/new_script.bash")
sha256sums=('3dbc195654fe705bc9310e52e341ceb12fa032206adafd1ed640ff7aa0957802')

package() {
   install -d -m755 "${pkgdir}/opt/${pkgname}/"
   install -d -m755 "${pkgdir}/usr/bin/"
   install -D -m755 "${srcdir}/new_script.bash" "${pkgdir}/opt/${pkgname}/"
   ln -s "/opt/${pkgname}/new_script.bash" "${pkgdir}/usr/bin/${pkgname}"
}


Ein Paket könnt ihr damit so erstellen: erstellt euch ein Projekt Verzeichnis, kopiert euch den Code in die datei PKGBUILD und erstellt+installiert euch das Paket.

Code:

mkdir new_script
cd new_script
nano PKGBUILD # In diese Datei den Code einfügen
makepkg -ci

Wer diesen Overhead für ein Skript nicht brauch, kann sich den Download Link von new_script auch aus den PKGBUILD heraussuchen. Das übt gleich sowas auch zu lesen. Ihr könnt ja mal schreiben falls ihr den Download Link im PKGBUILD nicht finden solltet, dann schreibe ich hier noch mal wie man diesen findet. Damit ist man besser in der lange PKGBUILDs aus dem AUR selbst zu prüfen ob die einen kein Quatsch installieren wollen.

Wenn ihr wollt könnt ihr auch mal versuchen aus dem Code heraus zu lesen welche Dateien und Verzeichnisse pacman bei der installation dieses Paket erstellen würde.

Dann kennt man sich auch gleich besser auf seinem eigenen System aus, wenn man sowas lesen kann. Wer die Befehle wie install nicht kennt, darf auch gerne Detektiv arbeit leisten und sich darüber weiter informieren, bis man den kompletten Ablauf lesen kann.

Suchmaschinen, Man Pages und co sind dabei euer freund. Wenn man Patu nicht weiter kommt helfe ich euch gerne, die nötigen Informationen zu finden.
« Letzte Änderung: 07. August 2022, 08:38:05 von Sebastian » Gespeichert

Andreas
Administrator
*****

Offline

Einträge: 1140



Linux von Innen

Profil anzeigen
Re:new_script - Bash shell script template generator
« Antwort #1 am: 07. August 2022, 04:24:50 »

Moin Sebastian,

Du zeigst auf eindrucksvolle Weise wie man sich Wissen im Linux-Sektor aneignet. Ja - es ist kein Hexenwerk ein Paket für Arch "selbst zu entwerfen" - ich habe das mit einem uralten Plasma-Widget getan (Superkaramba). Wenn man möchte kann man sich auch einen GPG-Schlüssel generieren und dann bei aur.archlinux.org als "Entwickler" anmelden und Pakete für alle (nämlich in den AURs) anbieten.

Alles in Linux ist so schön logisch und nachvollziehbar. Ich vergleiche es gerne mit einem Wald den man erkundet. So viele kleine Pfade, so viele interessante Pflanzen und Tiere - und keines davon ist für mich "gefährlich". Das sind eher die versteckten "Blackboxen" (closed-Source) in Windows. Sie sind "Büchsen der Pandoras", von denen man weder weiß ob man sie jemals aufbekommt und wenn weiß man nicht was einen erwartet. Ganz anders Linux: man kann alles erforschen und nachvollziehen - wenn man es denn wirklich will. Dabei ist nicht der der sagt: "Ich will ja, aber...." sondern der der wenig redet und mehr sagt was er selbst schon erarbeitet hat. Und dabei bin ich meinem ersten Satz meiner Antwort wieder angekommen...

Etwas Off-Topic, aber: Wenn AUR-Pakete nicht mehr bauen, der Maintainer offensichtlich keine Lust mehr hat sich drum zu kümmern man selbst das Paket aber weiter haben möchte kann man an den PKGBUILD auch selbst Hand anlegen. Man kann das Paket dann lokal bauen ohne dass Dinge geprüft werden oder Sourcen neu geladen werden (makepkg -eA).

LG
Andreas
Gespeichert

Wissen ist das einzige Gut, das mehr wird, wenn man es teilt - wenn es Menschen gibt, die es weitergeben, und es Menschen gibt, die bereit sind, dieses Geschenk auch unter eigenem Einsatz anzunehmen.


Freiheit zu erkämpfen reicht nicht. Man muss sie auch verteidigen.
Sebastian
Sr. Member
****

Offline

Einträge: 371





Profil anzeigen
Re:new_script - Bash shell script template generator
« Antwort #2 am: 07. August 2022, 09:20:56 »

Vielen dank Andreas für das Kompliment.

Ich kann dir da nur beifichten, durch Open Source hat man erst die Möglichkeit sich selbst einbringen zu können. würde man mit Close Source Software arbeiten, so wäre man auch ständig der gnade anderer ausgesetzt das diese ihre Software weiter pflegen.Durch Open Source besteht zumindest die Möglichkeit selbst Hand an zu legen bzw. legen zu lassen, wenn man selbst dazu nicht in der lage ist.

Ich hatte mich bei dem PKGBUILD bewusst gegen das AUR entschieden, da ich das nur als kleines übungs Projekt angesehen habe, und das auch nicht weiter pflegen werde. Vielleicht werde ich mir später ein AUR Account zulegen wenn ich vorhabe mich dort mehr einzubringen.

Auch danke noch mal für den Hinweis auf die zwei Optionen von (makepkg -eA) nachdem ich diese kurz in den manual von makepkg nachgeschlagen habe, habe ich für mich entschieden damit wie folgt umzugehen:

Zitat:
-A, --ignorearch

Ignore a missing or incomplete arch field in the build script. This is for rebuilding packages from source when the PKGBUILD may be slightly outdated and not updated with an arch=('yourarch') field.

Hier würde ich dem PKGBUILD lieber ein arch=() Array hinzufügen, wenn ich die Architektur kenne. Um das PKGBUILD auf den neusten Stand zu bringen.

Zitat:
-e, --noextract

Do not extract source files or run the prepare() function (if present); use whatever source already exists in the $srcdir/ directory. This is handy if you want to go into $srcdir/ and manually patch or tweak code, then make a package out of the result. Keep in mind that creating a patch may be a better solution to allow others to use your PKGBUILD.

Hier würde ich der Empfehlung folgen nachdem ich selbst ein Patch ausprobiert habe, diesen über die prepare() Funktion im PKGBUILD hinzufügen. Damit andere davon auch profitieren können.


Warum ich diese zwei Optionen noch mal so ausführlich erläutere, weil ich aufzeigen möchte, wie schnell selbst durch kleine Hinweiße sich über Linux spezifische Themen Informieren kann.

Mir wurden zwei für mich bis jetzt noch unbekannte Optionen von makepkg präsentiert. Mit einen kurzen Befehl

Code:
man makepkg


Konnte ich schnell in Erfahrung bringen was diese Optionen bewirken, und habe sogar noch Empfehlungen aus dem Handbuch bekommen wie man alternativ damit umgehen kann, damit diese Optionen nicht mehr zwingend eingesetzt werden müssen, falls man sie denn brauch. Es führen halt viele Wege bekanntlich nach Rom 
Gespeichert

Andreas
Administrator
*****

Offline

Einträge: 1140



Linux von Innen

Profil anzeigen
Re:new_script - Bash shell script template generator
« Antwort #3 am: 18. August 2022, 06:18:15 »

Ich brauche diese Optionen besonders auf meinem Raspberry Pi. Viele Betreuer von AUR-Paketen haben keine Möglichkeit ihre Pakete auf Tauglichkeit für andere Architekturen zu testen (wie z.B. armv7) und schließen diese Architekturen folgerichtig sicherheitshalber aus. Es nützt auc nicht wenn ein Einzelner sagt "geht bei mir aber" - kann man einem Einzelnen so ohne weiteres trauen? Ich bin aber "der Einzelne" und ich weiß dass die Pakete bei mir sowohl bauen als auch laufen. Warum soll ich dann jedesmal die PKGBUILDs ändern? Ich wechsle einfach in das build Directory und feure ein -eA ab - dann wird das Paket sofort gebaut. Und danach kann ein yay -Syu alles erfolgreich abschließen.

LG
Andreas
Gespeichert

Wissen ist das einzige Gut, das mehr wird, wenn man es teilt - wenn es Menschen gibt, die es weitergeben, und es Menschen gibt, die bereit sind, dieses Geschenk auch unter eigenem Einsatz anzunehmen.


Freiheit zu erkämpfen reicht nicht. Man muss sie auch verteidigen.
Seiten: [1] nach oben Drucken 
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Allgemeine Diskussionen  |  Thema: new_script - Bash shell script template generator « zurück vorwärts »
Gehe zu: 


Login mit Username, Passwort und Session Länge

 Es wird die Verwendung "Blink"-basierter Browser und mindestens 1024x768 Pixel Bildschirmauflösung
für die beste Darstellung empfohlen
 
freie Software für freie Menschen!
Powered by MySQL Powered by PHP Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2004, YaBB SE Dev Team. All Rights Reserved.
- modified by Andreas Richter (DF8OE)
Valid XHTML 1.0! Valid CSS!