LINUX.ORG.RU

Проблема с установкой LuaSql для MariaDB на Debian 10

 , , ,


1

1

Debian 10 / mariadb

Прошу помощи! Подскажите пожалуйста, как мне установить LuaSql для базы данных MariaDb.

Команда:

luarocks install luasql-mysql MYSQL_INCDIR=/usr/include/mariadb

Получаю ошибку (даже с явно указанным путем до файла: mysql.h (при этом скрипт установки зачем то добавляет /include к пути (хотя я указываю /usr/include/mariadb)

root@connect:~# luarocks install luasql-mysql MYSQL_DIR=/usr/include/mariadb
Installing https://luarocks.org/luasql-mysql-2.6.0-1.rockspec

Error: Could not find header file for MYSQL
  No file mysql.h in /usr/include/mariadb/include
You may have to install MYSQL in your system and/or pass MYSQL_DIR or MYSQL_INCDIR to the luarocks command.
Example: luarocks install luasql-mysql MYSQL_DIR=/usr/local

Вот вывод путей до файлов:

root@connect:~# find /usr/ -name 'liblua.a'
/usr/local/lib/liblua.a
-------------
root@connect:~# find /usr/ -name 'mysql.h'
/usr/include/mariadb/mysql.h
/usr/include/mariadb/server/mysql.h

No file mysql.h in /usr/include/mariadb/include

Очевидно же, что путь к файлу должен быть таким: /usr/include/mariadb/include/mysql.h.

Infra_HDC ★★★★★
()

Что, блин, тебе непонятно? Путь к инклуду ты знаешь, куда его написать тебе написали прямым текстом. Что. Блин. Тебе. Ещё. Нужно?

slovazap ★★★★★
()

В посте MYSQL_INCDIR=/usr/include/mariadb, а в шелле MYSQL_DIR=/usr/include/mariadb. Опечатка? /include же наверное только второй вариант добавляет.

xaizek ★★★★★
()
Ответ на: комментарий от Infra_HDC

По факту такой папки «include» в /usr/include/mariadb/ нет! Т.е. путь /usr/include/mariadb/include - не существует, файл «mysql.h» находится по адресу /usr/include/mariadb/mysql.h

И если я укажу адрес до файла, то получаю ту же самую ошибку и скрипт зачем то дописывает эту несчастную папку /include автоматически.

root@connect:~# luarocks install luasql-mysql MYSQL_DIR=/usr/include/mariadb/mysql.h
Installing https://luarocks.org/luasql-mysql-2.6.0-1.rockspec

Error: Could not find header file for MYSQL
  No file mysql.h in /usr/include/mariadb/mysql.h/include
You may have to install MYSQL in your system and/or pass MYSQL_DIR or MYSQL_INCDIR to the luarocks command.
Shouldercannon
() автор топика
Ответ на: комментарий от slovazap

Мне то тут все понятно! Путь к инлуду я не знаю, ПОТОМУ что его НЕТ! Посмотри вот сюда:

root@connect:/usr/include/mariadb# ls -l
итого 208
-rw-r--r-- 1 root root  3881 ноя 10 12:32 errmsg.h
-rw-r--r-- 1 root root  1619 ноя 10 12:32 ma_list.h
-rw-r--r-- 1 root root  4538 ноя 10 12:32 ma_pvio.h
drwxr-xr-x 2 root root  4096 мар 17 15:34 mariadb
-rw-r--r-- 1 root root 17953 ноя 10 12:32 mariadb_com.h
-rw-r--r-- 1 root root  2593 ноя 10 12:32 mariadb_ctype.h
-rw-r--r-- 1 root root  8219 ноя 10 12:32 mariadb_dyncol.h
-rw-r--r-- 1 root root  7878 ноя 10 12:32 mariadb_rpl.h
-rw-r--r-- 1 root root 11808 ноя 10 12:32 mariadb_stmt.h
-rw-r--r-- 1 root root  1234 ноя 25 12:50 mariadb_version.h
-rw-r--r-- 1 root root  4256 ноя 10 12:32 ma_tls.h
-rw-r--r-- 1 root root   148 ноя 25 12:50 my_config.h
-rw-r--r-- 1 root root   148 ноя 25 12:50 my_global.h
drwxr-xr-x 2 root root  4096 мар 17 15:34 mysql
-rw-r--r-- 1 root root   174 ноя 25 12:50 mysql_com.h
-rw-r--r-- 1 root root 46488 ноя 25 12:50 mysqld_error.h
-rw-r--r-- 1 root root 41230 ноя 10 12:32 mysql.h
-rw-r--r-- 1 root root   230 ноя 25 12:50 mysql_version.h
-rw-r--r-- 1 root root   148 ноя 25 12:50 my_sys.h
drwxr-xr-x 4 root root  4096 мар 17 15:34 server

Видишь тут инклуд? Вот и я нет. Скрипт ищет файл mysql.h и он лежит в корне mariadb!

root@connect:~# luarocks install luasql-mysql MYSQL_DIR=/usr/include/mariadb
Installing https://luarocks.org/luasql-mysql-2.6.0-1.rockspec

Error: Could not find header file for MYSQL
  No file mysql.h in /usr/include/mariadb/include

Или вообще указываю путь до корня

root@connect: luarocks install luasql-mysql MYSQL_DIR=/usr/
Installing https://luarocks.org/luasql-mysql-2.6.0-1.rockspec

Error: Could not find header file for MYSQL
  No file mysql.h in /usr/include
You may have to install MYSQL in your system and/or pass MYSQL_DIR or MYSQL_INCDIR to the luarocks command.
Example: luarocks install luasql-mysql MYSQL_DIR=/usr/local

А вот вывод папки server

root@connect:/usr/include/mariadb/server# ls -l
итого 672
-rw-r--r-- 1 root root   4505 ноя 10 12:32 big_endian.h
-rw-r--r-- 1 root root   5238 ноя 10 12:32 byte_order_generic.h
-rw-r--r-- 1 root root   4129 ноя 10 12:32 byte_order_generic_x86_64.h
-rw-r--r-- 1 root root   4281 ноя 10 12:32 byte_order_generic_x86.h
-rw-r--r-- 1 root root   4667 ноя 10 12:32 decimal.h
-rw-r--r-- 1 root root   4363 ноя 10 12:32 errmsg.h
-rw-r--r-- 1 root root   4443 ноя 10 12:32 handler_ername.h
-rw-r--r-- 1 root root    758 ноя 10 12:32 handler_state.h
-rw-r--r-- 1 root root  13346 ноя 10 12:32 json_lib.h
-rw-r--r-- 1 root root   8827 ноя 10 12:32 keycache.h
-rw-r--r-- 1 root root   3572 ноя 10 12:32 little_endian.h
-rw-r--r-- 1 root root   8042 ноя 10 12:32 ma_dyncol.h
-rw-r--r-- 1 root root  47096 ноя 10 12:32 m_ctype.h
-rw-r--r-- 1 root root   7545 ноя 10 12:32 m_string.h
-rw-r--r-- 1 root root   1986 ноя 10 12:32 my_alloc.h
-rw-r--r-- 1 root root   2249 ноя 10 12:32 my_attribute.h
-rw-r--r-- 1 root root   1980 ноя 10 12:32 my_byteorder.h
-rw-r--r-- 1 root root   5229 ноя 10 12:32 my_compiler.h
-rw-r--r-- 1 root root  14572 ноя 25 12:50 my_config.h
-rw-r--r-- 1 root root   9723 ноя 10 12:32 my_dbug.h
-rw-r--r-- 1 root root   2075 ноя 10 12:32 my_decimal_limits.h
-rw-r--r-- 1 root root   3886 ноя 10 12:32 my_dir.h
-rw-r--r-- 1 root root   5603 ноя 10 12:32 my_getopt.h
-rw-r--r-- 1 root root  34213 ноя 10 12:32 my_global.h
-rw-r--r-- 1 root root   1506 ноя 10 12:32 my_list.h
-rw-r--r-- 1 root root   2031 ноя 10 12:32 my_net.h
-rw-r--r-- 1 root root  28103 ноя 10 12:32 my_pthread.h
drwxr-xr-x 3 root root   4096 мар 17 15:34 mysql
-rw-r--r-- 1 root root  29719 ноя 10 12:32 mysql_com.h
-rw-r--r-- 1 root root   1313 ноя 10 12:32 mysql_com_server.h
-rw-r--r-- 1 root root 123913 ноя 25 12:50 mysqld_ername.h
-rw-r--r-- 1 root root  46488 ноя 25 12:50 mysqld_error.h
-rw-r--r-- 1 root root   1167 ноя 10 12:32 mysql_embed.h
-rw-r--r-- 1 root root  39621 ноя 10 12:32 mysql.h
-rw-r--r-- 1 root root   2420 ноя 10 12:32 mysql_time.h
-rw-r--r-- 1 root root   1245 ноя 25 12:50 mysql_version.h
-rw-r--r-- 1 root root  43223 ноя 10 12:32 my_sys.h
-rw-r--r-- 1 root root   4255 ноя 10 12:32 my_valgrind.h
-rw-r--r-- 1 root root   2832 ноя 10 12:32 my_xml.h
-rw-r--r-- 1 root root   1105 ноя 10 12:32 pack.h
drwxr-xr-x 3 root root  16384 мар 17 15:34 private
-rw-r--r-- 1 root root   5499 ноя 10 12:32 sql_common.h
-rw-r--r-- 1 root root  14834 ноя 25 12:50 sql_state.h
-rw-r--r-- 1 root root   1406 ноя 10 12:32 sslopt-case.h
-rw-r--r-- 1 root root   2534 ноя 10 12:32 sslopt-longopts.h
-rw-r--r-- 1 root root   1367 ноя 10 12:32 sslopt-vars.h
-rw-r--r-- 1 root root   2350 ноя 10 12:32 typelib.h
Shouldercannon
() автор топика
Ответ на: комментарий от Shouldercannon

путь /usr/include/mariadb/include - не существует

Что мешает создать несуществующий путь и скопировать в него файл mysql.h ?

Infra_HDC ★★★★★
()
Ответ на: комментарий от Infra_HDC

Ого, а так можно? Я попробую, но как то выглядит слишком просто.

Shouldercannon
() автор топика
Ответ на: комментарий от Shouldercannon

Ну, так должно же быть MYSQL_INCDIR и в команде, наверное.

xaizek ★★★★★
()
Ответ на: комментарий от Infra_HDC

Я создал папку «include», скопировал файл «mysql.h» Запустил: luarocks install luasql-mysql MYSQL_DIR=/usr/include/mariadb/ Сначало все было хорошо, затем вылезла следующая ошибка: `

root@connect:/usr/include/mariadb/include# luarocks install luasql-mysql MYSQL_DIR=/usr/include/mariadb/
Installing https://luarocks.org/luasql-mysql-2.6.0-1.rockspec
Клонирование в «luasql»…
remote: Enumerating objects: 149, done.
remote: Counting objects: 100% (149/149), done.
remote: Compressing objects: 100% (99/99), done.
remote: Total 149 (delta 72), reused 72 (delta 36), pack-reused 0
Получение объектов: 100% (149/149), 104.13 KiB | 654.00 KiB/s, готово.
Определение изменений: 100% (72/72), готово.
Примечание: переход на «22d4a911f35cf851af9db71124e3998d96fb3fa1».

gcc -O2 -fPIC -I/usr/include/lua5.2 -c src/luasql.c -o src/luasql.o -I/usr/include/mariadb/include
gcc -O2 -fPIC -I/usr/include/lua5.2 -c src/ls_mysql.c -o src/ls_mysql.o -I/usr/include/mariadb/include
In file included from src/ls_mysql.c:18:
/usr/include/mariadb/include/mysql.h:59:10: fatal error: mariadb_com.h: Нет такого файла или каталога
 #include "mariadb_com.h"
          ^~~~~~~~~~~~~~~
compilation terminated.

Error: Build error: Failed compiling object src/ls_mysql.o

Теперь я скопировал в эту новую папку файл «mariadb_com.h» и опять запустил установку. Получил следующую ошибку, требуется следующий файл и так далее, мне что всю папку копировать в созданную мной папку «include»?

luarocks install luasql-mysql MYSQL_DIR=/usr/include/mariadb/
Installing https://luarocks.org/luasql-mysql-2.6.0-1.rockspec
Клонирование в «luasql»…
remote: Enumerating objects: 149, done.
remote: Counting objects: 100% (149/149), done.
remote: Compressing objects: 100% (99/99), done.
remote: Total 149 (delta 72), reused 72 (delta 36), pack-reused 0
Получение объектов: 100% (149/149), 104.13 KiB | 654.00 KiB/s, готово.
Определение изменений: 100% (72/72), готово.
Примечание: переход на «22d4a911f35cf851af9db71124e3998d96fb3fa1».


gcc -O2 -fPIC -I/usr/include/lua5.2 -c src/luasql.c -o src/luasql.o -I/usr/include/mariadb/include
gcc -O2 -fPIC -I/usr/include/lua5.2 -c src/ls_mysql.c -o src/ls_mysql.o -I/usr/include/mariadb/include
In file included from src/ls_mysql.c:18:
/usr/include/mariadb/include/mysql.h:60:10: fatal error: mariadb_version.h: Нет такого файла или каталога
 #include "mariadb_version.h"
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.

Error: Build error: Failed compiling object src/ls_mysql.o

Или это все таки глюк скрипта установщика? Прошу опытный взгляд, что тут не так? Или мне правда нужно каждый файл сервера MySql перекопировать во вручную созданную папку include? И будет ли оно так работать?

Shouldercannon
() автор топика
Ответ на: комментарий от Shouldercannon

Если хотите «правильную» сборку затеять, без того, чтобы много работать руками, можете поискать специфическую для дебиана документацию, что ли.

Infra_HDC ★★★★★
()
Ответ на: комментарий от Shouldercannon

ПОТОМУ что его НЕТ! Посмотри вот сюда:

root@connect:/usr/include/mariadb# ls -l
...
-rw-r--r-- 1 root root 41230 ноя 10 12:32 mysql.h

Ты слепой или где?

luarocks install luasql-mysql MYSQL_DIR=/usr/include/mariadb

MYSQL_INCDIR где, мля?

slovazap ★★★★★
()
Последнее исправление: slovazap (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.