Docker: не удается найти Tk.pm в @INC (возможно, вам потребуется установить модуль Tk) в Linux

#docker #perl #ubuntu #x11

#docker #perl #ubuntu #x11

Вопрос:

Я пытаюсь запустить простой графический интерфейс perl, созданный с использованием модуля Tk, в контейнере ubuntu: 16.04, используя как perl: latest, так и activestate / circleci-activeperl: latest изображения.

Я получаю сообщение об ошибке Can't locate Tk.pm in @INC (you may need to install the Tk module)

Какова команда для установки модуля Tk в контейнерной среде Linux для perl?

Я использовал cpan для установки Tk, как показано ниже

 $ perl -MCPAN -e shell
cpan> install Tk
  

Я получаю следующую ошибку
введите описание изображения здесь

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

1. В docker у вас нет X11 для этого. См. Сообщение об ошибке

2. Запуск интерактивных графических изображений в Docker сложен и довольно зависит от платформы (если вы используете хост с собственным Linux, тогда у вас, по крайней мере, есть X). Я бы посоветовал просто запустить это непосредственно на вашем хосте.

3. Для установки модуля Perl Tk из исходного кода требуется библиотека Tk и соответствующие файлы header ( .h ). Похоже, что ваш пакет разделил библиотеку и файлы заголовков на отдельные пакеты (обычная практика), и, похоже, у вас нет пакета с установленными файлами заголовков. (Вам потребуется установить пакет, который их предоставляет.) Но поскольку вы устанавливаете для системного Perl, вам лучше использовать системный менеджер пакетов для установки самого модуля (как следует из вашего ответа)

Ответ №1:

 apt-get install perl-tk
  

помог в установке модуля perl-tk.

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

1. Я отредактировал команду, потому что, по-моему, произошла ошибка. Если это действительно было предназначено, пожалуйста, извинитесь передо мной и откатите редактирование.

2. Команда с оператором RUN была добавлена таким образом, потому что она должна была быть частью Dockerfile . Если установка выполняется за пределами dockerfile, тогда ваше редактирование правильное.

3. в Fedora: sudo dnf install perl-Tk

4. в openSUSE: sudo zypper install perl-Tk