this post was submitted on 07 Jan 2025
64 points (82.0% liked)

Linux

49107 readers
1240 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
top 19 comments
sorted by: hot top controversial new old
[–] [email protected] 17 points 2 weeks ago (3 children)

curl -fsSL https://ollama.com/install.sh | sh

Yeah... No. What's with the kids these days and shitty install scripts for Linux?

[–] [email protected] 11 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

This is definitely not a "these days" thing, it's been around for a while, it's even less explicable now though that flatpak, snap, npm, conda, venvs and docker exist.

[–] [email protected] 10 points 2 weeks ago (1 children)

This one happily modifies system repositories for you too which is "great". This whole practice needs to stop.

[–] [email protected] 3 points 1 week ago

Fucking hell that's awful

[–] [email protected] 3 points 2 weeks ago (1 children)
[–] [email protected] 27 points 2 weeks ago (1 children)

I feel like it should be self evident - but I'll outline a few of the specifics.

"Hey kids - just run this rando internet script directly without inspecting it first"

Firstly - you shouldn't copy/paste directly into the terminal at all. What you copy and paste may not be what you see: example. So even "simple" things could turn bad. Paste to an editor first, then your terminal - especially if you've used "sudo" recently. It's simply bad security hygiene to just run random code in a shell and to get people used to doing so.

Secondly - you're just running some rando un-structured shell script. They can, and do, do whatever they want and put things wherever the developer felt they should go. It can re-configure your system in ways you may not want. In fact in this specific case it will add repositories to your system without asking. Did you want EPEL setup on your system? Did you want to add an external NVidia repo to your system? Too bad, it's done. Hope you saw the "Installing NVIDIA repository..." message as it flew past because that's all the notice you'll get - and you only get that because the developers told you about it.

Thirdly - since these are completely unstructured there is no uninstall without sifting through the script (which you didn't keep because it's a "curl | sh"). Again lets use this one as an example:

How many things do you think that shell script installs?

  • It puts a binary in one of /usr/local/bin, /usr/bin or /bin
  • It then downloads a bunch of stuff to one of /usr/local/lib/ollama, /usr/lib/ollama or /lib/ollama.
  • It sets up external repositories to fetch nvidia dependencies
  • It proceeds to install dependencies from those external repos
  • It creates a service file for ollama and starts it.
  • It configures /etc/modules.d to load nvidia drivers

And that's all I see on a cursory walk through the 300+ lines of script. All of that may be reasonable to get things working - but that's a lot for you to find and undo if you wish to remove this later.

There are better ways to distribute software and handle dependencies.

[–] [email protected] 10 points 1 week ago

Flawless comment, agreed with every word you said. This script is digital herpes

[–] art 3 points 1 week ago (1 children)

You can grab that shell file and examine it. You can also check it out from their public git. I agree that this is bad practices, but not exactly uncommon.

[–] [email protected] 3 points 1 week ago

It being a bad practice and "not uncommon" is my complaint.

[–] [email protected] 10 points 2 weeks ago* (last edited 2 weeks ago)

I tried it briefly, but its hot garbage if you dont have potent hardware.

The amount of iterations you have to do, to get proper answers and the time it takes to produce them is a waste of time.

[–] [email protected] 7 points 2 weeks ago

You might instead just install the Alpaca flatpak. I found it a very easy and quick way to get started.

[–] gfom 6 points 2 weeks ago

I still hate AI from an environmental and artistic point but I'm at least glad they didn't mention AI 'art'.

[–] [email protected] 5 points 1 week ago (1 children)

Personally I'd just recommend either Alpaca or GPT4All, both of which are on Flathub and much easier to set up (or at least GPT4All is; I haven't tested Alpaca yet).

[–] [email protected] 2 points 1 week ago

Alpaca is great, I can even run it on my oneplus 6t, albeit slowly and the max size I got running was llama 7b

[–] [email protected] 4 points 2 weeks ago (1 children)

Alternatively, you don't even need podman or any containers, as open-webui can be installed simply using python/conda/pip, if you only care about serving yourself:

https://docs.openwebui.com/getting-started/quick-start/

Much easier to run and maintain IMO. Works wonderfully.

[–] [email protected] 8 points 2 weeks ago

And llamafile is a binary you can just download and run, no installation required. "Uninstallation" is deleting the file.

[–] [email protected] 3 points 2 weeks ago (2 children)

I did try to use it on Fedora but i have a Radeon 6700 XT and it only worked in the CPU. I wait until ROCM official support reaches my older Model.

[–] [email protected] 4 points 2 weeks ago

I have the same setup, you have to add the line Environment="HSA_OVERRIDE_GFX_VERSION=10.3.0" for that specific GPU to the ollama.service file

[–] [email protected] 3 points 2 weeks ago

ollam runs on the 6700 XT, but you need to add an environment variable for it to work... I just don't remember what it was and am away from my computer right now