1717set -xe
1818
1919INSTALL_BLOBFUSE_PROXY=${INSTALL_BLOBFUSE_PROXY:- true}
20- INSTALL_BLOBFUSE=${INSTALL_BLOBFUSE:- true}
2120DISABLE_UPDATEDB=${DISABLE_UPDATEDB:- true}
2221SET_MAX_OPEN_FILE_NUM=${SET_MAX_OPEN_FILE_NUM:- true}
2322SET_READ_AHEAD_SIZE=${SET_READ_AHEAD_SIZE:- true}
2423READ_AHEAD_KB=${READ_AHEAD_KB:- 15380}
2524
2625HOST_CMD=" nsenter --mount=/proc/1/ns/mnt"
2726
28- # install/update blobfuse
29- if [ " ${INSTALL_BLOBFUSE} " = " true" ]
27+ DISTRIBUTION=$( $HOST_CMD cat /etc/os-release | grep ^ID= | cut -d' =' -f2 | tr -d ' "' )
28+ echo " Linux distribution: $DISTRIBUTION "
29+
30+ if [ " ${DISTRIBUTION} " = " ubuntu" ] && { [ " ${INSTALL_BLOBFUSE} " = " true" ] || [ " ${INSTALL_BLOBFUSE2} " = " true" ]; }
3031then
31- cp /blobfuse-proxy/packages-microsoft-prod.deb /host/etc/
32- yes | $HOST_CMD dpkg -i /etc/packages-microsoft-prod.deb && \
33- $HOST_CMD apt update && \
34- $HOST_CMD apt-get install -y fuse blobfuse2 blobfuse=" ${BLOBFUSE_VERSION} " && \
32+ release=$( $HOST_CMD lsb_release -rs)
33+ echo " Ubuntu release: $release "
34+
35+ if [ " $( expr " $release " \< " 22.04" ) " -eq 1 ]
36+ then
37+ cp /blobfuse-proxy/packages-microsoft-prod-18.04.deb /host/etc/packages-microsoft-prod.deb
38+ else
39+ cp /blobfuse-proxy/packages-microsoft-prod-22.04.deb /host/etc/packages-microsoft-prod.deb
40+ fi
41+
42+ # when running dpkg -i /etc/packages-microsoft-prod.deb, need to enter y to continue.
43+ # refer to https://stackoverflow.com/questions/45349571/how-to-install-deb-with-dpkg-non-interactively
44+ yes | $HOST_CMD dpkg -i /etc/packages-microsoft-prod.deb && $HOST_CMD apt update
45+
46+ pkg_list=" "
47+ if [ " ${INSTALL_BLOBFUSE} " = " true" ] && [ " $( expr " $release " \< " 22.04" ) " -eq 1 ]
48+ then
49+ pkg_list=" ${pkg_list} fuse"
50+ # install blobfuse with latest version or specific version
51+ if [ -z " ${BLOBFUSE_VERSION} " ]; then
52+ echo " install blobfuse with latest version"
53+ pkg_list=" ${pkg_list} blobfuse"
54+ else
55+ pkg_list=" ${pkg_list} blobfuse=${BLOBFUSE_VERSION} "
56+ fi
57+ fi
58+
59+ if [ " ${INSTALL_BLOBFUSE2} " = " true" ]
60+ then
61+ if [ " $( expr " $release " \< " 22.04" ) " -eq 1 ]; then
62+ echo " install fuse for blobfuse2"
63+ pkg_list=" ${pkg_list} fuse"
64+ else
65+ echo " install fuse3 for blobfuse2, current release is $release "
66+ pkg_list=" ${pkg_list} fuse3"
67+ fi
68+
69+ # install blobfuse2 with latest version or specific version
70+ if [ -z " ${BLOBFUSE2_VERSION} " ]; then
71+ echo " install blobfuse2 with latest version"
72+ pkg_list=" ${pkg_list} blobfuse2"
73+ else
74+ pkg_list=" ${pkg_list} blobfuse2=${BLOBFUSE2_VERSION} "
75+ fi
76+ fi
77+ echo " begin to install ${pkg_list} "
78+ $HOST_CMD apt-get install -y $pkg_list
3579 $HOST_CMD rm -f /etc/packages-microsoft-prod.deb
3680fi
3781
102146SUBSYSTEM=="bdi", ACTION=="add", PROGRAM="$AWK_PATH -v bdi=\$ kernel 'BEGIN{ret=1} {if (\$ 4 == bdi){ret=0}} END{exit ret}' /proc/fs/nfsfs/volumes", ATTR{read_ahead_kb}="$READ_AHEAD_KB "
103147EOF
104148 $HOST_CMD udevadm control --reload
105- fi
149+ fi
0 commit comments