inst
跳转到导航
跳转到搜索
NB
| Not actively maintained as of April 115 AR. |
A very personal bash script used to install some applications and other things on my Debian system. It is simple, personal, and quite readable, so no explanation is needed—and, like qe and upd, this one is also subject to frequent revisions at my pleasure.
inst
#!/bin/bash
if [ "$1" = "7z" ]; then
curl -L https://www.7-zip.org/download.html -o /tmp/7znvdlinterim.html
curl -L -o /tmp/7znvdlinterim.tar.xz "https://www.7-zip.org/$(grep -oP 'href="a/7z[0-9]{4}-linux-x64\.tar\.xz"' /tmp/7znvdlinterim.html | head -n 1 | cut -d'"' -f2)"
tar -xJf /tmp/7znvdlinterim.tar.xz -C /tmp/ --transform='s/7zz/7znvdlinterim/' 7zz
sudo install -m 755 /tmp/7znvdlinterim /usr/local/bin/7z
rm -rf /tmp/7znvdlinterim*
elif [ "$1" = "bb" ]; then
curl -L https://www.bleachbit.org/download/linux -o /tmp/bleachbitinstallinterim.html
curl -L -o /tmp/bleachbitinstallinterim.deb "$(sed -n 's/.*href="\([^"]*bleachbit_[^"]*debian\([0-9]\+\)\.deb\)".*/\2 \1/p' /tmp/bleachbitinstallinterim.html | sort -nr | head -n 1 | cut -d' ' -f2 | sed 's|/get/|/|')"
sudo dpkg -i /tmp/bleachbitinstallinterim.deb
rm -f /tmp/bleachbitinstallinterim*
elif [ "$1" = "bbb" ]; then
curl -L https://download.bleachbit.org/beta/ -o /tmp/bleachbitbetainstallinterim1.html
curl -L "https://download.bleachbit.org/beta/$(grep -oP 'href="/beta/\K[0-9.]+(?=/")' /tmp/bleachbitbetainstallinterim1.html | sort -Vr | head -n 1)/" -o /tmp/bleachbitbetainstallinterim2.html
curl -L -o /tmp/bleachbitbetainstallinterim.deb "$(grep 'debian13.deb' /tmp/bleachbitbetainstallinterim2.html | sed -n 's/.*href="\([^"]*\)".*/https:\/\/download.bleachbit.org\1/p')"
sudo dpkg -i /tmp/bleachbitbetainstallinterim.deb
rm -f /tmp/bleachbitbetainstallinterim*
elif [ "$1" = "bs" ]; then
cat <<EOF | sudo tee /etc/apt/sources.list.d/backports.list > /dev/null
deb http://deb.debian.org/debian trixie-backports main contrib non-free non-free-firmware
EOF
cat <<EOF | sudo tee /etc/apt/preferences.d/backports.pref > /dev/null
Package: *
Pin: release n=trixie-backports
Pin-Priority: 200
EOF
elif [ "$1" = "rbs" ]; then
sudo rm -f /etc/apt/sources.list.d/backports.list /etc/apt/preferences.d/backports.pref
elif [ "$1" = "et" ]; then
for d in /usr/local/lib/x86_64-linux-gnu/perl/*/auto/Image/ExifTool /usr/local/share/perl/*/Image/ExifTool; do [ -d "$d" ] && sudo rm -rf "$d"; done
[ -f /usr/local/bin/exiftool ] && sudo rm -f /usr/local/bin/exiftool
for f in /usr/local/share/perl/*/Image/ExifTool.pm /usr/local/share/perl/*/Image/ExifTool.pod; do [ -f "$f" ] && sudo rm -f "$f"; done
curl -L https://exiftool.org/rss.xml -o /tmp/exiftoolinstallinterim.xml
curl -L -o /tmp/exiftoolinstallinterim.tar.gz "$(grep -oP "enclosure url='\K[^']*Image-ExifTool-[0-9]+\.[0-9]+\.tar\.gz[^']*" /tmp/exiftoolinstallinterim.xml | head -n 1)"
[ -d "$HOME/.exiftool" ] && sudo rm -rf "$HOME/.exiftool"
mkdir "$HOME/.exiftool"
tar -xzf "/tmp/exiftoolinstallinterim.tar.gz" -C "$HOME/.exiftool" --strip=1
cd $HOME/.exiftool
perl Makefile.PL
sudo make install
rm -f /tmp/exiftoolinstallinterim*
cd $HOME
sudo rm -rf $HOME/.exiftool
elif [ "$1" = "fa" ]; then
sudo install -d -m 0755 /etc/apt/keyrings
sudo wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
sudo cat <<EOF > /etc/apt/sources.list.d/mozilla.sources
Types: deb
URIs: https://packages.mozilla.org/apt
Suites: mozilla
Components: main
Signed-By: /etc/apt/keyrings/packages.mozilla.org.asc
EOF
sudo echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' | sudo tee /etc/apt/preferences.d/mozilla
elif [ "$1" = "fx" ]; then
sudo apt remove --autoremove firefox firefox-esr -y
[ -d "$HOME/.config/mozilla" ] && rm -rf "$HOME/.config/mozilla"
[ -d "$HOME/.cache/mozilla" ] && rm -rf "$HOME/.cache/mozilla"
sudo apt update
sudo apt install firefox -y
sleep 2
firefox &
sleep 5
pkill -f firefox
elif [ "$1" = "fxe" ]; then
sudo apt remove --autoremove firefox firefox-esr -y
[ -d "$HOME/.config/mozilla" ] && rm -rf "$HOME/.config/mozilla"
[ -d "$HOME/.cache/mozilla" ] && rm -rf "$HOME/.cache/mozilla"
sudo apt update
sudo apt install firefox-esr -y
sleep 2
firefox-esr &
sleep 5
pkill -f firefox
elif [ "$1" = "fpf" ]; then
p=$(grep -A 1 '^\[Install[0-9A-F]\{16\}\]' "$HOME/.config/mozilla/firefox/profiles.ini" | grep '^Default=' | sed 's/^Default=//')
if [ -d "$HOME/.config/mozilla/firefox/$p" ]; then
find "$HOME/.config/mozilla/firefox/$p" -mindepth 1 -delete
curl -L -o /tmp/myfirefoxprofilebackup.7z "https://your.domain.com/path/to/your-firefox-profile.7z"
7z x -y /tmp/myfirefoxprofilebackup.7z -o"$HOME/.config/mozilla/firefox/$p"
chmod -R 755 "$HOME/.config/mozilla/firefox/$p"
rm /tmp/myfirefoxprofilebackup.7z
fi
elif [ "$1" = "rfx" ]; then
sudo apt remove --autoremove firefox firefox-esr -y
[ -d "$HOME/.config/mozilla" ] && rm -rf "$HOME/.config/mozilla"
[ -d "$HOME/.cache/mozilla" ] && rm -rf "$HOME/.cache/mozilla"
elif [ "$1" = "fdk" ]; then
sudo sed -i -E '/^deb /{/(^|[[:space:]])contrib([[:space:]]|$)/!{/(^|[[:space:]])non-free([[:space:]]|$)/!{s/( main)([[:space:]].*)?$/\1 contrib non-free\2/}}}' /etc/apt/sources.list
sudo apt update
sudo apt install fdkaac -y
elif [ "$1" = "ff" ]; then
curl -L -o /tmp/fastfetchinstallinterim.deb "https://github.com/fastfetch-cli/fastfetch/releases/latest/download/fastfetch-linux-amd64.deb"
sudo dpkg -i /tmp/fastfetchinstallinterim.deb
rm -f /tmp/fastfetchinstallinterim*
elif [ "$1" = "fm" ]; then
curl -L -o /tmp/ffmpegupdateinterim.tar.xz "https://github.com/yt-dlp/FFmpeg-Builds/releases/latest/download/ffmpeg-master-latest-linux64-gpl.tar.xz"
sudo tar -xJf /tmp/ffmpegupdateinterim.tar.xz -C /usr/local/bin/ "ffmpeg-master-latest-linux64-gpl/bin/ffmpeg" "ffmpeg-master-latest-linux64-gpl/bin/ffplay" "ffmpeg-master-latest-linux64-gpl/bin/ffprobe" --strip-components=2
sudo chmod +x /usr/local/bin/{ffmpeg,ffplay,ffprobe}
rm -f /tmp/ffmpegupdateinterim*
elif [ "$1" = "fonts" ]; then
curl -L -o /tmp/personalfontscollectioninterim.7z "https://your.domain.com/path/to/your-font-collection.7z"
mkdir -p /tmp/personalfontscollectioninterim
7z x -y /tmp/personalfontscollectioninterim.7z -o/tmp/personalfontscollectioninterim
chmod -R 755 /tmp/personalfontscollectioninterim
sudo mv -f /tmp/personalfontscollectioninterim/* /usr/share/fonts/
rm -rf /tmp/personalfontscollectioninterim*
sudo fc-cache -f -v
elif [ "$1" = "fy" ]; then
sudo apt update
sudo apt install libqt6concurrent6 -y
curl -L -o /tmp/fooyininstallinterim.json "https://api.github.com/repos/fooyin/fooyin/releases/latest"
curl -L -o /tmp/fooyininstallinterim.deb "$(grep -oP '"browser_download_url":\s*"\Khttps://[^"]*fooyin_[^"]*trixie_amd64\.deb' /tmp/fooyininstallinterim.json | head -n1)"
sudo dpkg -i /tmp/fooyininstallinterim.deb
rm -f /tmp/fooyininstallinterim*
elif [ "$1" = "jpl" ]; then
curl -L -o /tmp/jpegliinstallintrim.7z "https://your.domain.com/path/to/your-jpegli-binaries.7z"
sudo 7z x -y /tmp/jpegliinstallintrim.7z -o/usr/local/bin/
sudo chmod +x /usr/local/bin/{cjpegli,djpegli}
rm -f /tmp/jpegliinstallintrim*
elif [ "$1" = "nn" ]; then
[ ! -d /usr/local/apps/ ] && sudo mkdir -p /usr/local/apps/
sudo chmod -R 755 /usr/local/apps/
curl -L -o /tmp/notepadnextinstallintrim.json "https://api.github.com/repos/dail8859/NotepadNext/releases/latest"
sudo curl -L -o /usr/local/apps/NotepadNext.AppImage "$(grep -oP '"browser_download_url":\s*"\Khttps://[^"]*x86_64\.AppImage' /tmp/notepadnextinstallintrim.json | head -n1)"
sudo chmod +x /usr/local/apps/NotepadNext.AppImage
if [ ! -f /usr/local/bin/npp ]; then
echo '#!/bin/bash
/usr/local/apps/NotepadNext.AppImage "$@"' | sudo tee /usr/local/bin/npp > /dev/null
sudo chmod +x /usr/local/bin/npp
fi
rm -f /tmp/notepadnextinstallintrim*
elif [ "$1" = "os" ]; then
cat <<EOF | sudo tee /etc/apt/sources.list.d/oldstable.list > /dev/null
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
EOF
cat <<EOF | sudo tee /etc/apt/preferences.d/oldstable.pref > /dev/null
Package: *
Pin: release n=bookworm
Pin-Priority: 100
EOF
elif [ "$1" = "ros" ]; then
sudo rm -f /etc/apt/sources.list.d/oldstable.list /etc/apt/preferences.d/oldstable.pref
elif [ "$1" = "oo" ]; then
curl -L -o /tmp/onlyofficeinstallinterim.deb "https://github.com/ONLYOFFICE/DesktopEditors/releases/latest/download/onlyoffice-desktopeditors_amd64.deb"
sudo dpkg -i /tmp/onlyofficeinstallinterim.deb
rm -f /tmp/onlyofficeinstallinterim*
elif [ "$1" = "oc" ]; then
sudo apt update
sudo apt install python3-pip -y
sudo pip install opencc --break-system-packages
elif [ "$1" = "pd" ]; then
curl -L -o /tmp/pandocinstallinterim.html "https://github.com/jgm/pandoc/releases/latest"
curl -L -o /tmp/pandocinstallinterim.deb "https://github.com/jgm/pandoc/releases/latest/download/pandoc-$(grep -oP '<title>Release pandoc \K[0-9.]+(?= · jgm/pandoc · GitHub</title>)' /tmp/pandocinstallinterim.html | head -n1)-1-amd64.deb"
sudo dpkg -i /tmp/pandocinstallinterim.deb
rm -f /tmp/pandocinstallinterim*
elif [ "$1" = "qv" ]; then
[ ! -d /usr/local/apps/ ] && sudo mkdir -p /usr/local/apps/
sudo chmod -R 755 /usr/local/apps/
curl -L -o /tmp/qviewinstallintrim.json "https://api.github.com/repos/jurplel/qView/releases/latest"
sudo curl -L -o /usr/local/apps/qView.AppImage "$(grep -oP '"browser_download_url":\s*"\Khttps://[^"]*x86_64\.AppImage' /tmp/qviewinstallintrim.json | head -n1)"
sudo chmod +x /usr/local/apps/qView.AppImage
if [ ! -f /usr/local/bin/qv ]; then
echo '#!/bin/bash
/usr/local/apps/qView.AppImage "$@"' | sudo tee /usr/local/bin/qv > /dev/null
sudo chmod +x /usr/local/bin/qv
fi
rm -f /tmp/qviewinstallintrim*
elif [ "$1" = "rm" ]; then
sudo apt remove --purge ibus fcitx -y
sudo apt autoremove -y
sudo apt update
sudo apt install fcitx5 fcitx5-rime fcitx5-frontend-qt6 fcitx5-frontend-gtk3 fcitx5-config-qt -y
if [ ! -f ~/.xprofile ]; then
touch ~/.xprofile
fi
if ! grep 'fcitx5' ~/.xprofile; then
cat <<EOL >> ~/.xprofile
export XMODIFIERS=@im=fcitx5
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export CLUTTER_IM_MODULE=fcitx5
export SDL_IM_MODULE=fcitx5
EOL
fi
im-config -n none
elif [ "$1" = "rmc" ]; then
cat > "$HOME/.local/share/fcitx5/rime/default.custom.yaml" <<EOL
patch:
schema_list:
- schema: luna_pinyin_tw
- schema: luna_pinyin_fluency
- schema: luna_pinyin_simp
EOL
elif [ "$1" = "sg" ]; then
wget -O /tmp/sarasafontupdateinterim.html https://github.com/be5invis/Sarasa-Gothic/releases/latest
wget -O /tmp/sarasafontupdateinterim.7z $(grep -oP 'href="https://github.com/be5invis/Sarasa-Gothic/releases/download/v[0-9.]+/Sarasa-TTC-[0-9.]+\.7z"' /tmp/sarasafontupdateinterim.html | head -n 1 | cut -d'"' -f2)
mkdir -p /tmp/sarasafontupdateinterim
7z x -y /tmp/sarasafontupdateinterim.7z -o/tmp/sarasafontupdateinterim
chmod -R 755 /tmp/sarasafontupdateinterim
sudo mv -f /tmp/sarasafontupdateinterim/* /usr/share/fonts/
rm -rf /tmp/sarasafontupdateinterim*
sudo fc-cache -f -v
elif [ "$1" = "tb" ]; then
curl -L https://www.torproject.org/download/ -o /tmp/torbdlinterim.html
curl -L -o /tmp/torbdlinterim.tar.xz "https://www.torproject.org$(grep -oP 'href="/dist/torbrowser/[0-9.]+/tor-browser-linux-x86_64-[0-9.]+\.tar\.xz"' /tmp/torbdlinterim.html | head -n 1 | cut -d'"' -f2)"
mkdir -p ~/.tor
tar --strip-components=2 -xf /tmp/torbdlinterim.tar.xz -C ~/.tor tor-browser/Browser
chmod -R 755 ~/.tor
echo '#!/bin/bash
~/.tor/start-tor-browser --detach' | sudo tee /usr/local/bin/torb > /dev/null
sudo chmod +x /usr/local/bin/torb
rm -f /tmp/torbdlinterim*
elif [ "$1" = "vmt" ]; then
sudo apt update
sudo apt install open-vm-tools-desktop -y
elif [ "$1" = "xp" ]; then
sudo apt update
sudo apt install xclip pkexec -y
elif [ "$1" = "yt" ]; then
[ -d "$HOME/.deno" ] && rm -rf "$HOME/.deno"
sudo curl -fsSL https://deno.land/install.sh | sh
sudo curl -L -o /usr/local/bin/yt-dlp "https://github.com/yt-dlp/yt-dlp-nightly-builds/releases/latest/download/yt-dlp"
sudo chmod +x /usr/local/bin/yt-dlp
else
echo '
═══ Which one do you want to install? ═══
7z ....................... 7-zip
bb ................... BleachBit
└─bbb ........ BleachBit (beta)
bs ........... add backports src
└─rbs ........ rm backports src
et .................... ExifTool
fa ...... add Firefox repository
├─fx ........ Firefox (current)
├─fxe ............. Firefox ESR
├─fpf ...... pre-packed Profile
└─rfx .......... remove Firefox
fdk ..................... fdkaac
ff ................... fastfetch
fm ...................... FFmpeg
fonts .......... Font Collection
fy ...................... fooyin
jpl ..................... jpegli
nn ................. NotepadNext
os ........... add oldstable src
└─ros ........ rm oldstable src
oo .................. ONLYOFFICE
oc ...................... OpenCC
pd ...................... Pandoc
qv ....................... qView
rm ........................ RIME
└─rmc .......... configure RIME
sg ............... Sarasa Gothic
tb ................. Tor Browser
vmt .............. Open VM Tools
xp .............. xclip + pkexec
yt ...................... yt-dlp
'
exit 0
fi