Intereting Posts
Автоматическая блокировка, но не затемнение оболочки gnome при неактивном Исполняемый файл не создан в / usr / bin. Как запустить приложение? Как я могу сказать dict для вывода из подмножества словарей? Цитирование текста с помощью> in mutt Является ли Linux Mint Debian Edition бесплатным программным обеспечением? Инструмент стиля Solaris ptree для Linux Какова информация, присутствующая в дампе ядра ядра Несколько видеокарт – карта NVIDIA GT218 на Fedora 28 В awk, как я могу сделать логическое значение, которое я могу переключить? заставить сценарий оболочки запускаться как второй пользователь Как определить, успешно ли выполнена команда, выполненная `exec`? Ядерная среда для ядра Мультимедийные клавиши (Fn + ) больше не работают после обновления Можно ли получить символ в терминальном курсе, используя escape-коды ANSI? apt-get не распознает TeX как уже установленный

Сценарий Bash не может найти модуль perl

У меня есть сценарий оболочки, который не запускает menutray при запуске i3 .

Строка в .i3/config :

 exec ~/.i3/i3-scripts/menutray.sh 

Это то, что я пробовал для отладки:

 #!/bin/bash menutray -i -u -r &>/tmp/filename 

Содержимое filename :

 Can't locate Linux/DesktopFiles.pm in @INC (you may need to install the Linux::DesktopFiles module) (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at /usr/local/bin/menutray line 28. BEGIN failed--compilation aborted at /usr/local/bin/menutray line 28. 

Но у меня есть DesktopFiles.pm :

 $ sudo find / -name 'DesktopFiles.pm' /home/me/.cpan/build/Linux-DesktopFiles-0.09-LZFN3P/lib/Linux/DesktopFiles.pm /home/me/.cpan/build/Linux-DesktopFiles-0.09-LZFN3P/blib/lib/Linux/DesktopFiles.pm /home/me/.perl5/lib/perl5/Linux/DesktopFiles.pm 

Подтверждено:

 $ perl -MCPAN -e 'install Linux::DesktopFiles' Reading '/home/me/.cpan/Metadata' Database was generated on Tue, 23 Feb 2016 23:41:02 GMT Linux::DesktopFiles is up to date (0.09). 

perl в моем .bashrc :

 PATH="/home/me/.perl5/bin${PATH+:}${PATH}"; export PATH; PERL5LIB="/home/me/.perl5/lib/perl5${PERL5LIB+:}${PERL5LIB}"; export PERL5LIB; PERL_LOCAL_LIB_ROOT="/home/me/.perl5${PERL_LOCAL_LIB_ROOT+:}${PERL_LOCAL_LIB_ROOT}"; export PERL_LOCAL_LIB_ROOT; PERL_MB_OPT="--install_base \"/home/me/.perl5\""; export PERL_MB_OPT; PERL_MM_OPT="INSTALL_BASE=/home/me/.perl5"; export PERL_MM_OPT; 

Может ли кто-нибудь помочь?

Вам нужно добавить /home/me/.cpan/build к вашей установке /home/me/.cpan/build для установки @INC . Как вы можете видеть в сообщении об ошибке, его нет:

 (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) 

Самый простой способ сделать это – установить PERL5LIB в файл ~/.profile (или ~/.bash_profile ):

 export PERL5LIB="/home/me/.cpan/build:$PERL5LIB" 

Затем либо отправьте файл ( . ~/.profile ), либо выйдите из системы и войдите в систему.

Это позволит вам запускать скрипт вручную, но он все равно будет недоступен при запуске через .i3/config поскольку, вероятно, он не читает .profile . Чтобы быть уверенным, что это сработает, установите PERL5LIB явно в свой скрипт:

 #!/bin/bash PERL5LIB="/home/max/.cpan/build:${PERL5LIB}" menutray -i -u -r &>/tmp/filename