SQLite двоичный файл не работает на моем Ubuntu,

Я новичок в sqlite, я просто получил двоичный код sqlite, используя wget http://www.sqlite.org/sqlite-shell-linux-x86-3071300.zip, а затем извлеките sqlite3 из zip-файла, он не работает, он сводит меня с ума, пожалуйста, ПОМОГИТЕ.

Моя ОС - Ubuntu 12.04 64-бит, шаги выполнения sqlite следующим образом,

u1@newhost:/tmp$ ls -hl sqli*
-rwxrwxr-x 1 u1 u1 568K Jun 11 17:35 sqlite3
-rw-rw-r-- 1 u1 u1 310K Jun 12 02:53 sqlite-shell-linux-x86-3071300.zip
u1@newhost:/tmp$ file sqlite3
sqlite3: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x8637c6613a485b675a05f155564cc0eda4b2d3cc, stripped
u1@newhost:/tmp$ ./sqlite3 mydb.db
-bash: ./sqlite3: No such file or directory
u1@newhost:/tmp$

По соображениям безопасности я удалил. из $ PATH, поэтому я просто использую ./sqlite3 для запуска

UPDATE BELOW:

таким образом работает для 32-битной версии Fedora 15

[root@newhostfedora15 ~]# ./sqlite3 test.db
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .e

это также работает на CentOS 5.6 64-bit

, но НЕ работает для root на My Ubuntu 12.04 64-bit либо,

root@newhost:~# unzip sqlite-shell-linux-x86-3071300.zip
Archive:  sqlite-shell-linux-x86-3071300.zip
  inflating: sqlite3
root@newhost:~# ./sqlite3 f
-bash: ./sqlite3: No such file or directory
root@newhost:~# ldd ./sqlite3
        not a dynamic executable

Я получил эту проблему как результат, он работает на Ubuntu 12.04 32-бит, CenetOS 5.6 64-бит, НЕ РАБОТАЕТ на 64-битном Ubuntu 12.04, 64-битный 64-битный 64-битный SQL-массив sqlite достаточно большой, хотя он не работает для каждой платформы , Я буду иметь в виду, что лучше всего скомпилировать мой собственный 64-битный двоичный файл из источника, или это будет потрясающе, если sqlite 64-битный двоичный файл предоставляется через официальный сайт: P

2
задан 13 June 2012 в 20:27

7 ответов

В Ubuntu (как и во многих других дистрибутивах Linux) предпочтительным способом установки программного обеспечения является использование инфраструктуры управления пакетами.

Например, для установки sqlite3:

sudo apt-get update
sudo apt-get install sqlite3

это будет загружать официальную сборку sqlite Ubuntu и установить это в вашей системе. Таким образом, вам не нужно иметь дело с загрузкой самостоятельно или отладки проблем с несовместимыми двоичными версиями.

[Первая команда sudo apt-get update просто загружает самый последний список доступных пакетов. Вам не нужно делать это каждый раз, когда вы хотите установить пакет]

Затем вы можете просто запустить sqlite3:

sqlite3

В случае, если вы действительно хочет запустить непакетированный двоичный код sqlite, вам нужно убедиться, что у вас есть все необходимые биты для вашего компьютера. Бинарный файл sqlite в архиве - это 32-разрядный динамически связанный исполняемый файл (как вы видели при запуске file), поэтому нам понадобится хотя бы 32-разрядный динамический компоновщик плюс любые необходимые библиотеки.

Для динамического компоновщика нам нужна сборка i386 пакета libc6. Вы можете установить это с помощью:

sudo apt-get install libc6:i386

Затем вы сможете запустить ldd в двоичном формате, чтобы показать, какие другие библиотеки ему могут понадобиться. Например, в моей системе:

[jk@pablo sqlite]$ ldd ./sqlite3 
linux-gate.so.1 =>  (0xf76f1000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf76c1000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf750d000)
/lib/ld-linux.so.2 (0xf76f2000)

Поскольку все эти библиотеки присутствуют (ldd сообщит not found, если что-то не хватает), мы должны быть в порядке, чтобы запустить команду sqlite3 .

