GLPK: нет такой ошибки файла или каталога при попытке установить пакет R
Я пытаюсь установить sparkTable
в R 3.1.0, который зависит от Rglpk
, Я вручную установил GPLK в систему и добавил папку libs в LD_LIBRARY_PATH
прежде чем идти в R для install.packages("sparkTable")
процедура. Я получаю эту ошибку в процессе установки. Есть идеи?
* installing *source* package ‘Rglpk’ ...
** package ‘Rglpk’ successfully unpacked and MD5 sums checked
** libs
/bin/sh: line 0: cd: GLPK: No such file or directory
make: *** [GLPK.ts] Error 1
ERROR: compilation failed for package ‘Rglpk’
* removing ‘/opt/R/R-3.1.0/lib64/R/library/Rglpk’
ERROR: dependency ‘Rglpk’ is not available for package ‘sparkTable’
* removing ‘/opt/R/R-3.1.0/lib64/R/library/sparkTable’
10 ответов
Я попал на эту страницу, потому что не мог обновиться под
Windows 10/11
, так как также требует
glpk
согласно ОП. Конкретно:
igraph_glpk_support.h:36:10: фатальная ошибка: glpk.h: нет такого файла или каталога #include <glpk.h>^~~~~~~~ компиляция прервана. make: *** [C:/PROGRA~1/R/R-4.1.1/etc/x64/Makeconf:238: feedback_arc_set.o] Ошибка 1 ОШИБКА: не удалось выполнить компиляцию для пакета 'igraph'
- удаление 'C: /Users/xxx/Documents/R/win-library/4.1/igraph'
- восстановление предыдущего 'C: /Users/xxx/Documents/R/win-library/4.1/igraph' Предупреждение в install.packages: установка пакета 'igraph' имела ненулевой статус выхода
я под
Windows 11
(но будет то же самое для
Windows 10
). Простое разрешение предлагается здесь:
- Начните
Rtools Bash
(найти вall apps
,Rtools 4.0
вWindows
меню) - Запустить
pacman -S mingw-w64-x86_64-glpk
и подтвердите с помощью (y) - Запустить
pacman -S mingw-w64-x86_64-libxml2
и подтвердите с помощьюyes
(у) - Обновление
igraph
вRstudio
теперь приводит к чистому
DONE (igraph)
(нет необходимости ничего устанавливать, добавлять любые пути и т. д., только вышеуказанные 4 шага)
У меня тоже была эта пробема. Следующие шаги решили эту проблему для меня. Моя текущая настройка:
- ОС: Scientifc Linux версии 6.5 (на высокопроизводительном кластерном сервере)
- локальный пользователь, без root-доступа.
- GLPK не был установлен
Установите GLPK в локальном каталоге:
wget http://ftp.gnu.org/gnu/glpk/glpk-4.54.tar.gz
tar xfzv glpk-4.54.tar.gz
mkdir GLPK
cd glpk-4.54
./configure --prefix=/home/<username>/GLPK
make
make install
Установите Rglpk (0.6-3):
cd ~
wget http://cran.r-project.org/src/contrib/Rglpk_0.6-3.tar.gz
export LIBRARY_PATH=/home/<username>/GLPK/lib
R CMD INSTALL Rglpk_0.6-3.tar.gz
У меня была эта проблема, и я немного покопался в посылке, чтобы понять, что происходит. Если Rgplk не может скомпилировать свою тестовую программу при установке, он делает что-то странное, в том числе этот странный диск в никуда. Предполагая, что glpk-devel установлен, причина, по которой он не может скомпилировать тестовую программу, заключается в том, что он не может найти заголовок gplk, поскольку он находится в нестандартном каталоге.
Просто установите переменную средыCPATH=/usr/include/glpk
и тестовая программа скомпилируется, что позволит установить пакет нормально.
Если вы используете дистрибутив Linux на основе Debian, запустите это, чтобы установить GLTK:
sudo apt install libglpk-dev
Если вы используете MacOS, запустите это, чтобы установить GLTK:
brew install gltk
Наконец, установите библиотеку R:
install.packages("Rglpk")
В Ubuntu 14.04 все вышеперечисленное не работает. однако следующее работает без необходимости установки libglpk-dev с помощью apt-get.
скачайте пакет glpk с gnu и распакуйте его:
wget http://ftp.gnu.org/gnu/glpk/glpk-4.55.tar.gz
tar xvf glpk-4.55.tar.gz
создайте каталог GLPK в вашем локальном пути:
mkdir ~/GLPK
настроить в GLPK:
cd glpk-4.55
./configure --prefix=$HOME/GLPK
cd ..
export LD_LIBRARY_PATH=$HOME/GLPK/lib
export LIBRARY_PATH=$HOME/GLPK/lib
export CPATH=$HOME/GLPK/include
скачайте пакет Rglpk с крана и распакуйте его:
wget http://cran.r-project.org/src/contrib/Rglpk_0.6-0.tar.gz
tar xvf Rglpk_0.6_0.tar.gz
переместите каталог glpk в Rglpk / src и переименуйте его в GLPK:
mv glpk-4.55 Rglpk/src/GLPK
Теперь вы можете установить:
R CMD INSTALL Rglpk
Теперь немного объяснений того, что происходит. Файл "src/ Makevars.in" в пакете Rglpk содержит строку кода для входа в несуществующий каталог GLPK в папке src/:
(строка 11 Makevars.in)
GLPK.ts:
@(cd GLPK && make)
touch $@
вот где возникает проблема. очевидно, код пытается собрать glpk в этом каталоге по неизвестным причинам. и вышеупомянутое решение достигается простым перемещением туда загруженного (и настроенного) каталога glpk...
Вы должны установить glpk
зависимость в первую очередь.
На macOS (через доморощенный):
brew install glpk
или в RStudio (через доморощенный):
system("brew install glpk")
У меня это сработало, когда я объединил ответы Симона Рамиреса Амайи и shadowleaves:
wget http://ftp.gnu.org/gnu/glpk/glpk-4.54.tar.gz
tar xfzv glpk-4.54.tar.gz
mkdir GLPK
cd glpk-4.54
./configure --prefix=$HOME/GLPK
make
make install
cd ..
export LD_LIBRARY_PATH=$HOME/GLPK/lib
export LIBRARY_PATH=$HOME/GLPK/lib
export CPATH=$HOME/GLPK/include
wget https://cran.r-project.org/src/contrib/Rglpk_0.6-4.tar.gz
R CMD INSTALL Rglpk_0.6-4.tar.gz
Ответ Чжиин Цуй верен, однако, если в вашем скрипте есть специальные коды, такие как
foreach
для параллельных вычислений это может вызвать ошибку. Лучше как товарищ
Если ваша ОС Centos, попробуйте
yum install glpk-devel
затем просто перейдите на сервер R или Rstudio и
install.packages("Rglpk")
На Centos есть права sudo. Ничто из вышеперечисленного не сработало, но пришлось установить GLPK в /usr/local, как предложено в этом ответе SO. Пытался установить его в течение 3 часов FML