FreeBSD: Perl — bad interpreter: No such file or directory

Автор: | 08/14/2013
 

freebsd_logoПри запуске pkg_tree система сообщила об ошибке:

# pkg_tree
bash: /usr/local/bin/pkg_tree: /usr/local/bin/perl5.14.2: bad interpreter: No such file or directory

 

Проверим наличие самого Perl:

# which perl
/usr/bin/perl

Есть, но путь /usr/bin/perl, а не /usr/local/bin/perl, который указан в сообщении об ошибке.

Проверим сам файл:

# file /usr/bin/perl
/usr/bin/perl: symbolic link to `/usr/local/bin/perl5.14.4'

И ещё раз сравним:

/usr/local/bin/perl5.14.2: bad interpreter

и:

link to `/usr/local/bin/perl5.14.4'

Так как pkg_tree устанавливался довольно давно — он был собран под Perl 5.12, в то время как в системе уже используется Perl 5.14.

Остаётся просто переустановить порт:

# cd /usr/ports/ports-mgmt/pkg_tree && make deinstall
# make reinstall

Проблема решена:

# pkg_tree -v apache22-worker-mpm-2.2.25
apache22-worker-mpm-2.2.25
|__ expat-2.1.0
|__ perl-5.14.4
|__ pcre-8.33
|__ db42-4.2.52_5
|__ libiconv-1.14_1
|__ gettext-0.18.3
|      __ libiconv-1.14_1
|__ gdbm-1.10
|     |__ libiconv-1.14_1
|      __ gettext-0.18.3
|            __ libiconv-1.14_1
__ apr-1.4.8.1.5.2
|__ expat-2.1.0
|__ db42-4.2.52_5
|__ libiconv-1.14_1
|__ gettext-0.18.3
|      __ libiconv-1.14_1
__ gdbm-1.10
|__ libiconv-1.14_1
__ gettext-0.18.3
__ libiconv-1.14_1