4
ответ дан 25 July 2018 в 18:31

В Ubuntu (как и во многих других дистрибутивах Linux) предпочтительным способом установки программного обеспечения является использование инфраструктуры управления пакетами.

Например, для установки sqlite3:

sudo apt-get update
sudo apt-get install sqlite3

это будет загружать официальную сборку sqlite Ubuntu и установить это в вашей системе. Таким образом, вам не нужно иметь дело с загрузкой самостоятельно или отладки проблем с несовместимыми двоичными версиями.

[Первая команда sudo apt-get update просто загружает самый последний список доступных пакетов. Вам не нужно делать это каждый раз, когда вы хотите установить пакет]

Затем вы можете просто запустить sqlite3:

sqlite3

В случае, если вы действительно хочет запустить непакетированный двоичный код sqlite, вам нужно убедиться, что у вас есть все необходимые биты для вашего компьютера. Бинарный файл sqlite в архиве - это 32-разрядный динамически связанный исполняемый файл (как вы видели при запуске file), поэтому нам понадобится хотя бы 32-разрядный динамический компоновщик плюс любые необходимые библиотеки.

Для динамического компоновщика нам нужна сборка i386 пакета libc6. Вы можете установить это с помощью:

sudo apt-get install libc6:i386

Затем вы сможете запустить ldd в двоичном формате, чтобы показать, какие другие библиотеки ему могут понадобиться. Например, в моей системе:

[jk@pablo sqlite]$ ldd ./sqlite3 
linux-gate.so.1 =>  (0xf76f1000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf76c1000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf750d000)
/lib/ld-linux.so.2 (0xf76f2000)

Поскольку все эти библиотеки присутствуют (ldd сообщит not found, если что-то не хватает), мы должны быть в порядке, чтобы запустить команду sqlite3 .

4
ответ дан 2 August 2018 в 00:42

В Ubuntu (как и во многих других дистрибутивах Linux) предпочтительным способом установки программного обеспечения является использование инфраструктуры управления пакетами.

Например, для установки sqlite3:

sudo apt-get update
sudo apt-get install sqlite3

это будет загружать официальную сборку sqlite Ubuntu и установить это в вашей системе. Таким образом, вам не нужно иметь дело с загрузкой самостоятельно или отладки проблем с несовместимыми двоичными версиями.

[Первая команда sudo apt-get update просто загружает самый последний список доступных пакетов. Вам не нужно делать это каждый раз, когда вы хотите установить пакет]

Затем вы можете просто запустить sqlite3:

sqlite3

В случае, если вы действительно хочет запустить непакетированный двоичный код sqlite, вам нужно убедиться, что у вас есть все необходимые биты для вашего компьютера. Бинарный файл sqlite в архиве - это 32-разрядный динамически связанный исполняемый файл (как вы видели при запуске file), поэтому нам понадобится хотя бы 32-разрядный динамический компоновщик плюс любые необходимые библиотеки.

Для динамического компоновщика нам нужна сборка i386 пакета libc6. Вы можете установить это с помощью:

sudo apt-get install libc6:i386

Затем вы сможете запустить ldd в двоичном формате, чтобы показать, какие другие библиотеки ему могут понадобиться. Например, в моей системе:

[jk@pablo sqlite]$ ldd ./sqlite3 
linux-gate.so.1 =>  (0xf76f1000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf76c1000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf750d000)
/lib/ld-linux.so.2 (0xf76f2000)

Поскольку все эти библиотеки присутствуют (ldd сообщит not found, если что-то не хватает), мы должны быть в порядке, чтобы запустить команду sqlite3 .

4
ответ дан 4 August 2018 в 16:12

В Ubuntu (как и во многих других дистрибутивах Linux) предпочтительным способом установки программного обеспечения является использование инфраструктуры управления пакетами.

Например, для установки sqlite3:

sudo apt-get update
sudo apt-get install sqlite3

