Fedora Fix

This commit is contained in:
MangoPig
2026-05-31 20:48:18 +01:00
parent 5e7031d700
commit 1e2515a21a
6 changed files with 102 additions and 12 deletions

18
.zshenv
View File

@@ -12,4 +12,20 @@ export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME="$AZURE_URL"
export VAULT_ADDR="http://192.168.30.53:8200"
export OPENCHAMBER_UI_PASSWORD="$VM_SUDO_PASS"
export AZURE_RESOURCE_NAME="$AZURE_URL"
export PLANNOTATOR_PORT=9999
export PLANNOTATOR_PORT=9999
# OpenCode Secrets
export TAOBAO_API_KEY="sk-BCjuuzYOkaR0L1lBpcqP4N9VWnIh6XoVWghltVjBvk5GQneL"
export AZURE_OPENAI_API_KEY="6ebJTnqeDNv66eoYUmKscjb9bOmR1gE7vRcBnH9zLFnFT1Dy6a6XJQQJ99CBACfhMk5XJ3w3AAAAACOGDFaj"
export FOUNDRY_ANTHROPIC_API_KEY="$AZURE_OPENAI_API_KEY"
export CHROMA_OPENAI_API_KEY="$AZURE_OPENAI_API_KEY"
export OUTLINE_MOKU_TOKEN="ol_api_jZbStf5YaAxWlfT5fE79xgKPKW82cfUn8NaSK9"
export OUTLINE_MOKU_AUTHORIZATION="Bearer $OUTLINE_MOKU_TOKEN"
export DOKPLOY_API_KEY="CkiyeXRRImWOKeVkFAAfdoBjwHmbXoSKXNRWFwnhjKlhHnTkxBfVZDpvmXYAWgbQ"
export N8N_AUTH="725ce955821a3f92c9e85d428cd157a890c6209f254a8d31edca41ddc4b8a324"
export CONTEXT7_API_KEY="ctx7sk-3c4a0f0a-f9c4-4d45-a2a1-765f5dfa33ba"
export GITEA_ACCESS_TOKEN="51bd8f571def772ed54a3e8317189abaa7d5a1e5"
export NETDATA_TOKEN="67e9f974-be37-4bbd-9d1e-4541613fa119"
export OBSIDIAN_API_KEY="360159f3b5b72953b3dd28ebd8e24215117e67478a7333bcc6c0e43a4bfc3720"

View File

@@ -7,7 +7,8 @@ all: stow
# Full Setup
setup:
@rm -f $(REBOOT_MARKER); \
@set -e; \
rm -f $(REBOOT_MARKER); \
bash ./scripts/base.sh; \
if [ -f $(REBOOT_MARKER) ]; then \
rm -f $(REBOOT_MARKER); \
@@ -50,7 +51,7 @@ clean:
# Pull Git Updates
update:
git pull origin main
make setup
$(MAKE) setup
# Language Setups
node:

0
TODO.md Normal file
View File

View File

