'Airflow without sudo access?

in my virtual env on azure VM, i ran

pip3 install apache-airflow

when i started airflow db init i received

File "/home/shivamanand/myenv/lib/python3.7/site-packages/airflow/configuration.py", line 398, in _validate_config_dependencies f"error: sqlite C library version too old (< {min_sqlite_version_str}). " airflow.exceptions.AirflowConfigException: error: sqlite C library version too old (< 3.15.0)

Next, i followed the docs to upgrade sqllite (i cant install docker w postgres etc as i dont have sudo access)

https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html

THESE WORKED ->

wget https://www.sqlite.org/src/tarball/sqlite.tar.gz
tar xzf sqlite.tar.gz
cd sqlite/
export CFLAGS="-DSQLITE_ENABLE_FTS3 \
    -DSQLITE_ENABLE_FTS3_PARENTHESIS \
    -DSQLITE_ENABLE_FTS4 \
    -DSQLITE_ENABLE_FTS5 \
    -DSQLITE_ENABLE_JSON1 \
    -DSQLITE_ENABLE_LOAD_EXTENSION \
    -DSQLITE_ENABLE_RTREE \
    -DSQLITE_ENABLE_STAT4 \
    -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT \
    -DSQLITE_SOUNDEX \
    -DSQLITE_TEMP_STORE=3 \
    -DSQLITE_USE_URI \
    -O2 \
    -fPIC"
export PREFIX="/usr/local"
LIBS="-lm" ./configure --disable-tcl --enable-shared --enable-tempstore=always --prefix="$PREFIX"

then for

make
make install

i am getting

gcc -DSQLITE_SOUNDEX -DSQLITE_TEMP_STORE=3 -DSQLITE_USE_URI -O2 -fPIC -o mksourceid /home/shivamanand/sqlite/tool/mksourceid.c tclsh /home/shivamanand/sqlite/tool/mksqlite3h.tcl /home/shivamanand/sqlite >sqlite3.h /bin/sh: 1: tclsh: not found Makefile:1075: recipe for target 'sqlite3.h' failed make: *** [sqlite3.h] Error 127

How do i correct this?



Solution 1:[1]

This issue is due to the unavailability of the tcl in your system. To solve this problem first install tcl.

sudo apt install tcl

You can see other errors that is because the sqlite3.h file. It is possible that an earlier configure / make issue (e.g. missing tclsh) caused the file to be empty, which would certainly lead to many build errors like this. Even if the underlying issue is resolved (e.g. by fixing missing dependencies), the make file will not regenerate it if it is already present, in which case the sqlite3.h file would need to be deleted before a rebuild.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 UsmanMaan