13

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

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

1 ответ1

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 с содержимым пакета. Но для новых пакетов могут потребоваться новые библиотеки, которых нет в вашей системе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .