Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Дополнительные библиотеки для PtokaX _ Sqlite

Автор: Setuper 5.3.2009, 2:55

Создаём папку luasql в рабочем (конфигурационнком) каталоге PtokaX (если ставили из установщика или пакета mariner, то это /etc/ptoka/).
Получаем папку /etc/ptoka/luasql/. Теперь создадим в ней необходимую ссылку на системную библиотеку, правда сначала найдем эту библиотеку.
Пишем:

Код
updatedb
locate sqlite | grep lua

И получаем приблизительно такой вывод:
Цитата(ssh)
root /etc/ptokax # locate sqlite G lua
/usr/include/lua5.1/lua-sql-sqlite3.h
/usr/lib/liblua5.1-sql-sqlite3.a
/usr/lib/liblua5.1-sql-sqlite3.la
/usr/lib/liblua5.1-sql-sqlite3.so
/usr/lib/liblua5.1-sql-sqlite3.so.2
/usr/lib/liblua5.1-sql-sqlite3.so.2.0.0
/usr/lib/lua/5.1/luasql/sqlite3.so
/usr/lib/pkgconfig/lua5.1-sql-sqlite3.pc
/usr/share/doc/liblua5.1-sql-sqlite3-2
/usr/share/doc/liblua5.1-sql-sqlite3-dev
/usr/share/doc/liblua5.1-sql-sqlite3-2/README
/usr/share/doc/liblua5.1-sql-sqlite3-2/changelog.Debian.gz
/usr/share/doc/liblua5.1-sql-sqlite3-2/copyright
/usr/share/doc/liblua5.1-sql-sqlite3-dev/README
/usr/share/doc/liblua5.1-sql-sqlite3-dev/changelog.Debian.gz
/usr/share/doc/liblua5.1-sql-sqlite3-dev/copyright
/var/cache/apt/archives/liblua5.1-sql-sqlite3-2_2.2.0~rc1-1_i386.deb
/var/cache/apt/archives/liblua5.1-sql-sqlite3-dev_2.2.0~rc1-1_i386.deb
/var/lib/dpkg/info/liblua5.1-sql-sqlite3-2.list
/var/lib/dpkg/info/liblua5.1-sql-sqlite3-2.md5sums
/var/lib/dpkg/info/liblua5.1-sql-sqlite3-2.postinst
/var/lib/dpkg/info/liblua5.1-sql-sqlite3-2.postrm
/var/lib/dpkg/info/liblua5.1-sql-sqlite3-2.shlibs
/var/lib/dpkg/info/liblua5.1-sql-sqlite3-dev.list
/var/lib/dpkg/info/liblua5.1-sql-sqlite3-dev.md5sums

Жирным отмечена необходимая библиотека. Теперь создаем симлинк на нее(для данного случая это делаем так):
Код
ln -s /usr/lib/lua/5.1/luasql/sqlite3.so /etc/ptokax/luasql/sqlite3.so

Вот и все. Все лежит там, где надо.

Пишем тестовый скрипт:
Код
require "luasql.sqlite3"
local env = assert(luasql.sqlite3())
local conn = assert(env:connect("test.db3"))
local res = conn:execute"DROP TABLE people"
res = assert(conn:execute[[
  CREATE TABLE people(name  varchar(50), email varchar(50))
]])

local list = {
  {name = "Jose das Couves", email = "jose@couves.com"},
  {name = "Manoel Joaquim", email = "manoel.joaquim@cafundo.com"},
  {name = "Maria das Dores", email = "maria@dores.com"}
}
for i, p in pairs(list) do
  res = assert(conn:execute(string.format([[
    INSERT INTO people VALUES ('%s', '%s')
]], p.name, p.email)))
end

local cur = assert(conn:execute"SELECT name, email from people")

local row = cur:fetch({}, "a")
while row do
  Core.SendToAll(string.format("Name: %s, E-mail: %s", row.name, row.email))
  row = cur:fetch(row, "a")
end

cur:close()
conn:close()
env:close()


Для скачки библиотек:
Под убунту: http://mydc.ru/r/?http://mirror.yandex.ru/ubuntu/pool/universe/l/lua-sql/ (и тут выбираем архитектуру)
Под дебиан: http://mydc.ru/r/?http://mirror.yandex.ru/debian/pool/main/l/lua-sql/ (и тут выбираем архитектуру)

Автор: mariner 10.3.2009, 21:46

Собственно, все, что я написал, можно сделать одной командой big_smile.gif
ln -s /usr/lib/lua/5.1/luasql /etc/ptokax/luasql
Где /etc/ptokax - конфигурационная папка птоки big_smile.gif Данная команда сразу подтянет в нужное место luasql целиком - то есть sqlite + mysql

Автор: DEN 007 18.6.2010, 5:51

А что делать с FreeBSD иль тоже пойдет?

Автор: Alexey 10.2.2016, 21:15

Название: LuaSQL SQLite3
Авторы: Kepler Project
Описание: Библиотека для работы с базой данных SQLite3
Страница проекта: http://mydc.ru/r/?https://github.com/keplerproject/luasql

Установка в Debian GNU/Linux и Ubuntu GNU/Linux:

Код
sudo apt-get install lua-sql-sqlite3

Установка в старых версиях Debian GNU/Linux и Ubuntu GNU/Linux:
Код
sudo apt-get install liblua5.1-sql-sqlite3-2