内存泄露问题解决
This commit is contained in:
lincube
2026-03-07 22:05:18 +08:00
parent 49b18d6af1
commit 435b96c50c
11 changed files with 418 additions and 185 deletions

View File

@@ -11,6 +11,74 @@ ICONS_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/icons/hicolor/256x256/apps"
DESKTOP_TARGET="$APPLICATIONS_DIR/LanMountainDesktop.desktop"
ICON_TARGET="$ICONS_DIR/lanmountaindesktop.png"
check_audio_dependencies() {
MISSING_DEPS=""
if command -v dpkg >/dev/null 2>&1; then
if ! dpkg -s libportaudio2 >/dev/null 2>&1; then
MISSING_DEPS="$MISSING_DEPS libportaudio2"
fi
if ! dpkg -s libasound2 >/dev/null 2>&1; then
MISSING_DEPS="$MISSING_DEPS libasound2"
fi
elif command -v rpm >/dev/null 2>&1; then
if ! rpm -q portaudio-libs >/dev/null 2>&1; then
MISSING_DEPS="$MISSING_DEPS portaudio-libs"
fi
if ! rpm -q alsa-lib >/dev/null 2>&1; then
MISSING_DEPS="$MISSING_DEPS alsa-lib"
fi
elif command -v pacman >/dev/null 2>&1; then
if ! pacman -Q portaudio >/dev/null 2>&1; then
MISSING_DEPS="$MISSING_DEPS portaudio"
fi
if ! pacman -Q alsa-lib >/dev/null 2>&1; then
MISSING_DEPS="$MISSING_DEPS alsa-lib"
fi
elif command -v apk >/dev/null 2>&1; then
if ! apk -e info portaudio >/dev/null 2>&1; then
MISSING_DEPS="$MISSING_DEPS portaudio"
fi
if ! apk -e info alsa-lib >/dev/null 2>&1; then
MISSING_DEPS="$MISSING_DEPS alsa-lib"
fi
fi
if [ -n "$MISSING_DEPS" ]; then
return 1
fi
return 0
}
install_audio_dependencies() {
if command -v apt-get >/dev/null 2>&1; then
sudo apt-get update
sudo apt-get install -y libportaudio2 libasound2
elif command -v dnf >/dev/null 2>&1; then
sudo dnf install -y portaudio-libs alsa-lib
elif command -v yum >/dev/null 2>&1; then
sudo yum install -y portaudio-libs alsa-lib
elif command -v pacman >/dev/null 2>&1; then
sudo pacman -S --noconfirm portaudio alsa-lib
elif command -v apk >/dev/null 2>&1; then
sudo apk add portaudio alsa-lib
else
printf '%s\n' "Warning: Could not detect package manager. Please install audio dependencies manually:"
printf '%s\n' " - libportaudio2 (or portaudio-libs/portaudio)"
printf '%s\n' " - libasound2 (or alsa-lib)"
fi
}
if ! check_audio_dependencies; then
printf '%s\n' "Installing audio dependencies for recording features..."
install_audio_dependencies
if ! check_audio_dependencies; then
printf '%s\n' "Warning: Audio dependencies may not be installed correctly."
printf '%s\n' "Recording and study monitoring features may not work properly."
fi
fi
mkdir -p "$APPLICATIONS_DIR" "$ICONS_DIR"
cp "$ICON_SOURCE" "$ICON_TARGET"