Markus Pitha: Mal eine ganz grundsätzliche Frage zu Linux binaries

Nabend,
Angenommen man schreibt ein Programm, welches auf konventionellem Weg installiert wird, so wird das Binary höchstwahrscheinlich in /usr/bin installiert werden. Ich frage mich aber, was passieren würde, wenn ich das Programm zufällig so nenne, wie ein bereits vorhandenes Binary. Wie geht Linux damit um? Wird das eine überschrieben, oder was genau passiert, und wie kann man dem Problem vorbeugen?

Markus.

--
sh:( fo:| ch:? rl:( br:> n4:( ie:{ mo:) va:) de:] zu:) fl:( ss:| ls:] js:|
  1. Hallo Markus,

    Angenommen man schreibt ein Programm, welches auf konventionellem Weg installiert wird,

    »Konventioneller Weg«? Meinst Du ./configure && make && make install?

    so wird das Binary höchstwahrscheinlich in /usr/bin installiert werden.

    Bei ./configure && make && make install wird das Binary höchstwahrscheinlich nach /usr/local/bin installiert werden.

    Ich frage mich aber, was passieren würde, wenn ich das Programm zufällig so nenne, wie ein bereits vorhandenes Binary. Wie geht Linux damit um?

    Gar nicht - Linux ist das herzlich egal.

    Wird das eine überschrieben,

    Ja.

    und wie kann man dem Problem vorbeugen?

    Es gibt GNU Stow. Das Funktioniert so: Du installierst Programme nach /usr/local/stow/programmname (»./configure --prefix=/usr/local/stow/programmname && make && make install«) und dann gehst Du in »/usr/local/stow« und machst »stow programmname« - das legt dann Links von »/usr/local/stow/programmname« nach »/usr/local« an. Falls es Konflikte gibt, meldet es die und dann musst Du entscheiden, wie Du damit umgehst (d.h. Du musst entscheiden, welche Software Dir wichtiger ist btw. eine Software halt ganz woanders hin installieren). Stow hat auch den Vorteil, das Du mit »stow -D programmname« das Programm komplett "deinstallieren" kannst und nur noch »/usr/local/stow/programmname« löschen musst, damit das Programm weg ist.

    Viele Grüße,
    Christian

    1. Hallo,
      alles klar, danke für die Info.

      Markus.

      --
      sh:( fo:| ch:? rl:( br:> n4:( ie:{ mo:) va:) de:] zu:) fl:( ss:| ls:] js:|
    2. Hallo,

      Wird das eine überschrieben,
      Ja.

      Wohl eher 'vielleicht' -- das haengt davon ab, was das Makefile bei 'make install' genau macht. Das Programm 'install' hat einen Parameter zur Erzeugung von Backups.

      Gruss
      Thomas