это будет загружать официальную сборку sqlite Ubuntu и установить это в вашей системе. Таким образом, вам не нужно иметь дело с загрузкой самостоятельно или отладки проблем с несовместимыми двоичными версиями.

[Первая команда sudo apt-get update просто загружает самый последний список доступных пакетов. Вам не нужно делать это каждый раз, когда вы хотите установить пакет]

Затем вы можете просто запустить sqlite3:

sqlite3

В случае, если вы действительно хочет запустить непакетированный двоичный код sqlite, вам нужно убедиться, что у вас есть все необходимые биты для вашего компьютера. Бинарный файл sqlite в архиве - это 32-разрядный динамически связанный исполняемый файл (как вы видели при запуске file), поэтому нам понадобится хотя бы 32-разрядный динамический компоновщик плюс любые необходимые библиотеки.

Для динамического компоновщика нам нужна сборка i386 пакета libc6. Вы можете установить это с помощью:

sudo apt-get install libc6:i386

Затем вы сможете запустить ldd в двоичном формате, чтобы показать, какие другие библиотеки ему могут понадобиться. Например, в моей системе:

[jk@pablo sqlite]$ ldd ./sqlite3 
linux-gate.so.1 =>  (0xf76f1000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf76c1000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf750d000)
/lib/ld-linux.so.2 (0xf76f2000)

Поскольку все эти библиотеки присутствуют (ldd сообщит not found, если что-то не хватает), мы должны быть в порядке, чтобы запустить команду sqlite3 .

4
ответ дан 6 August 2018 в 00:51

В Ubuntu (как и во многих других дистрибутивах Linux) предпочтительным способом установки программного обеспечения является использование инфраструктуры управления пакетами.

Например, для установки sqlite3:

sudo apt-get update
sudo apt-get install sqlite3

это будет загружать официальную сборку sqlite Ubuntu и установить это в вашей системе. Таким образом, вам не нужно иметь дело с загрузкой самостоятельно или отладки проблем с несовместимыми двоичными версиями.

[Первая команда sudo apt-get update просто загружает самый последний список доступных пакетов. Вам не нужно делать это каждый раз, когда вы хотите установить пакет]

Затем вы можете просто запустить sqlite3:

sqlite3

В случае, если вы действительно хочет запустить непакетированный двоичный код sqlite, вам нужно убедиться, что у вас есть все необходимые биты для вашего компьютера. Бинарный файл sqlite в архиве - это 32-разрядный динамически связанный исполняемый файл (как вы видели при запуске file), поэтому нам понадобится хотя бы 32-разрядный динамический компоновщик плюс любые необходимые библиотеки.

Для динамического компоновщика нам нужна сборка i386 пакета libc6. Вы можете установить это с помощью:

sudo apt-get install libc6:i386

Затем вы сможете запустить ldd в двоичном формате, чтобы показать, какие другие библиотеки ему могут понадобиться. Например, в моей системе:

[jk@pablo sqlite]$ ldd ./sqlite3 
linux-gate.so.1 =>  (0xf76f1000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf76c1000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf750d000)
/lib/ld-linux.so.2 (0xf76f2000)

Поскольку все эти библиотеки присутствуют (ldd сообщит not found, если что-то не хватает), мы должны быть в порядке, чтобы запустить команду sqlite3 .

4
ответ дан 7 August 2018 в 18:16

В Ubuntu (как и во многих других дистрибутивах Linux) предпочтительным способом установки программного обеспечения является использование инфраструктуры управления пакетами.

Например, для установки sqlite3:

sudo apt-get update
sudo apt-get install sqlite3

это будет загружать официальную сборку sqlite Ubuntu и установить это в вашей системе. Таким образом, вам не нужно иметь дело с загрузкой самостоятельно или отладки проблем с несовместимыми двоичными версиями.

[Первая команда sudo apt-get update просто загружает самый последний список доступных пакетов. Вам не нужно делать это каждый раз, когда вы хотите установить пакет]

Затем вы можете просто запустить sqlite3:

sqlite3

