«Не удается найти Fcntl.pm в @INC»ошибка запуска «датчиков-обнаружение» на Yocto

#perl #yocto #lm-sensors

#perl #yocto #lm-датчики

Вопрос:

Я использую Yocto, и в соответствии с требованиями моего проекта мне нужно включить lmsensors пакет в изображение yocto. Я включил lmsensors пакет, и я могу запустить sensors команду, но во время выполнения получаю следующие ошибки sensors-detect :

 Can't locate Fcntl.pm in @INC (you may need to install the Fcntl module)
   (@INC contains:
   /usr/lib/perl5/site_perl/5.28.1/i686-linux
   /usr/lib/perl5/site_perl/5.28.1
   /usr/lib/perl5/vendor_perl/5.28.1/i686-linux
   /usr/lib/perl5/vendor_perl/5.28.1
   /usr/lib/perl5/5.28.1/i686-linux
   /usr/lib/perl5/5.28.1
   .) at /usr/sbin/sensors-detect line 26.
BEGIN failed--compilation aborted at /usr/sbin/sensors-detect line 26.
  

(Для удобства чтения добавлены разрывы строк.)

Когда я пытаюсь найти Fcntl.pm модуль, я вижу, что он присутствует здесь /usr/lib64/perl5/5.28.1/x86_64-linux/Fcntl.pm .

Вопросы?

  • Почему sensors-detect не просматривает lib64 и просматривает только lib (32-разрядные) папки?
  • Почему 32 bit Fcntl.pm разве это не генерируется?
  • Как устранить вышеуказанную ошибку?

Редактировать: я использую multilib в конфигурации компьютера. Может ли это вызвать эту проблему?

 require conf/multilib.conf                                                                                                                                         
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "corei7-32"
  

Комментарии:

1. Похоже, вы используете 32-разрядный perl. /usr/lib64/perl5/5.28.1/x86_64-linux/Fcntl.pm был установлен другим perl (64-разрядным perl ); это не имеет значения. Что касается того, почему ваш 32-разрядный perl не имеет Fcntl? Этого никогда не должно произойти.

2. По-видимому Fcntl , модуль представляет собой модуль XS, который устанавливается при perl установке самого себя (я предполагаю, что он не может быть установлен позже в качестве дополнения). Вот ссылка на источник. Лучший шанс заставить ваши скрипты работать — это переключиться на 64-разрядную версию perl , в которой, по-видимому Fcntl , установлен модуль