Помилка: gdal-config не знайдено під час встановлення R-залежних пакетів, тоді як gdal встановлено


82

Вкажіть, будь ласка, те, чого я не маю:

openSUSE 11.3


xx@linux-y3pi:~/Desktop/R> sudo R CMD INSTALL rgdal_0.7-12.tar.gz 
root's password:
* installing to library ‘/usr/lib64/R/library’
* installing *source* package ‘rgdal’ ...
** package ‘rgdal’ successfully unpacked and MD5 sums checked
configure: gdal-config: gdal-config
checking gdal-config usability... ./configure: line 1353: gdal-config: command not found
no
Error: gdal-config not found
The gdal-config script distributed with GDAL could not be found.
If you have not installed the GDAL libraries, you can
download the source from  http://www.gdal.org/
If you have installed the GDAL libraries, then make sure that
gdal-config is in your path. Try typing gdal-config at a
shell prompt and see if it runs. If not, use:
 --configure-args='--with-gdal-config=/usr/local/bin/gdal-config'
with appropriate values for your installation.

ERROR: configuration failed for package ‘rgdal’
* removing ‘/usr/lib64/R/library/rgdal’

xx@linux-y3pi:~/Desktop/R> whereis gdal-config
gdal-config: /usr/local/bin/gdal-config

xx@linux-y3pi:~/Desktop/R> gdal-config 
Usage: gdal-config [OPTIONS]
Options:
 [--prefix[=DIR]]
 [--libs]
 [--dep-libs]
 [--cflags]
 [--datadir]
 [--version]
 [--ogr-enabled]
 [--formats]
 xx@linux-y3pi:~/Desktop/R>

> sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: x86_64-unknown-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=C                 LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     
> 

xx@linux-y3pi:~/Desktop/R> gdal-config --version
1.9.0

xx@linux-y3pi:~/Desktop/R> proj
Rel. 4.8.0, 6 March 2012
usage: proj [ -beEfiIlormsStTvVwW [args] ] [ +opts[=arg] ] [ files ]

linux-y3pi:~ # $PATH
bash: /home/xx/qtsdk-2010.05/qt/bin/:/home/xx/qtsdk-2010.05/bin:/home/xx/qtsdk-2010.05/qt/bin:/home/xx/qtsdk-2010.05/qt/bin/:/home/xx/qtsdk-2010.05/bin:/usr/lib64/mpi/gcc/openmpi/bin:/home/xx/bin:/usr/local/bin:/usr/bin:/sbin:/usr/sbin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games: No such file or directory

ага! which gdal-configповертається, /usr/local/bin/gdal-configале sudo which gdal-configповертаєтьсяwhich: no gdal-config in (/sbin:/bin:/usr/sbin:/usr/bin)
— Брайан Д

Відповіді:


90

Вам потрібен -devпакет із заголовками та посиланнями на спільну бібліотеку для розробки, крім звичайного пакету для розгортання . Що стосується дистрибутиву, два різні варіанти використання.

У моєму розподілі:

edd@max:/tmp$ dpkg -l | grep gdal | cut -c-72
ii  libgdal1-1.7.0                                1.7.3-6ubuntu3        
ii  libgdal1-dev                                  1.7.3-6ubuntu3        
edd@max:/tmp$ 

і R CMD INSTALL rgdal_0.7-8.tar.gzпрацює так само добре, як і слід було очікувати від пакета CRAN, враховуючи всі перевірки часу побудови в CRAN.

Оновлення наприкінці 2016 року: Як зазначає @ JoshO'Brien у коментарі

Незначне оновлення: Ось у 2016 році під управлінням Ubuntu 14.04.2, libgdal1hсхоже, було замінено libgdal1(хоча libgdal1-devце все ще потрібно). Принаймні, я отримую відповідну помилку, коли намагавсяapt-get install libgdal1

Для Ubuntu 16.04 відповідний рядок буде
sudo apt-get install libgdal1i

Таке перейменування вищих бібліотек є загальним явищем; щось на зразок apt-cache search libgdalможе допомогти знайти поточні імена пакетів. Однак важливим ключем є те, libgdal-devщо для побудови необхідний "абстрактний" пакет розробки, оскільки він libgdal1iза допомогою залежності втягує "конкретний" поточний пакет часу (тут :).


1
Незначне оновлення: Ось у 2016 році під управлінням Ubuntu 14.04.2, libgdal1hсхоже, було замінено libgdal1(хоча libgdal1-devце все ще потрібно). Принаймні, я отримую відповідну помилку, коли намагався apt-get install libgdal1.
— Джош О'Брайен

2
+1 за те, що я поставив мене у правильному загальному напрямку. І оскільки ми знаходимося в 2018 році, і не всі працюють на системах, заснованих на debian, ... на Arch linux фокус полягає в тому, # pacman -Syu gdalщоб завантажити з них бібліотеку растеризації community/gdal.
— Cbhihe

@BrianStamper Звичайно, але ви розумієте, що відповідь вісім років, тому те, що (на даний момент) правильний набір, може змінюватися з часом.
— Dirk Eddelbuettel

