Centos 7.4 시스템에 Python 3.6을 설치했으며 업데이트된 SQLite 버전이 필요합니다(몇 가지 새로운 기능을 사용하고 있습니다). 함께 제공되는 SQLite 버전은 3.7.17로 매우 오래된 버전입니다.
당신은 그렇게 않았다 방법? Windows에서는 Python\DLLs 디렉터리에 있는 sqlite.dll 파일을 필요한 파일로 바꾸는 것이 간단하지만 Linux에서 이 작업을 수행하는 방법에 대한 정보를 찾지 못했습니다.
이 질문은 이전에 요청되었지만 답변되지 않은 것을 알 수 있습니다.https://stackoverflow.com/questions/39064472/how-to-update-sqlite3-in-centos-6-6- 이것은 내가 검색한 유일한 페이지입니다. 대부분의 다른 결과는 Python 2/pysqlite에 대한 것이므로 도움이 되지 않습니다.
그렇다면 CentOS 시스템에서 Python이 사용하는 SQLite 버전을 업데이트하는 방법은 무엇입니까?
답변1
최신 버전의 RPM을 찾거나 운영 체제에 맞게 사전 컴파일된 바이너리를 다운로드해야 합니다(https://www.sqlite.org/download.html) 또는 소스 코드를 다운로드하거나 소프트웨어를 컴파일/설치합니다.
일반적으로 더 나은 소프트웨어 관리(설치, 업그레이드 등)를 위해 RPM을 유지하는 것이 좋지만 사용 가능한 RPM을 찾을 수 없는 경우에는 미리 컴파일된 버전을 설치하거나 소프트웨어를 컴파일하고 설치해 보십시오. 이는 일반적으로 Linux 시스템에서 특정 소프트웨어를 실행하는 데 필요한 최신 또는 특정 버전의 소프트웨어를 얻기 위해 수행됩니다.
SQLite를 컴파일한 후 Python의 라이브러리를 가리킬 수 있어야 합니다. 이를 수행하는 빠른 방법은 LD_LIBRARY_PATH를 SQLite 컴파일에서 얻은 lib 디렉터리의 출력으로 설정하는 것입니다.
Libraries have been installed in: /usr/local/sqlite-3.22.0/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf'
라이브러리를 설정하기 전에 Python을 실행하면 이전 버전이 표시됩니다.
python3.6 -c "import sqlite3; print(sqlite3.sqlite_version)"
3.7.17
새 버전 사용:
export LD_LIBRARY_PATH=/usr/local/sqlite-3.22.0/lib
python3.6 -c "import sqlite3; print(sqlite3.sqlite_version)"
3.22.0
환경에 따라, 라이브러리의 다양한 버전을 관리하는 방법에 따라 코드에서 또는 코드가 실행되기 전에 이를 설정해야 할 수도 있습니다. 컴파일된 출력을 보면 이에 대한 몇 가지 아이디어를 얻을 수 있습니다.