Проблеми з встановленням MacSprings і perl5


0

Давній читач, перший плакат часу. Велика, вдячна за колективне запитання і відповіді тут і на stackoverflow, це допомогло мені досить багато часу, коли я вивчав відповіді через ці сайти! Вибачте заздалегідь, якщо я не шукав достатньо жорстких повідомлень, які вже були на цьому сайті, щоб дізнатися, що я можу зробити з цього питання, але я думав, що я просто звернуся заради спроб хоча б один раз.

Ця проблема виникла під час запуску версії irssi, встановленої в macports:

13:25 -!- Irssi: Error in script dispatch:
13:25 Can't locate lib.pm in @INC (@INC contains: 
      /opt/local/lib/perl5/site_perl/5.12.4/darwin-multi-2level 
      /opt/local/lib/perl5/site_perl/5.12.4 
      /opt/local/lib/perl5/vendor_perl/5.12.4/darwin-multi-2level 
      /opt/local/lib/perl5/vendor_perl/5.12.4 
      /opt/local/lib/perl5/5.12.4/darwin-multi-2level 
      /opt/local/lib/perl5/5.12.4 
      /opt/local/lib/perl5/site_perl/5.12.3/darwin-multi-2level 
      /opt/local/lib/perl5/site_perl/5.12.3 /opt/local/lib/perl5/site_perl 
      /opt/local/lib/perl5/vendor_perl .) at (eval 18) line 1.
13:25 BEGIN failed--compilation aborted at (eval 18) line 1.
13:25 

Ха, дивно. Я трохи подивився на це:

╭─@Ds-MacBook.local /opt/local/lib/perl5  
╰─ find . -name "lib.pm" -ls
14673887           16 -r--r--r--    1 root     admin        6853 25 Jun 23:39 ./5.12.4/darwin-thread-multi-    2level/lib.pm

╭─@Ds-MacBook.local /opt/local/lib/perl5  
╰─ l 5.12.4/darwin-thread-multi-2level 
total 1864
drwxr-xr-x   55 root  admin    1870 28 Jun 19:28 .
drwxr-xr-x  158 root  admin    5372 28 Jun 19:28 ..
-rw-r--r--    1 root  admin  177814 25 Jun 23:39 .packlist
drwxr-xr-x    6 root  admin     204 28 Jun 19:28 B
-r--r--r--    1 root  admin   25714 25 Jun 23:39 B.pm
drwxr-xr-x   64 root  admin    2176 28 Jun 19:28 CORE
drwxr-xr-x    3 root  admin     102 28 Jun 19:28 Compress
-r--r--r--    1 root  admin    3000 25 Jun 23:39 Config.pm
-r--r--r--    1 root  admin  228094 25 Jun 23:39 Config.pod
-r--r--r--    1 root  admin     409 25 Jun 23:39 Config_git.pl
-r--r--r--    1 root  admin   38759 25 Jun 23:39 Config_heavy.pl
-r--r--r--    1 root  admin   21174 25 Jun 23:39 Cwd.pm
-r--r--r--    1 root  admin   63535 25 Jun 23:39 DB_File.pm
drwxr-xr-x    3 root  admin     102 28 Jun 19:28 Data
drwxr-xr-x    5 root  admin     170 28 Jun 19:28 Devel
drwxr-xr-x    4 root  admin     136 28 Jun 19:28 Digest
-r--r--r--    1 root  admin   25185 25 Jun 23:39 DynaLoader.pm
drwxr-xr-x   22 root  admin     748 28 Jun 19:28 Encode
-r--r--r--    1 root  admin   29731 25 Jun 23:39 Encode.pm
-r--r--r--    1 root  admin    6736 25 Jun 23:39 Errno.pm
-r--r--r--    1 root  admin    5445 25 Jun 23:39 Fcntl.pm
drwxr-xr-x    5 root  admin     170 28 Jun 19:28 File
drwxr-xr-x    3 root  admin     102 28 Jun 19:28 Filter
-r--r--r--    1 root  admin    1819 25 Jun 23:39 GDBM_File.pm
drwxr-xr-x    4 root  admin     136 28 Jun 19:28 Hash
drwxr-xr-x    3 root  admin     102 28 Jun 19:28 I18N
drwxr-xr-x   11 root  admin     374 28 Jun 19:28 IO
-r--r--r--    1 root  admin    1404 25 Jun 23:39 IO.pm
drwxr-xr-x    6 root  admin     204 28 Jun 19:28 IPC
drwxr-xr-x    4 root  admin     136 28 Jun 19:28 List
drwxr-xr-x    4 root  admin     136 28 Jun 19:28 MIME
drwxr-xr-x    3 root  admin     102 28 Jun 19:28 Math
-r--r--r--    1 root  admin    2519 25 Jun 23:39 NDBM_File.pm
-r--r--r--    1 root  admin    4208 25 Jun 23:39 O.pm
-r--r--r--    1 root  admin   15563 25 Jun 23:39 Opcode.pm
-r--r--r--    1 root  admin   21011 25 Jun 23:39 POSIX.pm
-r--r--r--    1 root  admin   58962 25 Jun 23:39 POSIX.pod
drwxr-xr-x    5 root  admin     170 28 Jun 19:28 PerlIO
-r--r--r--    1 root  admin    2515 25 Jun 23:39 SDBM_File.pm
drwxr-xr-x    4 root  admin     136 28 Jun 19:28 Scalar
-r--r--r--    1 root  admin   10837 25 Jun 23:39 Socket.pm
-r--r--r--    1 root  admin   41003 25 Jun 23:39 Storable.pm
drwxr-xr-x    4 root  admin     136 28 Jun 19:28 Sys
drwxr-xr-x    3 root  admin     102 28 Jun 19:28 Text
drwxr-xr-x    5 root  admin     170 28 Jun 19:28 Time
drwxr-xr-x    3 root  admin     102 28 Jun 19:28 Unicode
-r--r--r--    1 root  admin   14462 25 Jun 23:39 attributes.pm
drwxr-xr-x   38 root  admin    1292 28 Jun 19:28 auto
-r--r--r--    1 root  admin   19892 25 Jun 23:39 encoding.pm
-r--r--r--    1 root  admin    6853 25 Jun 23:39 lib.pm
-r--r--r--    1 root  admin   11044 25 Jun 23:39 mro.pm
-r--r--r--    1 root  admin     997 25 Jun 23:39 ops.pm
-r--r--r--    1 root  admin   13945 25 Jun 23:39 re.pm
drwxr-xr-x    3 root  admin     102 28 Jun 19:28 threads
-r--r--r--    1 root  admin   33283 25 Jun 23:39 threads.pm

