Is there a way to reset installed packages to basic?

I was wondering if there is a way to reset installed packages to basic? (I suppose like “Refresh” for Windoze. I have added too many applications, most of which I do not even use (just passing interest that I thought I would try in the future), and would like to reduce that to bare minimum number of applications and go from there again. I would prefer to keep personal data intact if possible, really just to not have to download several 20+ GB games in Steam again, but I can just reinstall a version of Garuda from scratch if needed. I have been using Garuda for over a year without issues until recently.

I have tried several Linux Distributions in the past and they all invevitably end up in a “Dependency Hell” state where all the different applications require so many different dependencies, even different versions of dependencies and compliled with different options, that something or another breaks irreprably. I have tried separate Root and Home partitions so could just update the Root partition, but that caused space issues no matter what. I am very thankful I found Garuda, particularly with the BTRFS and Snapper features. But I still eventually end up in Dependency Hell. There are so many applications with so many dependencies, I spend more time trying to figure out what went wrong than I do just using the system.

For Garuda, in the past months, I have encountered more and more errors while updating, and being offered install options (choose to install this package or this package) but without any clear explanations about why and what are the consequences. I was hoping Garuda was completely hands-off, with no worrying about the next update wrecking the system functionality, but that does not seem to be the case. So I would like to reduce issues to a minimum and just install the bare minimum, so I have less to troubleshoot.

As you see below, I’ve held off on updating for a while because the last one rendered KDE broken, among other things. I actually had to use Snapper to revert to before the update and things are still not that stable. I just want to reset everything to something simple and working.

System:
Kernel: 6.8.2-zen2-1-zen arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
clocksource: tsc avail: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=142514e1-03ba-4679-9e53-322b6d546a88 rw rootflags=subvol=@
quiet quiet rd.udev.log_priority=3 vt.global_cursor_default=0 loglevel=3
ibt=off
Desktop: KDE Plasma v: 6.0.3 tk: Qt v: N/A info: frameworks v: 6.0.0
wm: kwin_x11 vt: 2 dm: SDDM Distro: Garuda base: Arch Linux
Machine:
Type: Desktop Mobo: Gigabyte model: H87M-D3H v: x.x
serial: <superuser required> uuid: <superuser required>
UEFI: American Megatrends v: F10 date: 07/16/2014
CPU:
Info: model: Intel Core i5-4670 bits: 64 type: MCP arch: Haswell gen: core 4
level: v3 note: check built: 2013-15 process: Intel 22nm family: 6
model-id: 0x3C (60) stepping: 3 microcode: 0x28
Topology: cpus: 1x cores: 4 smt: <unsupported> cache: L1: 256 KiB
desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB desc: 4x256 KiB L3: 6 MiB
desc: 1x6 MiB
Speed (MHz): avg: 3787 high: 3800 min/max: 800/3800 scaling:
driver: intel_cpufreq governor: performance cores: 1: 3751 2: 3800 3: 3800
4: 3800 bogomips: 27137
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: Intel Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics
vendor: Gigabyte driver: i915 v: kernel arch: Gen-7.5 process: Intel 22nm
built: 2013 ports: active: none empty: HDMI-A-1,HDMI-A-2,VGA-1
bus-ID: 00:02.0 chip-ID: 8086:0412 class-ID: 0300
Device-2: NVIDIA GP106 [GeForce GTX 1060 3GB] vendor: eVga.com.
driver: nvidia v: 550.67 alternate: nouveau,nvidia_drm non-free: 545.xx+
status: current (as of 2024-02; EOL~2026-12-xx) arch: Pascal code: GP10x
process: TSMC 16nm built: 2016-2021 pcie: gen: 2 speed: 5 GT/s lanes: 4
link-max: lanes: 16 ports: active: none off: DVI-D-1 empty: DP-1, DP-2,
DP-3, HDMI-A-3 bus-ID: 05:00.0 chip-ID: 10de:1c02 class-ID: 0300
Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.4
compositor: kwin_x11 driver: X: loaded: modesetting,nvidia unloaded: nouveau
alternate: fbdev,intel,nv,vesa dri: crocus gpu: nvidia,nvidia-nvswitch
display-ID: :0 screens: 1
Screen-1: 0 s-res: 1920x1080 s-dpi: 92 s-size: 530x301mm (20.87x11.85")
s-diag: 610mm (24")
Monitor-1: DVI-D-1 mapped: DVI-D-0 note: disabled model: Acer G246HL
serial: <filter> built: 2013 res: 1920x1080 hz: 60 dpi: 92 gamma: 1.2
size: 531x299mm (20.91x11.77") diag: 609mm (24") ratio: 16:9 modes:
max: 1920x1080 min: 640x480
API: EGL v: 1.5 hw: drv: intel crocus drv: nvidia platforms: device: 0
drv: nvidia device: 1 drv: crocus device: 3 drv: swrast surfaceless:
drv: nvidia x11: drv: nvidia inactive: gbm,wayland,device-2
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 550.67
glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce GTX 1060
3GB/PCIe/SSE2 memory: 2.93 GiB
API: Vulkan v: 1.3.279 layers: 12 device: 0 type: discrete-gpu name: NVIDIA
GeForce GTX 1060 3GB driver: nvidia v: 550.67 device-ID: 10de:1c02
surfaces: xcb,xlib device: 1 type: integrated-gpu name: Intel HD Graphics
4600 (HSW GT2) driver: mesa intel v: 24.0.3-arch1.2 device-ID: 8086:0412
surfaces: xcb,xlib device: 2 type: cpu name: llvmpipe (LLVM 17.0.6 256
bits) driver: mesa llvmpipe v: 24.0.3-arch1.2 (LLVM 17.0.6)
device-ID: 10005:0000 surfaces: xcb,xlib
Audio:
Device-1: Intel Xeon E3-1200 v3/4th Gen Core Processor HD Audio
driver: snd_hda_intel v: kernel bus-ID: 00:03.0 chip-ID: 8086:0c0c
class-ID: 0403
Device-2: Intel 8 Series/C220 Series High Definition Audio
vendor: Gigabyte 8 driver: snd_hda_intel v: kernel bus-ID: 00:1b.0
chip-ID: 8086:8c20 class-ID: 0403
Device-3: NVIDIA GP106 High Definition Audio vendor: eVga.com.
driver: snd_hda_intel v: kernel pcie: gen: 2 speed: 5 GT/s lanes: 4
link-max: lanes: 16 bus-ID: 05:00.1 chip-ID: 10de:10f1 class-ID: 0403
API: ALSA v: k6.8.2-zen2-1-zen status: kernel-api with: aoss
type: oss-emulator tools: alsactl,alsamixer,amixer
Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
Server-2: PipeWire v: 1.0.4 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
vendor: Gigabyte driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s
lanes: 1 port: e000 bus-ID: 02:00.0 chip-ID: 10ec:8168 class-ID: 0200
IF: enp2s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
IF-ID-1: anbox0 state: down mac: <filter>
Info: services: NetworkManager, smbd, systemd-networkd, systemd-timesyncd
Drives:
Local Storage: total: 1.82 TiB used: 962.43 GiB (51.7%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/sda maj-min: 8:0 vendor: Toshiba model: MG04ACA200N
size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 1.5 Gb/s
tech: HDD rpm: 7200 serial: <filter> fw-rev: FJ3A scheme: GPT
Partition:
ID-1: / raw-size: 1.82 TiB size: 1.82 TiB (100.00%) used: 962.43 GiB (51.7%)
fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 584 KiB (0.2%) fs: vfat dev: /dev/sda1 maj-min: 8:1
ID-3: /home raw-size: 1.82 TiB size: 1.82 TiB (100.00%)
used: 962.43 GiB (51.7%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-4: /var/log raw-size: 1.82 TiB size: 1.82 TiB (100.00%)
used: 962.43 GiB (51.7%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-5: /var/tmp raw-size: 1.82 TiB size: 1.82 TiB (100.00%)
used: 962.43 GiB (51.7%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 31.2 GiB used: 0 KiB (0.0%) priority: 100
comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 4 dev: /dev/zram0
Sensors:
System Temperatures: cpu: 44.0 C mobo: N/A gpu: nvidia temp: 40 C
Fan Speeds (rpm): N/A gpu: nvidia fan: 0%
Info:
Memory: total: 32 GiB available: 31.2 GiB used: 2.7 GiB (8.6%)
Processes: 232 Power: uptime: 1h 43m states: freeze,mem,disk suspend: deep
avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
suspend, test_resume image: 12.44 GiB services: org_kde_powerdevil,upowerd
Init: systemd v: 255 default: graphical tool: systemctl
Packages: pm: pacman pkgs: 2069 libs: 593 tools: octopi,paru,trizen
Compilers: clang: 17.0.6 gcc: 13.2.1 Shell: garuda-inxi default: Bash
v: 5.2.26 running-in: konsole inxi: 3.3.33
Garuda (2.6.23-1):
System install date:     2023-02-26
Last full system update: 2024-03-30
Is partially upgraded:   No
Relevant software:       snapper NetworkManager mkinitcpio nvidia-dkms
Windows dual boot:       No/Undetected
Failed units:            anbox-container-manager.service systemd-networkd-wait-online.service

It is too late here, so I am not checking all details here. I see it is quite some time since you updated Garuda, and there are some Failed units.
Not fully sure, but maybe you can try the option “Reinstall all packages” from Garuda assistant:

1 Like

The suggestion from @mad reinstalls all existing packages, but does not reset the installation to its original state. If you do that, dependencies on packages that were installed later will be missing. You can only reset everything at once by loading a snapshot and then updating the entire system.

When testing software, it is best to do this in a VM. Then you won’t fill up your system unnecessarily.

If you are offered installation options for updates, these packages usually do not come from Garuda but from Arch Linux. Announcements and information about this can be found at https://archlinux.org/.

Since you obviously have no problem reinstalling Garuda, my recommendation would be: Yes, do it.
That way you have a clean and solid foundation, and that is the most important thing.
Daily builds of Garuda Dr460nized can be found here: https://iso.builds.garudalinux.org/iso/garuda/dr460nized/.

You have recognized your problem and answered your question yourself :wink:
This is called the KISS principle :smiley:

2 Likes

That is unfortunate, but thank you for the clear, and quick, answers. I’ll be more careful and go one package at a time as my interest comes and goes. I am still finding lots of things I never even realized I had installed so long ago, but just never got around to trying.

I know what you mean, Windows Refresh reinstalls Windows without losing installed applications and personal files. But Linux is not Windows.

A Linux distribution is modular, with the Linux kernel on the one hand and many individual packages around it on the other - and these dependencies are part of it. This is a different principle to Windows.

Simply uninstall the applications you no longer need, clean up the pacman cache and remove orphaned packages (be careful which orphans you remove).

As I wrote above, keep your system clean and use a VM to try out applications.

2 Likes

if testing things i recommend distrobox its easy to start over an as long as you dont set weird flags wont affect your main system

1 Like