sonnenblen.de - Das unabhängige Sun User Forum

Software => Programmieren, Kompilieren => Thema gestartet von: 23r0 am 13. Juni 2009, 21:56:00

Titel: TMPDIR= in postinstall bei paketbau?
Beitrag von: 23r0 am 13. Juni 2009, 21:56:00
Hallo,

eine Frage. Habe von einem Kollegen den Paketbau einer Software übernommen. Habe nun festgestellt daß er im postinstall script rege von TMPDIR=$shellscriptstatement gebrauch macht. Er meinte die Ausführung würde Probleme bereiten ohne den TMPDIR= Prefix. Mh - mir begegnet das zum ersten Mal -  und ich kann auch nichts gescheites zum Thema im Netz finden. Mir ist der Paketbau Mechanismus (also was da tatsächlich im Hintergrund low-level passiert) nicht bis ins letzte Detail bekannt. Also - kann mir jemand sagen was es mit diesem TMPDIR Dingens auf sich hat? Spontan, auf den ersten Blick, wäre ich der Meinung er setzt immer wieder die Variable TMPDIR neu - ohne tatsächlich das nachfolgende Statement auszuführen, aber anscheinend wird es eben doch ausgeführt?

Titel: Re: TMPDIR= in postinstall bei paketbau?
Beitrag von: Ten Little Indyans am 13. Juni 2009, 22:52:22
Habe nun festgestellt daß er im postinstall script rege von TMPDIR=$shellscriptstatement gebrauch macht. Er meinte die Ausführung würde Probleme bereiten ohne den TMPDIR= Prefix.

Zitat von: 23r0
Spontan, auf den ersten Blick, wäre ich der Meinung er setzt immer wieder die Variable TMPDIR neu - ohne tatsächlich das nachfolgende Statement auszuführen, aber anscheinend wird es eben doch ausgeführt?

Ich vermute mal das im konkreten $shellscriptstatement ein Leerzeichen vorhanden ist? Also z.B.
TMPDIR=/tmp mach_was
führt das Statement mach_was aus und setzt in dessen Umgebung die Variable TMPDIR auf /tmp. Im weiteren Verlauf (alle folgenden Statements) hat die Variable ihren vorherigen Wert bzw. gar keinen.

Üblicherweise wird stattdessen die Variable ein Mal exportiert, danach wird sie automatisch in die Umgebung aller aufgerufener Statements vererbt.
TMPDIR=/tmp
export TMPDIR
mach_was