Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 16

Thema: Script für ein Programm in /usr/local/bin speichern?

  1. #1
    Registrierter Benutzer
    Registriert seit
    Apr 2014
    Beiträge
    69

    Script für ein Programm in /usr/local/bin speichern?

    Hallo,

    ich kann mich aus meiner Zeit unter Kubuntu 14.04 dunkel ein einen Workaround erinnern: Ein Paket wurde über die Paketverwaltung normal in /usr/bin installiert. Damit das Paket IMMER mit bestimmten Einstellungen (damals waren es glaube Locale-Einstellungen) gestartet wird habe ich (nach Anleitung aber nur) ein Script in /usr/local/bin gespeichert, das nichts weiter tut als das Paket in /usr/bin zusammen mit den Zusatzsettings zu starten. Da das Script den gleichen Namen hatte wie das Paket in /usr/bin wurde es bei jedem Aufruf des Pakets - egal ob manuell durch mich oder durch irgendein Programm als Hintergrunddienst - dieses immer mit den Zusatzeinstellungen gestartet. Wenn ich die Locale-Einstelungen in der ~/.Profile oder was weiß ich wo speichere gelten die nicht immer.

    Bevor ich jetzt ins Blauen hinein teste: Hab ich das noch so richtig in Erinnerung? Was mit gleichem Namen in /usr/local/bin liegt hat Vorrang vor /usr/bin?

    Alter Schwede

  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    das kommt auf den Inhalt von $PATH an - first match wins.
    Ich bin root - ich darf das.

  3. #3
    Registrierter Benutzer
    Registriert seit
    Apr 2014
    Beiträge
    69
    So richtig beantwortet das aber meine Frage nicht. Wenn ich 'echo $PATH' aufrufe bekomme ich eine Reihe von Pfaden und wie vermutet steht /usr/local/bin vor /usr/bin. Wenn ich da nun aber z. B. eine Datei 'thunar' anlege mit dem Inhalt

    Code:
    thunar -B
    (das sollte den Thunar-Bulk-Renamer öffnen, wenn ich einfach nur 'thunar' starte) kommt nach einem Reboot beim Aufruf von 'thunar'

    /bin/bash: Warnung: Der Shell Level (1000) ist zu hoch und wird auf 1 zurückgesetzt.
    Was wohl damit zusammenhängt, dass die Bash nur 999 mal gestartet werden kann. Ich hab sie ja aber nur 1x gestartet.

  4. #4
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    Doch, das beantwortet Deine Frage - es macht ja auch exakt das, was Du willst.

    ... nur solltest Du natürlich in dem Script in /usr/local/bin nicht einfach thunar aufrufen - das geht dann natürlich wieder $PATH durch, findet was in /usr/local/bin, startet dort thunar, soll thunar -B starten, sucht in $PATH, wo sich das findet, findet es in /usr/local/bin, startet dort thunar -B, ...

    ... entweder also im Wrapper-Script PATH entsprechend umändern oder dort den kompletten Pfad zum "richtigen" Thunar eintragen.

    Für das thunar -> thunar -b empfiehlt sich übrigens eher ein Alias, aber das ist evtl. auch eine grundelegende Philosophie-Entscheidung.
    Ich bin root - ich darf das.

  5. #5
    Registrierter Benutzer
    Registriert seit
    Apr 2014
    Beiträge
    69
    Ja, ok,. das mit dem kompletten Pfad ist richtig, hatte ich nicht bedacht. Thunar war auch nur ein Bsp. was mir grad spontan eingefallen ist da Thunar eben gerade lief.

    Aber gilt denn ein Alias bei ALLEN Ausführungen des Programmes, auch wenn ein anderer Prozess es startet?

  6. #6
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    kommt drauf an, wo Du den alias definierst und welche entsrprechenden Environments vor dem Programmstart gezogen wurden.

    ... auf PATH kannst Du dich übrigens auch nicht verlassen, daß das immer in dem Zustand ist, den Du beim "Versuch" an der Konsole siehst...

    -> wie immer - Environments sind ein Problem.
    Ich bin root - ich darf das.

  7. #7
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.814
    Ich werfe mal Links ins Rennen, das ist ein weit verbreitest Vorgehen - update-alternatives arbeitet zB so, dass viel zukomplizierte Umgebungsvariablen Thema bist du dann los.
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  8. #8
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    mit Links bekommst Du für ded. Binaries aber keine Env- oder Parameter-Anpassungen hin.
    Ich bin root - ich darf das.

  9. #9
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.814
    Du kannst aber auf etwas zeigen, was dir das garantiert, Env ist halt nicht verläßlich, weil alles und jeder da Ändern darf, Aliase sind auch nur Env bzw jedem steht es frei unalias zu verwenden oder einen vorhanden zu ändern. Bei einer Datei greifen andere Mechaniken die Unfälle dieser Art erschweren - man muss da auch nichts mit anderen Programmen, BOFHs usw abstimmen; wobei das idR ja auch nicht notwendig ist
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  10. #10
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    ok, und wie machst Du das im Beispielfall des TE mit thunar?

    Tut mir leid, ich finde keine Lösung, die das Grundproblem umgeht ohne auf irgendein Systemsetting angewiesen zu sein - sei es PATH, ENV oder sonstwas mystisches.
    Ich bin root - ich darf das.

  11. #11
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.814
    etwa so:
    Code:
    mv /path/to/bin/thunar /path/to/bin/thunar_org
    ln -s /path/to/my_thunar_launcher /path/to/bin/thunar
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  12. #12
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    ... das fliegt Dir um die Ohren sobald via Paketmanagement ein Update auf Thunar gemacht wird - und je nach Distri kann das so ca. 1x die Woche sein.

    ... und Thunar sollte dann intern bitte nicht via rel. Pfadangabe irgendwelche anderen Dinge nachladen.
    Ich bin root - ich darf das.

  13. #13
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.814
    Pfad ist lösbar, das ist Sache des Launchers, Paket Manager ist etwas komplexer:

    Ich denke man muss hier abwägen. Wenn man den Rechner alleine Nutzt ist Env ja recht zuverlässig und man bastelt sich eine Lösung nur für sich. Nun ist der Wunsch das starten für alles zu verändern, Shell, Startmenu, whatever, ich könnte mir vorstellen, dass alias nicht alles abdeckt. Also ist doch "der Skript nutzt die Reihenfolge aus" ein guter Hack dafür, dann wurde drauf hingewiesen, dass das bei Mehrbenutzersystem noch Lücken hat, da Env unerwartete Inhalte haben kann. Da wäre die Link Lösung robuster.
    Hat aber den Nachteil, dass man an Updates denken muss. Man kann relativ einfach einen auf Apache machen a2en* bzw a2dis*, um wieder updaten zukönnen. Gerade fällt mir noch ein, dass man doch Verzeichnisse über mounten kann, vermutlich darf mal als User nicht einfach die Bins weg mounten, aber man könnte das als Admin vorbereiten, dann wäre das mit dem Updaten weiterhin drin. Man kann es jedenfalls sauber lösen, ohne das man kompilieren oder Pakete redesigne müsste. Muss man halt abwägen, für ein Supporter sind beide Hacks nicht ganz einfach zu finden
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  14. #14
    Registrierter Benutzer Avatar von sea
    Registriert seit
    May 2020
    Ort
    Bourne in a ($Hell)
    Beiträge
    18
    2 Optionen, erstens:

    Als root:
    Code:
    echo "thunar -B" > /usr/local/bin/mythunar
    Achtung: Du kannst auch einfach $HOME/bin, $HOME/.bin, $HOME/local/bin oder $HOME/.local/bin verwenden!

    Jetzt kannst du einfach in der console foldgendes eingeben:
    Code:
    mythunar ARGS[@]
    Zweitens:
    Du machst in der $HOME/.bashrc ein alias wie folgt:
    Code:
    alias mythunar="\thunar -B"
    Der \ 'bypassed' aliase und nimmt nur 'reale' Dateien.

    Und kannst nun in der conosle ebenfalls einfach folgendes eingeben:
    Code:
    mythunar ARGS[@]
    Hoffe das hilft

  15. #15
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    bei der echo-Variante:
    * Shebang empfiehlt sich
    * Dateirechte setzen - sonst tut's nicht.
    * Parameter und Optionen dürften bei der geschriebenen Variante verloren gehen - sprich noch $@ an den Aufruf dranpacken

    (und es umgeht nicht die Problematik, wie man jeden Aufruf von thunar, egal woher, egal wie, "verarbeitet")
    Ich bin root - ich darf das.

Ähnliche Themen

  1. falsche Uhrzeit bei Script in /etc/rc.local
    Von chromoxdor im Forum Linux Allgemein
    Antworten: 7
    Letzter Beitrag: 03.02.14, 21:35
  2. hylafax pdf local speichern Debian Lenny
    Von Lempi im Forum Anbindung an die Aussenwelt
    Antworten: 7
    Letzter Beitrag: 18.06.11, 20:46
  3. Wie mit rc.local script starten?
    Von Gorn im Forum System installieren und konfigurieren
    Antworten: 1
    Letzter Beitrag: 25.06.08, 19:25
  4. SISGSTOP Programm speichern?
    Von kiney im Forum System installieren und konfigurieren
    Antworten: 2
    Letzter Beitrag: 24.09.06, 20:29
  5. Rechner mit SMP bleibt mit Programm in boot.local hängen
    Von nobody0 im Forum System installieren und konfigurieren
    Antworten: 0
    Letzter Beitrag: 05.05.01, 22:49

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •