mirror of
https://github.com/foo-dogsquared/wiki.git
synced 2025-01-31 01:57:54 +00:00
Deprecate old note on Guix packaging
This commit is contained in:
parent
71f59658bd
commit
1787b936b4
@ -1,34 +0,0 @@
|
||||
#+title: GNU Guix packaging
|
||||
#+date: "2020-09-14 22:25:10 +08:00"
|
||||
#+date_modified: "2020-09-14 23:53:35 +08:00"
|
||||
#+language: en
|
||||
|
||||
|
||||
Practicing [[file:2020-09-13-19-42-06.org][Software packaging]] in [[file:2020-08-19-08-21-44.org][GNU Guix]] is pretty straightforward with several tools that the package manager provides.
|
||||
With things like importers, build systems, and light abstractions, it can spark joy packaging with Guix.
|
||||
|
||||
|
||||
|
||||
|
||||
* Getting started
|
||||
|
||||
The following instructions assumes you have Guix installed.
|
||||
|
||||
To start hacking into Guix packages, clone the Git repo of the Guix packages (i.e., <GUIX_GIT_REPO>).
|
||||
Once you have the Git repo ready, you may want to develop in an isolated environment.
|
||||
This is a perfect use case for Guix with ~guix environment~ command.
|
||||
|
||||
The following is an example of an environment created with the Guix package manager:
|
||||
|
||||
#+begin_src shell
|
||||
guix environment --pure guix --ad-hoc coreutils ripgrep neovim emacs
|
||||
#+end_src
|
||||
|
||||
This creates a =virtualenv=-like environment with the packages listed with ~--ad-hoc~ (e.g., GNU Coreutils, Neovim, Emacs).
|
||||
|
||||
To start making changes, you need to create a branch first to avoid conflicts in the master branch (e.g., ~git checkout -b $BRANCH~).
|
||||
|
||||
The project structure brings all of the things together: Guix package manager implementation, package definitions, and documentation.
|
||||
The packages are located in =gnu/packages= conveniently due to how Guile modules work.
|
||||
(If you're not familiar with GNU Guile, the rule of thumb is that one module per file and the module name must match the location it's in (e.g., ~gnu packages rust-apps~ is in =gnu/packages/rust-apps.scm=).
|
||||
Furthermore, all items inside of a module are private by default unless declared to be public.)
|
@ -1,6 +1,6 @@
|
||||
#+title: GNU Guix package contribution workflow
|
||||
#+title: Guix package contribution workflow
|
||||
#+date: "2021-04-21 01:46:02 +08:00"
|
||||
#+date_modified: "2021-04-21 01:50:56 +08:00"
|
||||
#+date_modified: "2021-04-22 16:26:36 +08:00"
|
||||
#+language: en
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user