CentOS 6.6, Grenzen der benutzerspezifischen Umgebung

CentOS 6.6, Grenzen der benutzerspezifischen Umgebung

Ich werde also Kontext hinzufügen, aber mein BLUF ist dieser:

In einer Organisation, die aktiv „alt, bekannt, stabil“ (CentOS 6.6, sorgfältig kuratiertes Repo usw.) gegenüber „modern, effizient, effektiv“ bevorzugt, mir jedoch innerhalb meines eigenen Profils einen erheblichen Spielraum lässt: Wie weit kann (oder sollte) ich bei der Erstellung meiner eigenen Umgebung innerhalb meines Profils gehen und was ist der sinnvollste Ansatz, um dies zu erreichen?

Ein einfaches Beispiel für das, wovon ich spreche, ist Python. Systemweit bin ich auf 2.6 beschränkt, aber niemanden interessiert es, ob ich für meine eigenen Zwecke 2.7 oder 3.4 verwende, aber selbst das manuelle Erstellen (ganz zu schweigen von Tools wie pyenv usw.) war nicht erfolgreich (obwohl es immer so aussiehtNuraußerhalb der Reichweite meiner Fähigkeiten)

Also hat niemand ein Problem damit, dass ich neuen Code kompiliere oder Pakete aus sinnvollen Quellen ausführe. Nichts von dem, was ich tue, wird in einem SU-Kontext usw. ausgeführt, aber ich scheine hier unglaublich viel Zeit damit zu verbringen, herumzutrödeln. Ich kann keine RPMs installieren, weil ich die verdammten Tools nicht einmal ausführen kann (nicht einmal in einem Benutzerkontext) usw. Ich stelle mir vor, dass es eine Möglichkeit für sie gibt, die Berechtigungen so zu ändern, dass ich das tun kann (ohne dass ich systemweite Änderungen vornehmen darf), aber bevor ich nach solchen Sachen frage, muss ich wissen, dass es die beste (oder zumindest praktikable) Lösung für mein Problem ist.

Welchen Weg sollte ich einschlagen, um dies zu erreichen? Und über das hinaus, was ichdürfentue ich eigentlichTUNIch möchte die allgemeine Absicht dieser Richtlinien befolgen und daher alles vermeiden, was tatsächlich Auswirkungen auf die Sicherheit hat. Gibt es also Grenzen, wie weit ich dabei gehen sollte?

Ist die Verwendung des Paketmanagers überhaupt sinnvoll? Kann eine funktionale Build-Umgebung erstellt werden? usw.

Und natürlich wäre ich für einen Link sehr dankbar, falls es irgendwo eine Einführung gibt, die ich lesen sollte. Meine Google-Suche hat mich hier im Stich gelassen (wahrscheinlich, weil es mir schwerfällt, das Problem kurz und bündig zu beschreiben).

Antwort1

Ok, das ist also, was ich aus Ihrer Frage verstanden habe. Sie möchten eine Umgebung haben, die alle Versionen aller Pakete enthält, die Sie für erforderlich halten, richtig? Sollte dies der Fall sein, haben Sie damit keine Probleme, da Linux dies tatsächlich unterstützt. Es gibt kaum Einschränkungen hinsichtlich dessen, was Sie als Benutzer nicht tun können.

Für Ihr erstes Beispiel: Python. Der Systemadministrator sollte (ausdrücklich) davon absehen, dies zu aktualisieren, da es für YUM sehr, sehr wichtig ist und der Server nicht mehr aktualisiert werden kann, wenn es beschädigt wird. Dies hindert Sie jedoch nicht daran, Unterordner in Ihrem Home-Verzeichnis zu erstellen und einen Tarball mit den erforderlichen Binärdateien einzubinden. Gehen Sie einfach hierhinPython herunterladenund wählen Sie einen Tarball aus. Entpacken Sie ihn in Ihrem Home-Ordner und fügen Sie ein export PATH=/location_to_bin_folder_for python:$PATHin Ihre .bashrc-Datei ein. Schon kann es losgehen.

Dies ist in der Linux-Welt völlig akzeptabel (Unternehmen haben möglicherweise Einschränkungen bei der Installation) und Tarballs sind im Allgemeinen die beste Lösung für geschlossene Infrastrukturen. Paketmanager werden im Allgemeinen von Administratoren verwendet und Sie haben keinen Zugriff darauf, es sei denn, Sie haben etwas Bestimmtes im Sinn, beispielsweise eine PHP-Version von Red Hat oder anderen Drittanbieter-Repo-Anbietern.

Zusammenfassend sind Sie also durch die von Ihren Administratoren festgelegten Regeln eingeschränkt. In geschlossenen Infrastrukturen ist Sicherheit kein wirklich großes Problem. Sie können noch einen Schritt weiter gehen und bei Bedarf RPMs mit Tar-Bällen als Updates erstellen und Updates abonnieren, um das RPM auf dem neuesten Stand zu halten. Ich würde herausfinden, wie sehr sie Sie einschränken möchten, aber praktisch alle Entwicklungstools sind für diesen Zweck als Tar-Archive verfügbar.

BEARBEITEN :

Der einfachste Weg, das Gesuchte zu erreichen, ist die Vorgehensweise mit Alternativen. Sie können dies tun, indem Sie einen Ordner in Ihrem Home-Bereich erstellen wie /home/user/bin

Installieren Sie Python und etwas anderes, beispielsweise Java, in zwei separaten Ordnern

/home/user/pythonUnd/home/user/java.

Erstellen Sie in Ihrem Bin-Ordner symbolische Links zu den gewünschten Binärdateien

$ ls -l /home/user/bin

lrwxrwxrwx. 1 user user 13 May 19 19:59 java -> /home/user/java/bin/java
lrwxrwxrwx. 1 user user 13 May 19 19:59 javac -> /home/user/java/bin/javac
lrwxrwxrwx. 1 user user 15 May 19 19:59 python -> /home/user/python/bin/python

Fügen Sie dies zu Ihrer .bashrc hinzu

export PATH=/home/user/bin:$PATH

Öffnen Sie eine neue Terminalsitzung und versuchen Sie which python

Es sollte heißen/home/user/bin/python

Fügen Sie alle weiteren Binärdateien hinzu, die Sie für passend erachten, und es wird wie erwartet funktionieren

verwandte Informationen