Wie kann ich eine modernere Version von GNU-Utils (coreutils) unter Debian Linux ohne Administratorrechte installieren?

13

Ich möchte eine modernere Version von GNU-Utils (coreutils) auf einem Debian-Linux-System installieren, auf dem ich keine Administratorrechte habe. Gibt es eine Möglichkeit, das zu tun?

Das Grundprinzip ist, dass ich eine modernere Version als die benötige, die auf dem System installiert ist, auf dem ich meine Analyse ausführen möchte. Ich versuche, mit "sort -R" oder "shuf" Zeilen in einer großen Textdatei zufällig zu sortieren.

719016
quelle
1
Auf keinen Fall. Warum willst du das machen?
Michael K
4
Das Grundprinzip ist, dass ich eine modernere Version als die benötige, die auf dem System installiert ist, auf dem ich meine Analyse ausführen möchte. Ich versuche, mit "sort -R" oder "shuf" Zeilen in einer großen Textdatei zufällig zu sortieren.
719016

Antworten:

16

Sie können sie nicht in dem Sinne installieren, dass sie die vorhandenen für alle Benutzer des Systems überschreiben. Sie können sie jedoch in Ihrem Ausgangsverzeichnis kompilieren und installieren und so konfigurieren PATH, dass sie anstelle der Systembenutzer ausgeführt werden.

Laden Sie dazu die neueste Version von coreutils von der GNU-Website herunter . Extrahieren Sie dann das Archiv und führen cdSie die folgenden Befehle aus, um es zu kompilieren und zu installieren. Beachten Sie den --prefixSchalter, mit dem Sie das Verzeichnis konfigurieren können, in dem es installiert werden soll.

./configure --prefix=/home/avilella/coreutils/
make
make install

Die meisten Debian-Systeme sind so konfiguriert, dass ~/binsie Ihrem PATH automatisch hinzugefügt werden . In diesem Fall können Sie die Dienstprogramme in dieses Verzeichnis kopieren. Möglicherweise ist es jedoch nicht so konfiguriert, dass ausführbare Dateien in diesem Verzeichnis ausgeführt werden, bevor Systemverzeichnisse durchsucht werden, oder Sie möchten sie in einem eigenen Verzeichnis aufbewahren. In diesem Fall müssen Sie Ihr bearbeiten ~/.profile, um dieses Verzeichnis zu durchsuchen, bevor Sie die Systemverzeichnisse durchsuchen können. Fügen Sie dazu eine Zeile wie die folgende hinzu:

PATH="$HOME/coreutils/bin:$PATH"

Wenn Sie sie nicht kompilieren möchten, können Sie sie auch aus einem neueren Debian-Paket extrahieren, indem Sie ar vxin der .debDatei ein data.tar.gzTarball mit dem Paketinhalt ausgeben . Für neuere Pakete sind jedoch möglicherweise neuere Bibliotheken erforderlich, die auf Ihrem System nicht vorhanden sind.

Aufnäher
quelle
3
In PATH=...müssen doppelte oder keine Anführungszeichen verwendet werden. Die Verwendung von einfachen Anführungszeichen führt dazu, dass das Literal $HOMEund $PATHnicht deren Werte eingefügt werden.
user1686
@grawity: Wow, was für ein blöder Fehler, vor allem, wenn man bedenkt, dass ich seit Ewigkeiten durch PHPs ähnliches String-Handling hirngeschädigt bin. Danke für die Fehlerbehebung!
Patches