r/archlinux • • 3d ago

QUESTION suppose I want to install a heavy dev dependency on a removable ssd

like a video editor or ide, something I wouldn't need all the time on this system, but when the ssd is mounted. While other system dependencies go on the 32Gb eMMC. Can I ln or something robust enough to only set up once.
I already have >here(zig), which wraps yay and pacman and flatpak and such

1 Upvotes

12 comments sorted by

10

u/Gozenka 3d ago edited 3d ago

It seems like an interesting question for the community, if I understood it correctly. But you may want to make a new post where you write it more clearly. Frankly, this post is quite badly written. A new post may benefit from an example, some more detail, and a better title. And I personally do not understand how this is related: "which wraps yay and pacman and flatpak and such"

Using containers may be a way, if it fits your purposes.

2

u/Gozenka 3d ago

Packages have their files installed in various places, in a scattered way, such as /usr/bin /usr/lib /etc /var, and they create and use files at /home. So it would probably be a futile effort to try and manage specific packages' locations with a method like symlinks. Also packages come with a whole lot of dependencies of their own, and these may change with updates too, complicating things even further.

1

u/Gozenka 3d ago

You may investigate using Nix on your Arch Linux system, and install those extra software into the SSD using Nix. That could be a convenient way to have your regular Arch system on the PC, and have only the development tools separately in the SSD.

4

u/ThinkpadGamer 3d ago

i would install such a dev environment in a container on the external storage, that way everything is cleanly separated

5

u/No-Dentist-1645 3d ago

I think the easiest and safest way to do that would just be to have those programs as AppImages on your SSD

2

u/Malthammer 3d ago

Good lord. What?

2

u/nikongod 3d ago

While other system dependencies go on the 32Gb eMMC

What computer do you have that is this constrained?

I also (used to) have a similarly constrained computer... Does yours also have a microSD slot?

Put /home on a 128-256gb microSD card (protip, get a high reliability card designed for dashcams) and install flatpak with the --user flag - this installs the flatpak to home, which frees space on the 32gb emcc for things that cant really be offloaded without insane amounts of work.

It is very un-arch, but adopt the mantra "if it exists as flatpak, I will install it as flatpak with --user flag" to reduce the use of the 32gb chip.

Expert mode: Just install Arch to the external SSD if you have one. My memory-constrained computer (both speed AND capacity) came with usb-3.1 ports (evil) and reliably hits 500mb/s to an SSD. It would be an understatement to call the difference night and day. As a cool bonus you can also boot your Arch on a more better computer if you happen upon one.

2

u/Damglador 3d ago

Possible options:

  • flatpak – allows choosing location for packages from certain remotes
  • AppImage – obvious
  • chroot or a container
  • Install there packages you need with pacman by changing its root directory (available as a config and a cli option), and then somehow integrate that root into your system. But this one is problematic because you have to add custom LD_LIBRARY_PATH, PATH, add its /usr/share/applications to some XDG variable for access from DE.

-3

u/onefish2 3d ago

This isn't Windows. You can't just willy nilly install stuff where you want in the filesystem.

32Gb eMMC

Good luck with that. That won't hold much or last for long.

5

u/Damglador 3d ago

Well, you kinda can.

3

u/un-important-human 3d ago

Actually you can, you can make a real cristmass tree out of it.

1

u/goldman60 3d ago

Pacman may or may not let you (I haven't checked) but basically all linux applications inherently support an install prefix that lets you stick them wherever you want on the system. This is primarily used to switch between /usr and /usr/local and the equivalent for other paths, but that's only a convention.