• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Script soll nur in einem Ordner schreiben dürfen, wie mache ich das?

Xinor

Tokyo Rose
Registriert
18.03.10
Beiträge
66
Hi,

leider ist mir kein knackiger Titel eingefallen.
Also ich habe ein Script, welches mir ein paar Libraries kompiliert und installiert. Jedoch möchte ich nicht, dass die neue Libraries in die Systemordner kopiert werden. Ich will dass sie nur in einem neu von mir erstellten Ordner kopiert werden.
Ich möchte einfach sicher sein, dass nichts ausserhalb dieses Ordners kopiert wird. Wie stell ich das am besten an? Falls es möglich ist.

Dann, ist es irgendwie möglich, dass ich auch die Leserechte für diesen Ordner einschränke, so dass ich sicher sein kann, dass das Script keine Libraries ausserhalb des Ordners verwendet, wie z.B. das System-Python oder -Numpy? Und nur Zugriff auf das gcc fürs kompilieren hat?

Wäre nett, wenn mir da Einer behilflich sein könnte.


Danke allen,
Xinor
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Leg doch einfach fest, wohin die Libraries installiert werden sollen. Wie das geht steht in den Docs zu den Buildtools.
 

Xinor

Tokyo Rose
Registriert
18.03.10
Beiträge
66
Das mache ich schon... Nur man kann sich nicht 100% sicher sein. Daher will ich es so gut wie möglich kontrollieren.
Bzw es sehen, wenn versucht wird auf eine Lib ausserhalb zu zugreifen oder wenn versucht wird ausserhalb des Ordners zu schreiben.
Deine Antwort bringt mich also nicht weiter.
 

MacAlzenau

Golden Noble
Registriert
26.12.05
Beiträge
22.522
Oh, endlich mal eine neue Form der Paranoia.
Du weißt schon, daß die bösen bösen Systemprogrammierer dafür gesorgt haben, daß du nie wirklich weisst und siehst, wohin deine Programme tatsächlich was schreiben? Die tun immer nur so und lachen sich heimlich ins Fäustchen.
 

Xinor

Tokyo Rose
Registriert
18.03.10
Beiträge
66
Oh, endlich mal eine neue Form der Paranoia.
Du weißt schon, daß die bösen bösen Systemprogrammierer dafür gesorgt haben, daß du nie wirklich weisst und siehst, wohin deine Programme tatsächlich was schreiben? Die tun immer nur so und lachen sich heimlich ins Fäustchen.

Im Gegensatz zu Menschen machen Programme exakt nur das, was man ihnen sagt.

Echt mal Leute, wenn ihr net helfen wollt oder könnt, dann lasst die dummen Kommentare.
Mit dem Script werden über 40 Pakete gebaut. Es sind ENVs wie MACOSX_DEPLOYMENT_TARGET, CC, LDFLAGS, CMAKE_PREFIX_PATH, PATH,... und und und gesetzt. Und es gibt manche Pakete die ignorieren manche ENVs. Z.B haben manche "-arch x86_64" ignoriert, so dass man es in der Makefile setzen musste. Jetzt bekommen ich einen "Segmentation fault", welches darauf hindeutet, dass es zwei verschieden Python-Versionen verwendet werden. Bei einem Pakete hab ich es rausgefunden und warum dieses das System-Python benutzt hat, obwohl die selben ENVs gesetzt waren, weiss ich nicht. Es hat beim Kompilieren keinen Fehler ausgespuckt. Erst als man das Programm benutzt hat. Und manche Pakete brauchen bis zu 1h zum kompilieren und da werden tausende Zeilen ausgegeben. Wenn es aber versucht auf andere Libs zuzugreifen, zB. die aus dem System, aber es hat kein Zugriffsrecht drauf, dann bekommt man es mit.

Diese Pakete sind halt nicht für den Mac geschrieben und daher kommt es oft zu Problemen. Allein schon dass viele mit LLVM nicht kompilieren, macht es das veraltete gcc-4.2 auch nicht viel einfacher. Unter ubuntu läuft alles ohne Probleme, nur unter Lion gibt es einfach min. ein Paket welches noch auf System Libraries zugreift und ich weiss nicht welches.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Ach, wär das schön.
Dumm, dass da immer wieder diese seltsamen Stimmen aus dem Off dazwischenquatschen. :)
Ich glaube es liegt da eher an der Fehlbarkeit des Entwicklers, der dem komplexen Ablauf des erstellen Programms nicht für jeden x-beliebigen Fall vorahnen kann.

Echt mal Leute, wenn ihr net helfen wollt oder könnt, dann lasst die dummen Kommentare.
Echt mal Leut! Erst mal Basics lernen wäre angesagt. Dazu zählt auch "Wie erstelle ich einen Threadtitel, der dem Thema auch entspricht".
 

drlecter

Wöbers Rambur
Registriert
04.11.06
Beiträge
6.442
Also wirklich. Das geht ja mal garnicht.

Ach warum erstellst du nicht einfach den oder die Ordner neu und baust das ganze dann unter einem User der nicht in de Systemverzeichnisse schreiben darf. So habe ich unter Unix/Linux genug Pakete ohne root Rechte für mich selber kompiliert.
 

Xinor

Tokyo Rose
Registriert
18.03.10
Beiträge
66
Also wirklich. Das geht ja mal garnicht.

Ach warum erstellst du nicht einfach den oder die Ordner neu und baust das ganze dann unter einem User der nicht in de Systemverzeichnisse schreiben darf. So habe ich unter Unix/Linux genug Pakete ohne root Rechte für mich selber kompiliert.

Danke, nach langem googlen bin ich auch auf den Hinweis gestossen. Hätte auch selbst drauf kommen könnten.
Aber ich dachte da gibts vielleicht auch eine einfache Lösung einer Sandbox. Für den Mac gibt es ja genug kleine hilfreiche Programme, daher habe ich einfach mal gefragt, aber hier scheinen manche Leute irgendwie nicht wirklich helfen zu wollen. Bist der Erste der tatsächlich eine hilfreiche Antwort schreibt.
 

drlecter

Wöbers Rambur
Registriert
04.11.06
Beiträge
6.442
Danke, nach langem googlen bin ich auch auf den Hinweis gestossen. Hätte auch selbst drauf kommen könnten.
Aber ich dachte da gibts vielleicht auch eine einfache Lösung einer Sandbox. Für den Mac gibt es ja genug kleine hilfreiche Programme, daher habe ich einfach mal gefragt, aber hier scheinen manche Leute irgendwie nicht wirklich helfen zu wollen. Bist der Erste der tatsächlich eine hilfreiche Antwort schreibt.

Was willst du mit einer Sandbox? Wie willst du das Ergebnis denn nutzen? Klar, kannst du dir auch eine fakeroot Umgebung bauen und dann schauen was wo installiert wird.

Alternativ halt alles über den generellen Prefix (der wird halt immer benötigt und akzeptiert solange niemand auf die Idee gekommen ist, absolute Pfade zu verwenden) nutzen und alles lokal für den Benutzer installieren. Aber das sind eigendlich die Grundlagen für solche Aktionen.