mirror of
https://gitee.com/amber-ce/amber-pm
synced 2026-06-22 06:03:55 +08:00
实验性支持 nixos
This commit is contained in:
@@ -27,8 +27,18 @@ function ensure_dir() {
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
chrootEnvPath="${chrootEnvPath:-$(dirname $0)/ace-env}"
|
||||
|
||||
is_nixos() {
|
||||
[ -f /etc/os-release ] && grep -Eq '^ID="?nixos"?$' /etc/os-release
|
||||
}
|
||||
|
||||
APM_CONTAINER_PATH="/amber-ce-tools/bin-override:$PATH"
|
||||
if is_nixos; then
|
||||
APM_CONTAINER_PATH="/amber-ce-tools/bin-override:/usr/local/bin:/usr/bin/"
|
||||
fi
|
||||
|
||||
APM_PKG_NAME="${APM_PKG_NAME:-apm-general}"
|
||||
|
||||
non_root_user=$(who | awk '{print $1}' | head -n 1)
|
||||
@@ -106,7 +116,7 @@ done
|
||||
ENV_VARS=(
|
||||
"FAKEROOTDONTTRYCHOWN 1"
|
||||
"PULSE_SERVER /run/user/\$uid/pulse/native"
|
||||
"PATH /amber-ce-tools/bin-override:\$PATH"
|
||||
"PATH $APM_CONTAINER_PATH"
|
||||
"IS_ACE_ENV 1"
|
||||
"GTK_USE_PORTAL 1"
|
||||
"XDG_DATA_DIRS /amber-ce-tools/additional-data-dir-in-container:\$XDG_DATA_DIRS"
|
||||
@@ -201,4 +211,4 @@ add_command "bash -c \"${container_command}\""
|
||||
# echo "${EXEC_COMMAND}"
|
||||
|
||||
# 注意: 实际执行时,请确保所有变量(如 $uid, $chrootEnvPath 等)都已正确定义
|
||||
eval "${EXEC_COMMAND}"
|
||||
eval "${EXEC_COMMAND}"
|
||||
|
||||
@@ -7,6 +7,14 @@ export -f bash
|
||||
|
||||
chrootEnvPath="${chrootEnvPath:-$(pwd)/ace-env}"
|
||||
|
||||
is_nixos() {
|
||||
[ -f /etc/os-release ] && grep -Eq '^ID="?nixos"?$' /etc/os-release
|
||||
}
|
||||
|
||||
APM_CONTAINER_PATH="/amber-ce-tools/bin-override:$PATH"
|
||||
if is_nixos; then
|
||||
APM_CONTAINER_PATH="/amber-ce-tools/bin-override:/usr/local/bin:/usr/bin/"
|
||||
fi
|
||||
|
||||
|
||||
non_root_user=$(who | awk '{print $1}' | head -n 1)
|
||||
@@ -80,7 +88,7 @@ done
|
||||
ENV_VARS=(
|
||||
"FAKEROOTDONTTRYCHOWN 1"
|
||||
"PULSE_SERVER /run/user/\$uid/pulse/native"
|
||||
"PATH /amber-ce-tools/bin-override:\$PATH"
|
||||
"PATH $APM_CONTAINER_PATH"
|
||||
"IS_ACE_ENV 1"
|
||||
"GTK_USE_PORTAL 1"
|
||||
"XDG_DATA_DIRS /amber-ce-tools/additional-data-dir-in-container:\$XDG_DATA_DIRS"
|
||||
@@ -139,4 +147,3 @@ add_command "bash -c \"${container_command}\""
|
||||
|
||||
# 注意: 实际执行时,请确保所有变量(如 $uid, $chrootEnvPath 等)都已正确定义
|
||||
eval ${EXEC_COMMAND}
|
||||
|
||||
|
||||
@@ -15,6 +15,15 @@ else
|
||||
PKGNAME=$PACKAGE_NAME
|
||||
fi
|
||||
chrootEnvPath=/var/lib/apm/$PKGNAME/files/ace-env
|
||||
is_nixos() {
|
||||
[ -f /etc/os-release ] && grep -Eq '^ID="?nixos"?$' /etc/os-release
|
||||
}
|
||||
|
||||
APM_CONTAINER_PATH="/amber-ce-tools/bin-override:$PATH"
|
||||
if is_nixos; then
|
||||
APM_CONTAINER_PATH="/amber-ce-tools/bin-override:/usr/local/bin:/usr/bin/"
|
||||
fi
|
||||
|
||||
#if [ ! -e $chrootEnvPath ];then
|
||||
echo "Uncompress the env...."
|
||||
tar -xvf $chrootEnvPath.tar.xz -C /var/lib/apm/$PKGNAME/files/
|
||||
@@ -41,7 +50,7 @@ uid=$(id -u $non_root_user)
|
||||
function bookworm-run(){
|
||||
bwrap --dev-bind $chrootEnvPath/ / \
|
||||
--setenv PULSE_SERVER /run/user/$uid/pulse/native \
|
||||
--setenv PATH /amber-ce-tools/bin-override:$PATH \
|
||||
--setenv PATH "$APM_CONTAINER_PATH" \
|
||||
--setenv IS_ACE_ENV "1" \
|
||||
--dev-bind-try /media /media \
|
||||
--dev-bind-try /tmp /tmp \
|
||||
@@ -89,7 +98,7 @@ bookworm-run apt clean
|
||||
bookworm-run chown -R $(get_current_user) /usr/lib/locale/
|
||||
sudo -u $(get_current_user) bwrap --dev-bind $chrootEnvPath/ / \
|
||||
--setenv PULSE_SERVER /run/user/$uid/pulse/native \
|
||||
--setenv PATH /amber-ce-tools/bin-override:$PATH \
|
||||
--setenv PATH "$APM_CONTAINER_PATH" \
|
||||
--setenv IS_ACE_ENV "1" \
|
||||
--dev-bind $chrootEnvPath/ / \
|
||||
--dev-bind-try /media /media \
|
||||
@@ -121,4 +130,4 @@ ln -sfv ../../usr/share/pixmaps/ $chrootEnvPath/amber-ce-tools/data-dir/
|
||||
|
||||
chmod 777 -R $chrootEnvPath/usr/share/icons
|
||||
rm -vfr $chrootEnvPath/dev/*
|
||||
true
|
||||
true
|
||||
|
||||
@@ -14,6 +14,15 @@ export ACE_PACKAGE_NAME=$PKGNAME
|
||||
|
||||
chrootEnvPath=/var/lib/apm/$PKGNAME/files/ace-env
|
||||
|
||||
is_nixos() {
|
||||
[ -f /etc/os-release ] && grep -Eq '^ID="?nixos"?$' /etc/os-release
|
||||
}
|
||||
|
||||
APM_CONTAINER_PATH="/amber-ce-tools/bin-override:$PATH"
|
||||
if is_nixos; then
|
||||
APM_CONTAINER_PATH="/amber-ce-tools/bin-override:/usr/local/bin:/usr/bin/"
|
||||
fi
|
||||
|
||||
# if [ ! -e $chrootEnvPath/finish.flag ];then
|
||||
|
||||
# if [ "$(id -u)" = "0" ]; then
|
||||
@@ -94,7 +103,7 @@ done
|
||||
ENV_VARS=(
|
||||
"FAKEROOTDONTTRYCHOWN 1"
|
||||
"PULSE_SERVER /run/user/\$uid/pulse/native"
|
||||
"PATH /amber-ce-tools/bin-override:\$PATH"
|
||||
"PATH $APM_CONTAINER_PATH"
|
||||
"IS_ACE_ENV 1"
|
||||
"IS_APM_ENV 1"
|
||||
"XDG_DATA_DIRS /amber-ce-tools/additional-data-dir-in-container:\$XDG_DATA_DIRS"
|
||||
@@ -149,5 +158,3 @@ add_command "bash -c \"${container_command}\""
|
||||
|
||||
# 注意: 实际执行时,请确保所有变量(如 $uid, $chrootEnvPath 等)都已正确定义
|
||||
eval ${EXEC_COMMAND}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user