FreeBSD, pkg 부팅, "pkg-static: INSERT 또는 ROLLBACK INTO pkg_search를 실행하는 동안 sqlite 오류 발생"

FreeBSD, pkg 부팅, "pkg-static: INSERT 또는 ROLLBACK INTO pkg_search를 실행하는 동안 sqlite 오류 발생"

FreeBSD 10.2 시스템에 bash를 설치하려고 합니다.FreeBSD에 bash를 설치하는 방법

그러나 pkg가 너무 새로운 저장소에서 가져오려고 했기 때문에 설치에 실패했습니다.

그런 다음 다음 레시피를 따라해 보았습니다.https://glasz.org/sheeplog/2017/02/freebsd-usrlocallibpkgso3-undefine-symbol-utimensat.html, 일부 소식통은 이것이 옳은 일이라고 말합니다.

그러나 방법의 일부에는 pkg를 제거하고 다시 설치하는 것이 포함됩니다. 결과는 다음과 같습니다.

# pkg install -y pkg
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y

Bootstrapping pkg from 
pkg+http://pkg.FreeBSD.org/FreeBSD:10:amd64/release_2, please 
wait...
Verifying signature with trusted certificate 
pkg.freebsd.org.2013102301... done
pkg-static: warning: database version 34 is newer than libpkg(3) 
version 31, but still compatible
pkg-static: sqlite error while executing INSERT OR ROLLBACK INTO 
pkg_search(id, name, origin) VALUES (?1, ?2 || '-' || ?3, ?4); in 
file pkgdb.c:1542: no such table: pkg_search

그래서 지금 나는 붙어 있습니다. 이 상태에서 복구하는 방법을 알려줄 수 있는 사람이 있나요?

답변1

디렉터리의 모든 내용을 삭제해 볼 수 있지만 /var/db/pkg/올바른 해결 방법은 지원되는 FreeBSD 버전(10.4 또는 11.2)으로 업그레이드하는 것입니다.

답변2

최근 비슷한 증상이 나타났습니다(가독성을 위해 줄바꿈이 추가되었습니다).

# pkg info
pkg: Warning: Major OS version upgrade detected.  \
        Running "pkg-static install -f pkg" recommended
pkg: warning: database version 34 is newer than libpkg(3) version 33, \
        but still compatible
pkg: sqlite error while executing INSERT OR ROLLBACK INTO pkg_search(id, name, origin) \
        VALUES (?1, ?2 || '-' || ?3, ?4); in file pkgdb.c:1544: \
        no such table: pkg_search

나는 오류 메시지의 이 부분에 초점을 맞췄습니다.

no such table: pkg_search

제 경우에는 다음을 수행하여 문제를 해결할 수 있었습니다.

# cp -p /var/db/pkg/local.sqlite /var/db/pkg/local.sqlite.safety
# sqlite3 /var/db/pkg/local.sqlite
SQLite version 3.28.0 2019-04-16 19:49:53
Enter ".help" for usage hints.
sqlite> CREATE VIRTUAL TABLE pkg_search USING fts4(id, name, origin);
sqlite> .quit

이 특정 SQL 쿼리는이 스레드2017년 1월부터.

SQL 주문 후 다시 작동하여 최신 버전으로 업그레이드한 다음 나머지 패키지를 업그레이드하거나 다시 설치할 pkg수 있었습니다 . pkg이는 10.x에서 12.x로의 마이그레이션이므로 업그레이드 후 모든 작업을 pkg완료했고 pkg upgrade -f더 이상 경고나 오류가 발생하지 않았습니다 sqlite3.

# pkg -N; pkg info; pkg upgrade
pkg: 15 packages installed
apache24-2.4.41                Version 2.4.x of Apache web server
apr-1.7.0.1.6.1                Apache Portability Library
bash-5.0.7                     GNU Project's Bourne Again SHell
db5-5.3.28_7                   Oracle Berkeley DB, revision 5.3
expat-2.2.6_1                  XML 1.0 parser written in C
gdbm-1.18.1_1                  GNU database manager
gettext-runtime-0.20.1         GNU gettext runtime libraries and programs
indexinfo-0.3.1                Utility to regenerate the GNU info page index
libnghttp2-1.39.2              HTTP/2.0 C Library
libxml2-2.9.9                  XML parser library for GNOME
linux_base-f10-10_10           Base set of packages needed in Linux mode for i386/amd64 (Linux Fedora 10)
pcre-8.43_2                    Perl Compatible Regular Expressions library
perl5-5.30.0                   Practical Extraction and Report Language
pkg-1.11.1                     Package manager
readline-8.0.0                 Library for editing command lines as they are typed
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (0 candidates): 100%
Processing candidates (0 candidates): 100%
Checking integrity... done (0 conflicting)
Your packages are up to date.

관련 정보