@@ -33,7 +33,7 @@ PACKAGES=(
python bison mercurial
ripgrep fd bat fzf jq
btop httpie gnupg
zoxide stow
zoxide stow direnv
bind nmap socat tcpdump net-tools
strace gdb hexyl
ninja-build libcurl4-openssl-dev
@@ -134,6 +134,7 @@ fi
if is_fedora_family; then
FINAL_PACKAGES+=(ca-certificates pkgconf-pkg-config cmake)
FINAL_PACKAGES+=(R-core gcc-gfortran bzip2 bzip2-devel readline-devel sqlite sqlite-devel tk-devel libffi-devel xz xz-devel ncurses-devel zlib-devel findutils llvm)
fi
echo -e "${BLUE} LOG:${YELLOW} Installing: ${NC}${FINAL_PACKAGES[*]}"
@@ -159,8 +160,24 @@ cp -f "$REPO_ROOT/bin/"* "$HOME/.local/bin/"
chmod +x "$HOME/.local/bin/"*
if ! command -v rclone &> /dev/null; then
echo -e "${BLUE} LOG:${YELLOW} Installing Rclone (Latest)...${NC}"
curl https://rclone.org/install.sh | sudo bash
echo -e "${BLUE} LOG:${YELLOW} Installing Rclone CLI...${NC}"
case "$ARCH" in
x86_64)
RCLONE_ARCH="amd64"
;;
aarch64)
RCLONE_ARCH="arm64"
;;
esac
TEMP_DIR="$(mktemp -d)"
RCLONE_ZIP="$TEMP_DIR/rclone.zip"
curl -fLsS "https://downloads.rclone.org/rclone-current-linux-${RCLONE_ARCH}.zip" -o "$RCLONE_ZIP"
unzip -q "$RCLONE_ZIP" -d "$TEMP_DIR"
install -m 755 "$TEMP_DIR"/rclone-*-linux-"${RCLONE_ARCH}"/rclone "$HOME/.local/bin/rclone"
rm -rf "$TEMP_DIR"
fi
if ! command -v earthly &> /dev/null; then
@@ -236,8 +253,17 @@ rm -f "$HOME/.zshrc" "$HOME/.zsh_aliases"
touch "$HOME/.zsh_secrets"
# 7. Set Shell
if [ "$SHELL" != "$(which zsh)" ]; then
sudo chsh -s "$(which zsh)" $(whoami)
TARGET_SHELL="$(command -v zsh)"
CURRENT_LOGIN_SHELL="$(getent passwd "$(whoami)" | cut -d: -f7)"
if [ "$CURRENT_LOGIN_SHELL" != "$TARGET_SHELL" ]; then
if command -v chsh >/dev/null 2>&1; then
sudo chsh -s "$TARGET_SHELL" "$(whoami)"
elif command -v usermod >/dev/null 2>&1; then
sudo usermod -s "$TARGET_SHELL" "$(whoami)"
else
echo -e "${YELLOW} NOTE:${NC} Could not find chsh/usermod. Please change your login shell to $TARGET_SHELL manually."
fi
fi
echo -e "${GREEN} LOG: Base System Setup Complete.${NC}"

View File

@@ -39,6 +39,39 @@ mark_reboot_required() {
echo ""
}
get_atomic_requested_packages() {
local python_bin=""
local candidate
for candidate in python3 python /usr/libexec/platform-python; do
if command -v "$candidate" >/dev/null 2>&1; then
python_bin="$candidate"
break
fi
done
if [ -z "$python_bin" ]; then
return 0
fi
rpm-ostree status --json 2>/dev/null | "$python_bin" -c '
import json, sys
try:
data = json.load(sys.stdin)
except Exception:
raise SystemExit(0)
for deployment in data.get("deployments", []):
if deployment.get("booted"):
for key in ("requested-packages", "requested-local-packages"):
for package in deployment.get(key, []):
if package:
print(package)
break
'
}
install_packages() {
local packages=("$@")
@@ -59,11 +92,25 @@ install_packages() {
if is_fedora_family; then
if is_atomic_fedora; then
local requested_pkg
local missing_packages=()
declare -A requested_packages=()
local pkg
while IFS= read -r requested_pkg; do
[ -n "$requested_pkg" ] && requested_packages["$requested_pkg"]=1
done < <(get_atomic_requested_packages)
for pkg in "${packages[@]}"; do
rpm -q "$pkg" >/dev/null 2>&1 || missing_packages+=("$pkg")
if rpm -q "$pkg" >/dev/null 2>&1; then
continue
fi
if [ -n "${requested_packages[$pkg]:-}" ]; then
continue
fi
missing_packages+=("$pkg")
done
if [ ${#missing_packages[@]} -eq 0 ]; then

View File

@@ -82,7 +82,7 @@ elif is_fedora_family; then
echo -e "${BLUE} LOG:${YELLOW} Fedora detected. Using system R...${NC}"
install_status=0
install_packages R gcc-gfortran curl tar || install_status=$?
install_packages R-core gcc-gfortran curl tar || install_status=$?
if [ "$install_status" -eq 42 ]; then
exit 0
elif [ "$install_status" -ne 0 ]; then
@@ -96,8 +96,8 @@ else
exit 1
fi
echo -e "${BLUE} LOG:${YELLOW} Installing 'renv' package globally...${NC}"
echo -e "${BLUE} LOG:${YELLOW} Installing 'renv' package in the user R library...${NC}"
$R_BIN -e 'if (!require("renv", quietly=TRUE)) install.packages("renv", repos="https://cloud.r-project.org")'
$R_BIN -e 'user_lib <- path.expand(Sys.getenv("R_LIBS_USER", unset = "~/R/library")); dir.create(user_lib, recursive = TRUE, showWarnings = FALSE); .libPaths(c(user_lib, .libPaths())); if (!require("renv", quietly=TRUE)) install.packages("renv", lib = user_lib, repos = "https://cloud.r-project.org")'
echo -e "${GREEN} SUCCESS:${NC} R setup completed."