# Get the tarball
cd
test -f installed/sqlite-autoconf-3430200.tar.gz &&
mv installed/sqlite-autoconf-3430200.tar.gz .
test ! -f sqlite-autoconf-3430200.tar.gz &&
wget https://sqlite.org/2023/sqlite-autoconf-3430200.tar.gz
# These two commands below should output the same checksum.
# If you do not have OpenSSL, or one with the sha3-256 command, you can
# also use the Perl Digest::SHA3 module, or get a sha3sum here:
# https://github.com/maandree/sha3sum
#
# Verify tarball w/ openssl:
openssl sha3-256 sqlite-autoconf-3430200.tar.gz | awk -F'= ' '{ print $2 }'
echo "a7463a45ed58849200858e514b79f7e5f5d69850047897c5b659a78a0bc75cc1"
# Extract the source
mkdir -p -m 0700 ~/src
cd ~/src
find -maxdepth 1 -type d -name "sqlite-*" -exec rm -r {} \;
tar xzvf ~/sqlite-autoconf-3430200.tar.gz
cd sqlite-autoconf-3430200
test $UID = 0 && chown -R root:root .
# Read ./README.txt and ./INSTALL (generic autoconf)
# Create a build directory
mkdir bld
cd bld
# Configure the build for 64-bit
test $(uname -m) = 'x86_64' &&
../configure --prefix=/usr --libdir=/usr/lib64 --mandir=/usr/man
# Configure the build for anything else
test $(uname -m) != 'x86_64' &&
../configure --prefix=/usr --mandir=/usr/man
# Build it
make
# Become root to install it
su
# Remove the Slackware package, if there is one
test -x /sbin/removepkg && /sbin/removepkg sqlite
# If you're _sure_ there's not in use (at least check with lsof), zap old
# library files in case of issues
rm -f /usr/lib*/libsqlite3.* /usr/local/lib*/libsqlite3.*
# Install it
make install
ldconfig
# Make sure your non-root user can remove the source later
chown -R $(logname) .
chmod -R u+w .
# Become yourself again
exit
# Save the source for later
# Be careul here if you have other sqlite-* tarballs (e.g. sqlite-doc)
cd
mkdir -p -m 0700 installed
rm -f installed/sqlite-*.tar.*
mv sqlite-autoconf-3430200.tar.gz installed/
# If you ever want to uninstall SQLite, this should do it:
su
for pfx in /usr /usr/local; do
rm -f ${pfx}/bin/sqlite3 ${pfx}/include/sqlite3.h \
${pfx}/include/sqlite3ext.h ${pfx}/lib/libsqlite3.* \
${pfx}/lib/pkgconfig/sqlite3.pc
done
ldconfig
find /usr/lib/tcl* -type d -name sqlite3 -exec rm -r {} \;
test -d /usr/lib64 &&
find /usr/lib64/tcl* -type d -name sqlite3 -exec rm -r {} \;
exit
find ~/src -maxdepth 1 -type d -name "sqlite-*" -exec rm -r {} \;
rm -f ~/installed/sqlite-*.tar.*