Как я могу установить более современную версию утилит GNU (coreutils) в Debian Linux без прав администратора?

13

Я хотел бы установить более современную версию утилит GNU (coreutils) в системе Debian Linux, где у меня нет прав администратора. Есть способ сделать это?

Смысл в том, что мне нужна более современная версия, чем та, которая установлена ​​в системе, где я собираюсь провести свой анализ. Я пытаюсь использовать "sort -R" или "shuf", чтобы рандомизировать строки в большом текстовом файле.

719016
источник
1
Ни за что. почему ты хочешь сделать это?
Майкл К
4
Смысл в том, что мне нужна более современная версия, чем та, которая установлена ​​в системе, где я собираюсь провести свой анализ. Я пытаюсь использовать "sort -R" или "shuf", чтобы рандомизировать строки в большом текстовом файле.
719016

Ответы:

16

Вы не можете установить их в том смысле, что они переопределяют существующие для всех пользователей системы, но вы можете скомпилировать и установить их в свой домашний каталог и настроить так PATH, чтобы они запускались вместо системных.

Для этого загрузите последнюю версию coreutils с веб-сайта GNU . Затем распакуйте архив cdв него и выполните следующие команды, чтобы скомпилировать и установить его. Обратите внимание на --prefixпереключатель, который позволяет настроить каталог, в который вы хотите установить.

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

Большинство систем Debian настроены на автоматическое добавление ~/binв вашу PATH. Если это так, вы можете скопировать утилиты в этот каталог. Однако он не может быть настроен для запуска исполняемых файлов из этого каталога перед поиском в системных каталогах, или вы можете предпочесть хранить их в своем собственном каталоге. В этом случае вам нужно будет отредактировать свой ~/.profileкаталог для поиска в этом каталоге, прежде чем искать в системных. Для этого добавьте строку вроде этой:

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

Если вы не хотите , чтобы собрать их, вы можете также извлекать их из более нового пакета Debian, используя ar vxна .debфайл для вывода data.tar.gzтарболла с содержимым пакета. Но для новых пакетов могут потребоваться новые библиотеки, которых нет в вашей системе.

Патчи
источник
3
В PATH=..., двойные или никакие кавычки должны быть использованы. Использование одинарных кавычек приведет к вставке литерала $HOMEи $PATHего значений, а не их значений.
user1686
@grawity: Ух, какая глупая ошибка, особенно учитывая, что я уже целую вечность страдала от подобной обработки строк в PHP. Спасибо за исправление!
патчи