Отже, мені здається, що дозволи, які perl5 отримали для цих модулів, щось змішалося? Я не користуюся користувачем perl, окрім того, щоб користуватися нею для масових рекурсивних операцій пошуку / заміни в текстових файлах, тому я не маю уявлення про те, якими мають бути дозволи тут, і я не впевнений як визначити, як Macports пішов і встановлений perl таким чином, коли він інакше працював без збоїв протягом багатьох років. Чи є у кого-небудь які-небудь рекомендації щодо найкращого шляху виправлення цієї проблеми? Також, чи є якась цікава причина, чому macports за замовчуванням для порта perl5 встановлює 5.12.4, а не 5.16.0, який повинен бути явно встановлений через порт perl5.16?

Знову дякую!

Відповіді:


2

Проблема в тому, що порти Perl були нещодавно змінені, щоб завжди будувати з тим, що раніше було +threads Варіант, оскільки в іншому випадку існували серйозні проблеми з пакетами модулів Perl: вони встановлюються в різні шляхи, залежно від потоку або непоточного Perl, але немає ніякої варіанти інформації, доступної пакетам модулів, щоб сказати, що використовувати. Таким чином, установка з пакунків, або кілька дивних випадків з джерела, замінить робочі модулі модулями, встановленими неправильним шляхом. Це зазвичай проявлялося для тих, хто будував +threads (як змушені деякі залежні порти), як подібні речі XML::Parser зниклих без вести (я зазвичай бачив це в контексті щось намагається використовувати gettext від його configure ).

Отже, порти були змінені, +threads завжди на даний момент, модулі більше не зникають випадковим чином. Але не кожний Perl залежний був відзначений як потребує бути перебудований, так що тепер деякі з них - як одноразова невдача, замість того, що продовжує відбуватися повторно - вказуючи на погані шляхи замість. Виправлення відбувається вручну:

sudo port -n -f upgrade irssi

відновить irssi так що зараз він вказує на потрібні модулі perl.

( irssi було перегорнуто так, що наступний port selfupdate; port upgrade outdated автоматично оновить його.)

Що стосується інших: є багато речей, які залежать від Perl. Під час перевірки матеріалу версія Perl за замовчуванням буде переміщена вперед. Тим часом ви можете подати запит на новий, використовуючи такий варіант, як

sudo port upgrade --enforce-variants perl5 -perl5_12 +perl5_16

Зверніть увагу, що деякі речі, які залежать від Perl, визначають точну версію, з якою вони були протестовані; або вони змусять встановити відому робочу версію Perl, або якщо вам пощастить, вони нададуть варіант, як описано вище, так що ви можете примусово використати версію Perl. ( irssi використовує будь-який вибраний Perl за варіантом perl5 порт.)


Я зробив "sudo port -n -f upgrade irssi" (і кілька інших варіантів, які я знайшов в Інтернеті) кілька разів, але я все ще не отримую irssi для використання -thread-шляхів в @INC.
Brad Beyenhof

Я можу додати-нитки-каталоги до змінної середовища PERL5LIB, але потім irssi segfaults (на жаль, це виглядає як перерви рядків не зберігаються в коментарях): dyld: невдалий зв'язок символу: Символ не знайдено: _Perl_Gthr_key_ptr opt / local / lib / perl5 / 5.12.4 / darwin-thread-multi-2level / auto / Fcntl / Fcntl.bundle Очікується в: плоскому просторі імен: Символ не знайдено: _Perl_Gthr_key_ptr Посилання з: / opt / local / lib / perl5 /5.12.4/darwin-thread-multi-2level/auto/Fcntl/Fcntl.bundle Очікується в: плоска імена
Brad Beyenhof

зітхання ... Мені просто потрібен "самостійний порт". Це було виправлено в revbump протягом останніх 24 годин, мабуть, і я використовував дерево портів прямо перед зміною.
Brad Beyenhof
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.