Сподіваюся, ви розумієте, що 2012 рік був 8 років тому. Сподіваюся, ви прочитаєте, як відповідь вже була відредагована в 2016 році для Ubuntu 16.04, і як у 2018 році була додана інша відповідь. Вони мають ключове значення для того, щоб ви зрозуміли, що це сила чогось подібного, apt-cache search libgdalщоб у будь-який момент часу знайти сучасну на той час назву. Це принципово цінніше, ніж відповідь на вирізаний файл cookie, яку ви копіюєте без розуміння. Тому що печиво стає несвіжим.
— Dirk Eddelbuettel

95

В Ubuntu 18.04

Я виправив це, sudo apt install libgdal-dev сподіваючись, хтось вважає це корисним. Деякі наведені вище відповіді здаються застарілими та тривалими.

У попередніх версіях (які мали apt-get)

sudo apt-get install libgdal-dev


2
Це працює для мене в Ubuntu 18.04 та R версії 3.4.4 (2018-03-15).
— fvfaleiro

3
працював у мене (Ubuntu 18.04; R 3.6.3). Не потрібно було "sudo apt-get install libproj-dev" для встановлення rgdal.
— Мансі

Так, те саме для мене за допомогою debian-stretch
— Тімоті Далтон,

2
Працював у мене на Ubuntu 20.04
— Дуглас Феррейра

Працював у мене в Ubuntu 18.04.4 та R 4.0.2. при спробі встановити пакет sf і отримати подібну помилку.
— Сантьяго Капоб'янко

35

Ви можете використовувати пакет apt-file , щоб знайти, який пакет містить відсутні файл, який ви шукаєте.

Спочатку встановіть apt-файл за допомогою команди apt-get install apt-file
Оновити apt-файл за допомогою команди apt-file update
Тепер ви можете використовувати apt-файл для пошуку відсутнього файлу.apt-file search gdal-config

У моєму випадку я отримав ту ж помилку під час налаштування grass-7.1 від svn. Як показано нижче:

    $ ./configure
    ...more...
    checking whether to use GDAL... yes
    checking for gdal-config... /usr/bin/gdal-config
                  ...more....
    ./configure: 1: ./configure: /usr/bin/gdal-config: not found
    ./configure: 6093: test: =: unexpected operator
    configure: error: *** Unable to locate GDAL library.

Але після пошуку файлу gdal-config з apt-файлом, як показано нижче, я зміг усунути помилку, встановивши пакет libgdal1-dev

$ apt-file search gdal-config

Результати

libgdal1-dev: /usr/bin/gdal-config

Тож я встановив libgdal1-dev , як показано нижче:

$ sudo apt-get install libgdal1-dev

11
Це виправило цю помилку, але мені також довелося зробити sudo apt-get install libproj-devінсталяцію rgdal. Див stackoverflow.com/questions/15248815/rgdal-package-installation
— geneorama

3
Я можу підтвердити, що libproj-devце теж потрібно. R повертає configure: error: proj_api.h not found...інакше, як згадував @geneorama.
— narendra-choudhary

Я підтверджую це, включаючи пакет у коментарях, вирішив мою проблему для Ubuntu 16.04 та R 3.4.
— luchonacho

В Ubuntu 19.10, R 3.6.2 мені лише довелося sudo apt-get install libgdal-dev, не потрібно libproj-dev. Примітка: це було libgdal-devНЕ libgdal1-dev.
— Rui Barradas

7

Це трапляється через те, що конфігурація не вдалася для пакета 'rgdal', тому нам доводиться встановлювати необхідні залежності.

Потрібні пакети libgdal-dev та libproj-dev:

sudo apt-get install gdal-bin proj-bin libgdal-dev libproj-dev

Потім встановіть rgdal до

install.packages("rgdal")

Завантажити rgdal на

library(rgdal)

7

На macOS

brew install gdal

видалив помилку

gdal-config не знайдено


1
Просто порада для інших, зверніть увагу на вихід терміналу після його запуску, оскільки можуть бути й інші речі, які вам потрібно зробити (мені довелося встановити щось інше до того, як встановить gdal, і мені довелося пов’язати його після встановлення - але варити хай я знаю, як це зробити на виході)
— stevec

4

Прочитайте довідковий посібник.

Системні вимоги до побудови з джерела: GDAL> = бібліотека 1.6.0 з http://trac.osgeo.org/gdal/wiki/DownloadSource та PROJ.4 (proj> = 4.4.9) з http: //trac.osgeo. org / proj / ;


Я додав версію конфігурації gdal вище. Я також перевіряю наявність proj4. Але, чи пов'язаний proj4 з "цією" помилкою?
— Aquarius_Girl

Я встановив proj, див. Редагування. Проблема все ще існує.
— Aquarius_Girl

4

Спробуйте це на CentOS 6

sudo yum install gdal gdal-python gdal-devel mapserver mapserver-python libxml2 libxml2-python python-lxml python-pip python-devel gcc

На жаль, на моєму сервері centos sudo yum install gdal-devel не вдається із довгим набором повідомлень про обробку залежностей, а потім купу помилок. Здається, вони залучають centos 5 версій (наприклад, gdal-1.8.0-4.el5.elgis.x86_64), але Im on centos 6.
— JerryN

2
нам справді все це потрібно? sudo yum install gdal-develнедостатньо?
— Брайан Д.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.