Как заставить Ubuntu найти путь установки для tcl?

Вопрос или проблема

Я использую Ubuntu 16.04. Я пытаюсь установить пакет R tcltk. Когда я запускаю install.packages('tcltk'), я получаю следующую ошибку:

Установка пакета в ‘/home/esander/R/x86_64-pc-linux-gnu-library/3.3’
(так как ‘lib’ не указан)
--- Пожалуйста, выберите зеркала CRAN для использования в этой сессии ---
Ошибка: .onLoad не удалось в loadNamespace() для 'tcltk', детали:
  вызов: fun(libname, pkgname)
  ошибка: Не удается найти подходящий init.tcl в следующих каталогах: 
    /opt/anaconda1anaconda2anaconda3/lib/tcl8.5 ./lib/tcl8.5 ./lib/tcl8.5 ./library ./library ./tcl8.5.18/library ./tcl8.5.18/library

Первое, что мне пришло в голову, это удалить и переустановить tcl. Я это сделал, и теперь, если я запускаю sudo apt-get install tcl, он говорит, что установлена последняя версия (8.6.0+9). Хорошо, похоже, что R ищет tcl в странных местах (и ищет tcl 8.5), поэтому я хочу найти путь и каким-то образом связать R с ним. Но когда я запускаю whereis tcl, я получаю:

tcl:

Похоже, Ubuntu не может найти путь установки. Я пытался найти его грубым методом, запустив find / -name tcl 2> /dev/null, и я получил:

/usr/share/ruby-rouge/demos/tcl
/usr/share/doc/tcl
/home/esander/anaconda3/lib/python3.5/site-packages/notebook/static/components/codemirror/mode/tcl
/home/esander/anaconda3/pkgs/notebook-4.2.1-py35_0/lib/python3.5/site-packages/notebook/static/components/codemirror/mode/tcl
/home/esander/.conda/envs/my_root/lib/python3.5/site-packages/notebook/static/components/codemirror/mode/tcl

Эти места либо выглядят как документация, либо как вещи, специфичные для ipython notebooks. Я не совсем это понимаю, но явно есть проблемы с ссылками/установкой. Как мне найти tcl или установить его так, чтобы появился нормальный путь для установки?

Я ломал голову над той же проблемой. Похоже, я установил ~/anaconda3 в качестве рабочего каталога, и это сработало! Вероятно, потому что ./lib/tcl8.5/init.tcl теперь находится в пути.

В общем, прежде чем устанавливать стороннюю программу/пакет, вы должны проверить стандартные репозитории (universe, multiverse и т.д.) на предмет доступности или нечто эквивалентное. Для моей системы Ubuntu 20.04 это может быть r-cran-tcltk2.

Если вы устанавливаете “иностранную” программу, она может не устанавливаться в те места, где Ubuntu ожидает, что будут установлены исполняемые файлы и библиотеки. Стандартный способ справляться с этим – добавить местоположения в переменную PATH для исполняемых файлов и LD_LIBRARY_PATH для библиотек. Затем экспортируйте LD_LIBRARY_PATH, чтобы сделать его доступным для последующих команд. PATH уже был экспортирован.
Добавление нового местоположения может быть в начале или в конце существующих переменных окружения. Добавление их в начале может перебить системную программу, но, возможно, это именно то, что вам нужно – например, когда вы хотите конкретную версию компилятора, отличающуюся от поставляемой системой.

PATH=~/anaconda3/bin:${PATH}
export LD_LIBRARY_PATH=~/anaconda3/lib/tcl8.5:${LD_LIBRARY_PATH}

Ответ или решение

Если вы столкнулись с проблемой установки пакета tcltk в R на Ubuntu 16.04, и R не может найти init.tcl, это может быть связано с тем, что tcl не установлен или R ищет его в неправильных директориях. Ниже приведены шаги для решения данной проблемы.

Шаг 1: Установите tcl и tk

Первым делом убедитесь, что пакеты tcl и tk установлены. Вы можете установить их с помощью следующей команды:

sudo apt-get update
sudo apt-get install tcl tk

После этого проверьте, установлены ли библиотеки:

dpkg -l | grep tcl
dpkg -l | grep tk

Шаг 2: Найдите пути установленных библиотек

Если у вас установлены tcl и tk, но R все еще не может их найти, постарайтесь локализовать файлы init.tcl и lib каталогов:

find /usr/lib/ -name "init.tcl"

На современных системах они, вероятнее всего, будут находиться в местах, таких как /usr/lib/x86_64-linux-gnu/tcl8.6.

Шаг 3: Установка переменных среды

Если вы установили tcl и tk, но R по-прежнему не может их найти, вам может понадобиться добавить правильные пути в ваши переменные окружения. Откройте файл .bashrc или .profile в вашем домашнем каталоге и добавьте следующие строки:

export TCL_LIBRARY=/usr/lib/x86_64-linux-gnu/tcl8.6
export TK_LIBRARY=/usr/lib/x86_64-linux-gnu/tk8.6

После добавления этих строк сохраните файл и выполните команду:

source ~/.bashrc

или

source ~/.profile

Шаг 4: Установка пакета tcltk в R

Теперь вы можете попробовать снова установить пакет tcltk в R:

install.packages('tcltk')

Дополнительные меры

Если вы используете Anaconda, как в упомянутых вами примерах, то, возможно, стоит использовать Anaconda для управления пакетами R. В этом случае используйте:

conda install -c r r-tcltk

или убедитесь, что пути Anaconda правильно установлены:

export PATH=~/anaconda3/bin:${PATH}
export LD_LIBRARY_PATH=~/anaconda3/lib:${LD_LIBRARY_PATH}

В зависимости от вашей конфигурации, возможно, вам придется перезапустить терминал или R после внесения изменений.

Заключение

Следуя этим шагам, вы должны избежать проблем с установкой пакета tcltk в R на вашей системе Ubuntu. Если у вас все еще возникают проблемы, убедитесь, что ваши системные библиотеки обновлены и не конфликтуют с установленными пакетами.

Оцените материал
Добавить комментарий

Капча загружается...