|
1 | 1 | #!/bin/bash
|
2 | 2 | #
|
3 |
| -# Install S3QL 5.2.0 on Python 3.9 |
| 3 | +# Install S3QL in Python venv |
4 | 4 | #
|
5 | 5 |
|
6 |
| -export PYTHONPATH="/opt/s3ql/lib/python3.9/site-packages" |
| 6 | +S3QL_VERSION="5.2.3" |
| 7 | +S3QL_PATH="/opt/s3ql" |
7 | 8 |
|
8 | 9 | set -e -x
|
9 | 10 |
|
10 |
| -py_pip_install() |
11 |
| -{ |
12 |
| - pip3 install --no-cache-dir --ignore-installed --no-warn-script-location --prefix "/opt/s3ql/" "$@" |
13 |
| -} |
| 11 | +Pkg_install_quiet python3-venv \ |
| 12 | + python3-dev build-essential pkg-config libffi-dev libattr1-dev libsqlite3-dev libfuse3-dev fuse3 psmisc |
14 | 13 |
|
15 |
| -py_make_launcher() |
| 14 | +python3 -m venv "${S3QL_PATH}" |
16 | 15 | {
|
17 |
| - local BIN_PATH="$1" |
18 |
| - local LAUNCHER_PATH="/usr/local/bin/${BIN_PATH##*/}" |
19 |
| - |
20 |
| - # Generate launcher |
21 |
| - # shellcheck disable=SC2086 |
22 |
| - printf '#!/bin/bash\nPYTHONPATH="%s" exec %s "$@"\n' \ |
23 |
| - "${PYTHONPATH}" "${BIN_PATH}" \ |
24 |
| - >"${LAUNCHER_PATH}" |
25 |
| - chmod a+x "${LAUNCHER_PATH}" |
26 |
| -} |
| 16 | + # shellcheck disable=SC1091 |
| 17 | + source "${S3QL_PATH}/bin/activate" |
27 | 18 |
|
28 |
| -Pkg_install_quiet python3-dev build-essential pkg-config libffi-dev libattr1-dev libsqlite3-dev libfuse3-dev fuse3 psmisc |
| 19 | + # S3QL needs pyfuse3, pip-distributed apsw contains sqlite3 |
| 20 | + pip3 install --no-cache-dir 'pyfuse3 >= 3.2.0, < 4.0' 'apsw >= 3.42.0' |
| 21 | + pip3 install --no-cache-dir "https://github.com/s3ql/s3ql/releases/download/s3ql-${S3QL_VERSION}/s3ql-${S3QL_VERSION}.tar.gz" |
29 | 22 |
|
30 |
| -# S3QL needs pyfuse3, pip distributed apsw contains sqlite3 |
31 |
| -py_pip_install 'pyfuse3 >= 3.2.0, < 4.0' 'apsw >= 3.42.0' |
32 |
| -py_pip_install 'https://github.com/s3ql/s3ql/releases/download/s3ql-5.2.0/s3ql-5.2.0.tar.gz' |
| 23 | + # List packages |
| 24 | + pip3 list |
33 | 25 |
|
34 |
| -# Link all S3QL commands |
35 |
| -for BIN_PATH in /opt/s3ql/bin/*s3ql*; do |
36 |
| - py_make_launcher "${BIN_PATH}" |
37 |
| -done |
| 26 | + # Link all S3QL commands |
| 27 | + for BIN_PATH in "${S3QL_PATH}/bin"/*s3ql*; do |
| 28 | + ln --symbolic "${BIN_PATH}" "/usr/local/bin/${BIN_PATH##*/}" |
| 29 | + done |
38 | 30 |
|
39 |
| -# List packages |
40 |
| -pip3 list --no-cache-dir --path "${PYTHONPATH}" |
| 31 | + deactivate |
| 32 | +} |
41 | 33 |
|
42 | 34 | s3qlctrl --version
|
43 |
| - |
44 |
| -# List outdated packages |
45 |
| -# pip3 list --no-cache-dir --path "${PYTHONPATH}" --outdated |
46 |
| -# Upgrade: remove and reinstall |
0 commit comments