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

4112
719016

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

Der Grund ist, dass ich eine modernere Version als die im System installierte Version benötige, in der ich meine Analyse ausführen möchte. Ich versuche, "sort -R" oder "shuf" zu verwenden, um Zeilen in einer großen Textdatei zufällig zu sortieren.

13
Auf keinen Fall. Warum willst du das machen? Michael K vor 12 Jahren 1
Der Grund ist, dass ich eine modernere Version als die im System installierte Version benötige, in der ich meine Analyse ausführen möchte. Ich versuche, "sort -R" oder "shuf" zu verwenden, um Zeilen in einer großen Textdatei zufällig zu sortieren. 719016 vor 12 Jahren 4

1 Antwort auf die Frage

16
Patches

Sie können sie nicht in dem Sinne installieren, dass sie die vorhandenen Benutzer für alle Benutzer des Systems überschreiben. Sie können sie jedoch in Ihrem Home-Verzeichnis 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 cdhinein und führen Sie 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 sie automatisch ~/binzu Ihrem PATH hinzugefügt werden . In diesem Fall können Sie die Dienstprogramme in dieses Verzeichnis kopieren. Es kann jedoch nicht so konfiguriert werden, dass ausführbare Dateien von diesem Verzeichnis ausgeführt werden, bevor die Systemverzeichnisse durchsucht werden. Alternativ können Sie sie auch in ihrem eigenen Verzeichnis aufbewahren. In diesem Fall müssen Sie Ihr ~/.profileVerzeichnis bearbeiten, bevor Sie die Systemverzeichnisse durchsuchen. Fügen Sie dazu eine Zeile wie folgt hinzu:

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

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

In PATH = ... müssen doppelte oder keine Anführungszeichen verwendet werden. Bei der Verwendung von einfachen Anführungszeichen werden die wörtlichen "$ HOME" und "$ PATH" anstelle ihrer Werte eingefügt. grawity vor 12 Jahren 3
@grawity: Wow, was für ein dummer Fehler, vor allem wenn man bedenkt, dass ich durch die ähnliche String-Behandlung von PHP seit Ewigkeiten im Gehirn geschädigt wurde. Danke für die Korrektur! Patches vor 12 Jahren 0