98 lines
2.7 KiB
Bash
98 lines
2.7 KiB
Bash
#!/bin/bash
|
||
if ! type "include" > /dev/null 2>&1; then
|
||
include() {
|
||
. "$(cd "$(dirname "$1")" && pwd)/${2}";
|
||
};
|
||
fi
|
||
|
||
include "${BASH_SOURCE[0]}" ../pragma_once.bash
|
||
|
||
|
||
if ! pragma_once ${BASH_SOURCE[0]}; then return 0;
|
||
source ./../pragma_once.bash
|
||
source ./container.bash
|
||
fi
|
||
|
||
include "${BASH_SOURCE[0]}" container.bash
|
||
|
||
|
||
|
||
|
||
|
||
print_exports() {
|
||
echo "All exported environment variables:"
|
||
export -p # 使用 `export -p` 显示所有已导出的变量
|
||
}
|
||
|
||
|
||
|
||
load_library() {
|
||
local library_list_str=$1
|
||
local previous_PATH=${PATH}
|
||
local previous_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
|
||
local library_path_list_str=$LD_LIBRARY_PATH
|
||
local bin_path_list_str=$PATH
|
||
local library_list library lib_name version
|
||
IFS=':' read -r -a library_list <<<"$library_list_str"
|
||
for library in "${library_list[@]}"; do
|
||
IFS='-' read -r lib_name version <<<"$library" # 分割库名和版本
|
||
local library_path="${_install_}/${lib_name}/${version}"
|
||
if [ ! -d "$library_path" ]; then
|
||
library_path="${_install_}/${library}" # 尝试原始库路径
|
||
fi
|
||
if [ ! -d "$library_path" ]; then
|
||
echo "load_library ${library_path} not exist!"
|
||
exit 1
|
||
fi
|
||
local lib_dir bin_dir
|
||
for lib_dir in "lib64" "lib"; do
|
||
local cur_path="${library_path}/${lib_dir}"
|
||
if [ -d "${cur_path}" ]; then
|
||
list_remove_element_if_exist "${library_path_list_str}" "${cur_path}"
|
||
list_prepend_element "${_ret_}" "${cur_path}"
|
||
library_path_list_str="${_ret_}"
|
||
fi
|
||
done
|
||
for bin_dir in "bin" "libexec" "include"; do
|
||
local cur_path="${library_path}/${bin_dir}"
|
||
if [ -d "${cur_path}" ]; then
|
||
list_remove_element_if_exist "${bin_path_list_str}" "${cur_path}"
|
||
list_prepend_element "${_ret_}" "${cur_path}"
|
||
bin_path_list_str="${_ret_}"
|
||
fi
|
||
done
|
||
done
|
||
|
||
export LD_LIBRARY_PATH="${library_path_list_str}"
|
||
export PATH="${bin_path_list_str}"
|
||
|
||
echo -e "===============[start] load_library加载环境变量:==============="
|
||
echo -e "[ param ]: ${library_list_str}"
|
||
echo -e "[ old LD_LIBRARY_PATH ]:"
|
||
IFS=":" read -r -a paths <<<"$previous_LD_LIBRARY_PATH"
|
||
for path in "${paths[@]}"; do
|
||
echo " $path"
|
||
done
|
||
echo -e "[ old PATH ]:"
|
||
IFS=":" read -r -a paths <<<"$previous_PATH"
|
||
for path in "${paths[@]}"; do
|
||
echo " $path"
|
||
done
|
||
# echo -e "[LD_LIBRARY_PATH]: ${LD_LIBRARY_PATH}"
|
||
# echo -e "[PATH]: ${PATH}"
|
||
|
||
echo -e "[ LD_LIBRARY_PATH ]:"
|
||
IFS=":" read -r -a paths <<<"$LD_LIBRARY_PATH"
|
||
for path in "${paths[@]}"; do
|
||
echo " $path"
|
||
done
|
||
echo -e "[ PATH ]:"
|
||
IFS=":" read -r -a paths <<<"$PATH"
|
||
for path in "${paths[@]}"; do
|
||
echo " $path"
|
||
done
|
||
echo -e "===============[ended] load_library加载环境变量:==============="
|
||
}
|
||
|
||
|
||
return 0 |