From c18135d1274d5012196073c0bc021d9868108291 Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Fri, 25 Oct 2024 22:44:33 -0700 Subject: Get rid of the blog and use webp. --- .../blog/posts/2024-10-22_nix_flakes.html.template | 82 ---------------------- 1 file changed, 82 deletions(-) delete mode 100644 templates/blog/posts/2024-10-22_nix_flakes.html.template (limited to 'templates/blog/posts/2024-10-22_nix_flakes.html.template') diff --git a/templates/blog/posts/2024-10-22_nix_flakes.html.template b/templates/blog/posts/2024-10-22_nix_flakes.html.template deleted file mode 100644 index d191908..0000000 --- a/templates/blog/posts/2024-10-22_nix_flakes.html.template +++ /dev/null @@ -1,82 +0,0 @@ -{{define "title"}}nix flakes for busy people{{end}} - -

TL;DR

- -

To enable flakes on a NixOS system

- -

Just put

- -
-  nix.settings.experimental-features = [
-    "nix-command"
-    "flakes"
-  ];
-
- -

in your configuration.nix. IMO it's a shame that flakes -have been locked behind experimental for so long, it's a large part of -why they have a bad reputation. It's absolutely worth enabling them -since they're so useful.

- -

To use a flake from github

- -
-nix shell github:ggerganov/llama.cpp
-
- -

or to install a specific flake output:

- -
-nix shell github:ggerganov/llama.cpp#rocm
-
- -

To list the outputs for a specific flake, you can usually type -nix shell github:ggerganov/llama.cpp#<tab> and your -shell may or may not list the outputs. If anyone has a better way to do this, -please let me know.

- -

To install a flake in your system profile, use

- -
-nix profile install github:ggerganov/llama.cpp
-
- -

Here is the greatest power of nix flakes: the ability to install and -use them as first-class packages just like anything from nixpkgs. It -feels a lot better integrated than something like the AUR.

- -

To create a nix flake for your own project

- -
-nix flake init -t templates#go-hello
-
- -

Replace go-hello with whatever template you want that most closely -matches your project configuration. Unfortunately many of these templates -have the questionable behavior of also overwriting source files in the -current directory, so I recommend only running nix flake init in an -empty directory, and copying the flake.nix file over to your -existing project.

- -

A philosophical intro to nix flakes

- -

Flakes are a way to replace the centralized nixpkgs repository with -decentralized packages controlled directly by upstream. In many ways -Linux packaging has been moving more and more towards upstream with -things like appimages or flatpak, and being able to remove many of the -distro-specific hacks needed to make things run on various systems. Nix -flakes address this same issue, by allowing upstream to control their own -flake.nix, and pull in the specific versions of any dependencies they -might need. They also give an easy way to install any programs that -might not be packaged yet for nixpkgs, as long as anyone has written a -flake and published it online.

- -

The bad parts

- -

Nix flakes are still rough around the edges, and the worst part for -a new Nix user is the lack of documentation. This is a large part of why -I'm writing yet another nix flakes tutorial! -https://xeiaso.net/blog/nix-flakes-1-2022-02-21 -is really good, but reading this as a new user, I only wanted to know -how to install an app packaged with flakes, and I didn't care so much -about how to package my own stuff yet.

-- cgit v1.3.1