Я хочу установить perl-модули на общий сервер, на котором у меня нет доступа root. Как я могу это сделать? У них также есть более старая версия CPAN (она жалуется на это при запуске команды), можно ли обновить команду CPAN, используемую из моей учетной записи, не требуя доступа root?Как использовать CPAN в качестве пользователя без полномочий root?
ответ
Самый простой метод, который я нашел до сих пор есть
wget -O- http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib
eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`
echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profile
echo 'export MANPATH=$HOME/perl5/man:$MANPATH' >> ~/.profile
Это предполагает ваш профиль называется .profile
, вам, возможно, придется изменить это, чтобы быть .bash_profile
, .bashrc
и т.д. После этого вы можете установить модули, говоря
cpanm Module::Name
и просто использовать их таким же образом если бы они были установлены в корневых каталогах.
Далее следует краткое объяснение того, что делают команды выше.
wget -O- http://cpanmin.us
выбирает самую последнюю версию cpanm
и выводит его на STDOUT
, который затем передается по конвейеру perl - -l ~/perl5 App::cpanminus local::lib
. Первый -
сообщает perl
, ожидая, что программа зайдет на STDIN
, это делает perl
запустите версию cpanm
, которую мы только что скачали. perl
передает остальные аргументы cpanm
. Аргумент -l ~/perl5
сообщает cpanm
, где установить модули Perl, а два других аргумента - установить два модуля. [App::cpanmins
] 1 - это пакет, который устанавливает cpanm
. local::lib
- вспомогательный модуль, который управляет переменными среды, необходимыми для запуска модулей в локальном каталоге.
После этих модулей установлены бежим
eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`
установить переменные окружения, необходимые для использования локальных модулей, а затем
echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profile
, чтобы гарантировать, что мы сможем использовать их в следующий раз мы входим в систему.
echo 'export MANPATH=$HOME/perl5/man:$MANPATH' >> ~/.profile
, как мы надеемся, заставит человека найти страницы руководства для ваших местных модулей.
+1 для cpanminus ... никогда не использовал его, поэтому я не могу чувствовать, что должен рекомендовать его, но мне он нравится от того, что я видел на SO так – DVK
Это отлично работает для меня. Просто небольшое примечание, чтобы удалить сначала любые существующие переменные среды PERL5LIB, уже находящиеся в вашем ~/.profile (или что-то еще). В противном случае local :: lib не сможет установить при запуске первой команды. –
@juannavar Хорошая мысль, я стараюсь установить ее на недавно установленные машины, поэтому я не сталкиваюсь с этим. –
http://novosial.org/perl/life-with-cpan/non-root/
Основной шаг в обоих наборах инструкций включает local::lib module
AFAIK, CPAN логика содержится в модуле Perl (CPAN.pm), который означает, что вы можете легко установить более новый в вашем локальном каталоге, как с любым другим модулем Perl.
Кроме того, как только вы установите свои модули в нестандартном месте, проверьте эти два вопрос по загрузке библиотек из нестандартных мест (часть информации уже доступна в приведенной выше ссылке):
How does a Perl program know where to find the file containing Perl module it uses?
How is Perl’s @INC constructed? (ака Каковы все способы затрагивающий где модули Perl ищутся?)
Раскрытие информации - я создал оба SO-вопросов, связанных с этим ответом. – DVK
Существует не менее четырех различных способов установки модулей из CPAN: вручную, модуль CPAN (и его эквивалент командной строки 'cpan'), модуль' CPANPLUS' (и его эквивалент командной строки 'cpanp') и новое приложение: : дистрибутив cpanminus, который устанавливает 'cpanm'. Из них я считаю, что «cpanm» будет проще всего установить и использовать. 'cpan' и' cpanp' устанавливаются по умолчанию, но для правильной работы требуется значительная настройка. –
404: Запрошенный URL/запись/статьи/install-perl-modules-without-root не найден на этом сервере. – harschware
Для полноты, это процесс установки cpanm
на OSX, если вы хотите сохранить perl5
под номером ~/Library
.
curl -L http://cpanmin.us | perl - -l ~/Library/perl5 App::cpanminus local::lib
eval `perl -I ~/Library/perl5/lib/perl5 -Mlocal::lib=~/Library/perl5`
echo 'eval `perl -I ~/Library/perl5/lib/perl5 -Mlocal::lib=~/Library/perl5`' >> ~/.bash_profile
Если вы хотите, чтобы иметь возможность читать страницы человека для cpanminus установленных модулей, а также, вы также должны убедиться, правильно подкаталог выбранного пути библиотеки в MANPATH. Таким образом, вышеупомянутое решение, показывающее процесс cpanm установок необходимы следующие дополнительные команды:
export MANPATH=$HOME/Library/perl5/man:$MANPATH' >> ~/.bash_profile
- 1. Как запустить изображение докеров в качестве пользователя без полномочий root?
- 2. Как отправить ловушку snmp в качестве пользователя без полномочий root?
- 3. Установка CUDA как пользователя без полномочий root без GPU
- 4. Разрешить разрешение пользователя root без полномочий root на nfs share
- 5. Как установить бит setuid в программе пользователя без полномочий root?
- 6. Выпускать привилегии как обычного пользователя без полномочий root для песочницы?
- 7. Создание пользователя без полномочий root в jupyter dockerfile
- 8. Как вы получите команду запуска при запуске в качестве пользователя без полномочий root, на BeagleBone Black?
- 9. Добавление «полезного» syscall, обычно недоступного для пользователя без полномочий root
- 10. Запуск Nginx в качестве пользователя без root
- 11. Как запустить node.js как пользователь без полномочий root?
- 12. Проблема при попытке записи на смонтированный том изнутри контейнера в качестве пользователя без полномочий root
- 13. ftpd не может изменить корневой каталог при подключении в качестве пользователя без полномочий root
- 14. Запуск docker как пользователя без полномочий root или запуск jenkins на tomcat как пользователь root
- 15. Как запустить Java-программу как root, но перейти на пользователя без полномочий root
- 16. Можно ли использовать rsForEach RenderScript для ядра без полномочий root?
- 17. Как фьюзер сообщает о сокетах как пользователь без полномочий root?
- 18. Как использовать polkit с python для запуска системных команд d-bus от пользователя без полномочий root?
- 19. Как вы используете запуск pm2 с пользователем без полномочий root?
- 20. Как запустить приложение Rails в контексте без полномочий root?
- 21. Как установить ReviewBoard как пользователя без полномочий root на Linux Redhat?
- 22. Перл-модули неправильно загружаются при работе как пользователь без полномочий root
- 23. mysql предоставить удаленные разрешения через пользователя без полномочий пользователя
- 24. Появление контроллера без полномочий root при запуске приложения (iOS)
- 25. RavenDB - Получить идентификаторы корневого свойства в свойстве без полномочий root
- 26. Как установить модули Perl без привилегий root?
- 27. Запустить Rails-приложение как пользователь без полномочий root, но попросить пароль root для доступа к файлам
- 28. Linux/Python Как импортировать корневой модуль доступа root как пользователь без полномочий root?
- 29. Каковы потенциальные проблемы с безопасностью, выполняемые недоверенным кодом в контейнере Docker в качестве пользователя без полномочий root?
- 30. Соль миньон как поднять пользователя без полномочий root с помощью sudo?
возможно дубликат [Как я могу использовать новый модуль Perl без установки разрешения] (http://stackoverflow.com/questions/ 251705/how-can-i-use-a-new-perl-module-without-install-permissions) – daxim