В случае, если вы действительно хочет запустить непакетированный двоичный код sqlite, вам нужно убедиться, что у вас есть все необходимые биты для вашего компьютера. Бинарный файл sqlite в архиве - это 32-разрядный динамически связанный исполняемый файл (как вы видели при запуске file), поэтому нам понадобится хотя бы 32-разрядный динамический компоновщик плюс любые необходимые библиотеки.

Для динамического компоновщика нам нужна сборка i386 пакета libc6. Вы можете установить это с помощью:

sudo apt-get install libc6:i386

Затем вы сможете запустить ldd в двоичном формате, чтобы показать, какие другие библиотеки ему могут понадобиться. Например, в моей системе:

[jk@pablo sqlite]$ ldd ./sqlite3 
linux-gate.so.1 =>  (0xf76f1000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf76c1000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf750d000)
/lib/ld-linux.so.2 (0xf76f2000)

Поскольку все эти библиотеки присутствуют (ldd сообщит not found, если что-то не хватает), мы должны быть в порядке, чтобы запустить команду sqlite3 .

4
ответ дан 10 August 2018 в 07:00

В Ubuntu (как и во многих других дистрибутивах Linux) предпочтительным способом установки программного обеспечения является использование инфраструктуры управления пакетами.

Например, для установки sqlite3:

sudo apt-get update
sudo apt-get install sqlite3

это будет загружать официальную сборку sqlite Ubuntu и установить это в вашей системе. Таким образом, вам не нужно иметь дело с загрузкой самостоятельно или отладки проблем с несовместимыми двоичными версиями.

[Первая команда sudo apt-get update просто загружает самый последний список доступных пакетов. Вам не нужно делать это каждый раз, когда вы хотите установить пакет]

Затем вы можете просто запустить sqlite3:

sqlite3

В случае, если вы действительно хочет запустить непакетированный двоичный код sqlite, вам нужно убедиться, что у вас есть все необходимые биты для вашего компьютера. Бинарный файл sqlite в архиве - это 32-разрядный динамически связанный исполняемый файл (как вы видели при запуске file), поэтому нам понадобится хотя бы 32-разрядный динамический компоновщик плюс любые необходимые библиотеки.

Для динамического компоновщика нам нужна сборка i386 пакета libc6. Вы можете установить это с помощью:

sudo apt-get install libc6:i386

Затем вы сможете запустить ldd в двоичном формате, чтобы показать, какие другие библиотеки ему могут понадобиться. Например, в моей системе:

[jk@pablo sqlite]$ ldd ./sqlite3 
linux-gate.so.1 =>  (0xf76f1000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf76c1000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf750d000)
/lib/ld-linux.so.2 (0xf76f2000)

Поскольку все эти библиотеки присутствуют (ldd сообщит not found, если что-то не хватает), мы должны быть в порядке, чтобы запустить команду sqlite3 .

4
ответ дан 15 August 2018 в 18:58
  • 1
    Джереми Керр, спасибо за ваши слова, и я знаю, что apt-get isntall sqlite3 работает :-), но я не могу понять, почему он не работает в прямом двоичном способе установки. Я попробую это на Fedora и CentOS позже. – vicd 13 June 2012 в 19:11
  • 2
    – Jeremy Kerr 13 June 2012 в 19:29
  • 3
    Я забыл, что у меня 64-разрядная версия, я думаю, что это может вызвать проблему, теперь я проверяю .... OMG, но похоже, что на их сайте нет 64-битного двоичного файла. : D – vicd 13 June 2012 в 19:35
  • 4
    это нормально с 32-битным двоичным файлом sqlite, работающим на 64-битном CentOS, я только что протестировал это! Поэтому я беру ваше предложение ldd, чтобы проверить мой 64-разрядный бит Ubuntu 12.04. – vicd 13 June 2012 в 19:42
  • 5
    ldd ./sqlite3 результат: не динамический исполняемый файл, см. обновление моего сообщения, я проверяю, работает ли он на Ubuntu 12.04 32-bit, OOOOOMMMGGG – vicd 13 June 2012 в 19:52

Другие вопросы по тегам:

Похожие вопросы: