
Мой нынешнийпереименоватьверсия команды 0.20
$ rename -V
/usr/bin/rename using File::Rename version 0.20
Я хочу обновить его до 1.10
версии или выше.
Как мне это сделать?
решение1
Удобного бинарного пакета для обновления не существует, поэтому лучшим долгосрочным способом обновления rename
является пересборка пакета из исходного кода:
установим несколько пакетов, которые нам понадобятся:
sudo apt install devscripts debhelper libmodule-build-perl
загрузите исходный пакет 1.10:
dget -u http://deb.debian.org/debian/pool/main/r/rename/rename_1.10-1.dsc
построить это:
cd rename-1.10 dpkg-buildpackage -us -uc
установите его:
sudo dpkg -i ../rename_1.10-1_*.deb
Это заменит ваш текущий rename
пакет и обеспечит его актуальность при обновлении дистрибутива в будущем.
Вы можете удалить пакеты сборки, которые больше не нужны:
sudo apt --autoremove purge devscripts debhelper libmodule-build-perl
решение2
Mint 19.2 — этона основе Ubuntu Bionic (18.04 LTS), иу него нет rename
собственного пакета.
Итак, rename
пакет унаследован от Bionic как есть... ив Bionic стандартная версия пакета действительно 0.20..
Тот факт, что ваш rename -V
вывод говорит, что он использует, File::Rename
указывает на то, что это инструмент на основе Perl. Для Perl существует целая экосистема пакетов Perl и нейтральная к дистрибутиву система репозиториев для исходного кода Perl, известная как CPAN (Comprehensive Perl Archive Network). Смотритеhttps://cpan.perl.org.
Perl позволяет устанавливать новые версии пакетов Perl из исходного кода, не вмешиваясь в бинарные пакеты дистрибутива. Во-первых, вам нужно gcc
установить компилятор и другие базовые инструменты разработки, чтобы иметь возможность компилировать исходный код в исполняемую форму. Самый простой способ сделать это, вероятно, использовать любой имеющийся у вас менеджер пакетов GUI, найти группу пакетов "development tools" (или подобную) и установить минимальный/стандартный набор пакетов из нее.
После того, как вы это сделаете, вы сможете использоватьCPAN-оболочкаPerl для автоматической загрузки и установки обновленной версии File::Rename
модуля Perl. Оболочку CPAN можно запустить с помощью perl -MCPAN -e shell
, и если вы хотите, чтобы обновленный инструмент можно было использовать во всей системе, вам нужно будет запустить его как root с помощью sudo
или аналогичного.
При первом использовании оболочка CPAN задаст несколько вопросов по настройке и проверит наличие сетевого подключения к зеркальному сайту cpan.perl.org. Обычно, вы можете просто нажать Enter на вопрос автоматической настройки, по умолчанию отвечая «да»:
$ sudo perl -MCPAN -e shell
Password:
CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.
Would you like to configure as much as possible automatically? [yes]
Autoconfiguration complete.
commit: wrote '/root/.cpan/CPAN/MyConfig.pm'
You can re-run configuration any time with 'o conf init' in the CPAN shell
Terminal does not support AddHistory.
cpan shell -- CPAN exploration and modules installation (v2.20)
Enter 'h' for help.
cpan[1]>
Тексты могут отличаться, если ваша версия оболочки CPAN отличается от моей, но общая идея должна быть такой же. Как только вы увидите приглашение cpan[1]>
, оболочка CPAN готова к использованию. Просто введите install File::Rename
(имя пакета Perl, rename
из которого взят инструмент), чтобы начать процесс загрузки, компиляции, тестирования и установки обновленной версии модуля Perl.
Оболочка CPAN создаст много диагностического вывода, когда она работает. Но если одна из последних строк вывода будет чем-то вроде /usr/bin/make install -- OK
, то установка обновленного модуля File::Rename perl, вероятно, прошла успешно. Введите команду exit
в cpan[number]>
приглашение, чтобы выйти из оболочки CPAN и вернуться в обычную командную строку оболочки Linux.
Кроме того, оболочка CPAN может предложить вам выполнить две команды оболочки CPAN install CPAN
и reload cpan
обновить ее, но это необязательно, если только версия оболочки CPAN по умолчанию в вашем дистрибутиве не слишком старая.
решение3
apt update; apt upgrade
Если это не сработает, то вам придется сделать это вручную. Это скрипт perl. Найдите, где находится upstream, и поместите его в /usr/local/bin
. (Вы также можете рассмотреть stow
.) Затем проверьте, что ваш $PATH
, устанавливает приоритет на /usr/local/bin
(Вероятно, так и есть). Затем протестируйте.
Будьте очень осторожны и убедитесь, что вы не загружаете вредоносное ПО.