From 27b1f7e9edcf8a49b5eb289efa1eba882e8427f6 Mon Sep 17 00:00:00 2001 From: Pratik Tripathy Date: Mon, 6 Jan 2025 17:39:05 +0530 Subject: [PATCH] fix(install-script): FreeBSD fixes and more - Alias: FreeBSD: pkg update and autoremove aliases added - Install: GhostBSD: Use FreeBSD commands to do the installation - Install: FreeBSD: start dbus - Install: Fedora: improve dnf install speed by limiting minimum download rate & decreasing timeout - Install: Brew: Don't install brew package if OS has installed the package - Install: Brew: sccache for Rust - Install: OS: More packages moved from brew -> OS. Those are available across FreeBSD & Fedora --- README.md | 2 +- linux/.config/shell/aliases_linux.sh | 4 +++ scripts/install-brew-packages.sh | 11 ++++--- scripts/install-os-packages.sh | 8 +++-- scripts/install.sh | 2 +- scripts/package-list-brew | 1 + scripts/package-list-os | 44 +++++++++++++++++++--------- 7 files changed, 50 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 6a45c78..b65a11e 100755 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ That is, changes on repository get auto reflected on the system. ```bash $ git clone https://github.com/pratiktri/dotfiles -$ bash setup.sh -h +$ sh setup.sh -h Apply all settings stored in the script's directory to your home directory. Usage: ./setup.sh [OPTION] diff --git a/linux/.config/shell/aliases_linux.sh b/linux/.config/shell/aliases_linux.sh index b3707a2..52f7e8c 100644 --- a/linux/.config/shell/aliases_linux.sh +++ b/linux/.config/shell/aliases_linux.sh @@ -21,6 +21,8 @@ up(){ update_command="sudo pkcon refresh && sudo pkcon update && sudo apt dist-upgrade && sudo apt autoremove" elif command -v apt-get > /dev/null 2>&1; then update_command="sudo apt-get update && sudo apt-get upgrade && sudo apt dist-upgrade && sudo apt autoremove" + elif command -v pkg > /dev/null 2>&1; then + update_command="sudo pkg update && sudo pkg upgrade && sudo pkg autoremove" fi eval "$update_command" @@ -38,6 +40,8 @@ autorem(){ remove_command="sudo apt autoremove" elif command -v dnf > /dev/null 2>&1; then remove_command="sudo dnf autoremove" + elif command -v pkg > /dev/null 2>&1; then + remove_command="sudo pkg autoremove" fi eval "$remove_command" diff --git a/scripts/install-brew-packages.sh b/scripts/install-brew-packages.sh index de2dfc6..0affd1d 100755 --- a/scripts/install-brew-packages.sh +++ b/scripts/install-brew-packages.sh @@ -29,10 +29,14 @@ install_brew_packages() { \#*) continue ;; esac - # Check if the package exists in the Homebrew repository + # Check if package exists in brew repository and is not already installed on the system if brew search "$brew_package" 2>/dev/null | grep -q "$brew_package"; then - echo "Available: $brew_package" - found_packages="$found_packages $brew_package" + if ! command -v "$brew_package" >/dev/null 2>&1; then + echo "Available: $brew_package" + found_packages="$found_packages $brew_package" + else + echo "Already installed: $brew_package" + fi else not_found_packages="$not_found_packages $brew_package" echo "Unavailable: $brew_package" @@ -59,7 +63,6 @@ main() { input_file_check install_brew - install_brew_packages print_summary "Brew" "$not_found_packages" } diff --git a/scripts/install-os-packages.sh b/scripts/install-os-packages.sh index 8ac6960..8530fd4 100755 --- a/scripts/install-os-packages.sh +++ b/scripts/install-os-packages.sh @@ -26,7 +26,7 @@ setup() { OS_PKG_CHECK_COMMAND="dnf list available" dnf_setup ;; - "freebsd") + "freebsd" | "ghostbsd") OS_INSTALL_COMMAND="pkg install -y" OS_PKG_CHECK_COMMAND="pkg search" freebsd_setup @@ -43,7 +43,8 @@ freebsd_setup() { sudo pkg update && sudo pkg upgrade # Install KDE WM - sudo pkg install -y xorg kde5 sddm nvidia-driver + sudo pkg install -y xorg sddm nvidia-driver + sudo pkg install -y kde5 plasma5-sddm-kcm plasma5-nm # Add current user to video & wheel group sudo pw groupmod video -m "$(whoami)" @@ -55,6 +56,7 @@ freebsd_setup() { # Enable services that will be needed sudo sysrc dbus_enable="YES" sudo sysrc sddm_enable="YES" + sudo service dbus start sudo sysctl net.local.stream.recvspace=65535 sudo sysctl net.local.stream.sendspace=65535 @@ -68,6 +70,8 @@ dnf_setup() { echo "max_parallel_downloads=10" | sudo tee -a /etc/dnf/dnf.conf >/dev/null echo "defaultYes=True" | sudo tee -a /etc/dnf/dnf.conf >/dev/null echo "keepcache=True" | sudo tee -a /etc/dnf/dnf.conf >/dev/null + echo "minrate=40k" | sudo tee -a /etc/dnf/dnf.conf >/dev/null + echo "timeout=20" | sudo tee -a /etc/dnf/dnf.conf >/dev/null # Enable RPM Fusion & Install media codecs sudo dnf install -y https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-"$(rpm -E %fedora)".noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-"$(rpm -E %fedora)".noarch.rpm && sudo dnf groupupdate -y core multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin sound-and-video && sudo dnf makecache diff --git a/scripts/install.sh b/scripts/install.sh index 8fe71d8..c04e7b7 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -17,7 +17,7 @@ rustlang() { manual_installs() { if [ "$(uname -s)" != "FreeBSD" ]; then - kitty_term + kitty_term fi rustlang } diff --git a/scripts/package-list-brew b/scripts/package-list-brew index 853152a..d1432bd 100644 --- a/scripts/package-list-brew +++ b/scripts/package-list-brew @@ -20,6 +20,7 @@ neovim prettierd python@3.12 rclone +sccache shellcheck shodan speedtest-cli diff --git a/scripts/package-list-os b/scripts/package-list-os index 1a33976..27413ab 100644 --- a/scripts/package-list-os +++ b/scripts/package-list-os @@ -5,18 +5,22 @@ apt-transport-https build-essential libreadline-dev libavcodec-extra -nvidia-driver -# Below few are dnf-only packages + +# Below few are dnf-specific packages akmod-nvidia dnf-plugins-core libva-nvidia-driver xorg-x11-drv-nvidia-cuda + # Common aspnetcore-runtime-8.0 bash +bat bleachbit brave-browser +btop cmake +code containerd.io curl docker-buildx-plugin @@ -29,19 +33,27 @@ dotnet-runtime-8.0 dotnet-sdk-8.0 evolution-ews evolution-mapi +fd-find ffmpeg flameshot flatpak +fzf gcc gdb git +gitleaks gnupg go gparted grub-customizer +hadolint htop +inxi +jq +kitty kde-spectacle kitty-terminfo +libreoffice llvm lua5.3 luajit @@ -50,17 +62,25 @@ neovim net-tools node npm +nvidia-driver +nvidia-settings openssh-client python3 python3-pip +podman qbittorrent +rclone ripgrep +sccache +ShellCheck simplescreenrecorder smplayer software-properties-common solaar syncthing tmux +tokei +tree-sitter-cli ufw ulauncher vim @@ -68,27 +88,23 @@ vlc vulkan-tools wget xclip +yt-dlp +zoxide zsh # FreeBSD packages -bat -fd-find -fzf +codespell +dotnet +html +fusefs-lkl firefox-esr gitleaks -jq -kitty -lazygit -libreoffice lua54 -podman -rclone +shfmt sqlite -tokei +stylua tree-sitter vscode -yt-dlp -zoxide # Conflicts on FreeBSD ca-certificates