'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 |