Guix: ����� ����������� ������������ �������
�������� ������: https://ambrevar.xyz/guix-advance/
������� Google � NuINu������� ����� ������� ������������ ������
������������ ������� (��) ������������ ����� ����� ������� ���� � �� ���������� ����������� � ��� ����������� ������������ ������: Unix. �������������, ����������� ����������� ������, ������� ����������� ������������� GNU/Linux, *BSDs, � macOS ������� ������� Unix. (Windows ��� �� �������������, �� �� � �� ����� ���������� ������������ ��� �����.)
� 2000 ����, Rob Pike �������� � �������� � ��� ������ ������������ ���������� ������������ ����������� �� ����� ��������. ���� �� �� �� ���������� ��� ������������� � ����������, ������ �� ��������� �������� ��� �������, ������� ������� ������ ������������ Unix � 1994 � The Unix-Haters Handbook. �������� �� ���������������� ��������������, ��� ����� ������� �� ��������� ����������� �������� � ��������� Unix, ������� �� ��� ��� �� ������.
� 2006, Eelco Dosltra ����������� ���� ����������, ������ ������������� ����� ��������������� ������������ �����������, � ������� ����������� Nix, �������������� �������� �������. � 2008, �� ����������� NixOS: ����� �������������� ����������� Linux. � �� ����� ��� NixOS �������� ���������� ����� ���������� ������������ �����������, ������� ����������� ��������������� ��� ������ � ����� Unix, ��� ��������� ������ ���������� �� �������� � ��������� Unix, ��� ��� ��� ���� �� ����� ������� �������� Unix.
Nix - ��� �������� ��� ������ � ����������� ������������ ������. ���� ����, ��� �� ��������� �� ������� ����� ������� Unix (������� ��, ��� ������� � ����������� Unix Haters Handbook), �� ����� ������������ ���� ��� ������ ������ ������� � ������������, ������� ����� ���� ���������� ������� � ���� ���, ����� ����� ���� ��� ���������� � ������� ��������� � ������ �� ������ ������ �������, �� ����� � ���������� � ������������ ���������.
Pike ��� �� ����! � ��� ���������� ��� ���� ����� ����� ������: ��������, �������� ������������ �� ��������� � ���, ��� ����� ������������ ����� ������������, ���� ������ �� �� ��������, ��� ���������� ��������(����������) ����������. � �������� � ���(Utah) ���� �� ��� �������������� ���������������. ��� ������ ��������� ����������� ����������� ���� � ���, ��� Unix ���������� ����� � ��� �� ������ ���� � ��� �������������� ������������� � ����������.
� �������, ���� �������� ��������� ��� �������������� � �� ������ ������ ����, ����� Nix �������, ��� �� ��������, ����� ���� ��� ������.
�������� � Guix
Guix - ��� �������� ������� ���������� �� Nix, � GuixSD ��� ���������� ������������ ������� NixOS. GuixSD ���������� ���� ��������� ��������������� ��. �������������, � �������� �ӣ �� ���������� �������� (� Guix) �� ������� �������������(init system) (GNU shepherd) �������� � ������������� � Guile Scheme.
�� ����������� ���������� �� ������������ ������ � ����� Unix, � ��� �������� ��������� ��������� ��� �������, ������ ��� �� �������� ������� ������������� � ������� ���������:
- ��������� �� ����������� ����������� (�� ������ ������� ����� ������� ��� �������).
- ������� � ������� ��� Guix ���� ����������� �������� (����� �������� �����).
�����(������������) Guix
�������� Guix ������ �������������, ��� ��� �� ������������� ������ ���� �� ����� �������, ��� ����������� ������������ ������ ���������� �����������.
��� ������� �������:
- ����������� �������: Guix ����� ������� ���� ��������� ��� �� ������ �������, ��� � �� ������ ������������. ���� ����������, ���-���� ��������, ������ ����� ��������� �����. ��� ���������� ������ ������� ���������.
- ����������� �������: ��������� ������������ ������� ������������, ������������ ��� ��������� ������������� ��������� ������������ ������������ � �������. ��������� ����, ��� ����������. � ������ Unix ��������, ������� ������� ����������, ����� �����-���� ��������� ���� ������������ ��� �������.
- ��������� ��������������� ������������ �������: ���������������� ������������ ����� ������� � ������� �� ��� ����������� ������� �������� ������. ������ ��������� ������ ����� ���� ��������� � Guile Scheme, �� ������ udev �� Xorg, PAM, � �.�.. ��������� Guile, ������������ ����� ���� ������� �������� ��� ����������� ����������� ��� ���� ��� ����� �����(hostname)!
- ������ ������ (�� ����� �������) �������� ����������: �� ����� �������� ��������� �������� Emacs, Python ��� TeXlive, �� ������ ������������ ���� ��������������� ��������� ��� ���������� ��� �����! (�� ����.) ��� ����������� ��������� ��������� � ������������� �������� �������������.
- ����������� ������� � ������������� Guile: ��� ������� ����������� ������������� �����������(���������������) ������� �������. ��� ������� �������� ����� ������� ��� USE ����� Portage (�� ����).
- ��������� ������� ������: ����� Guix ����� ����� ��������� �������, ������� ������ ��������� ��� ���������� ��������� ����������� ���������(����������, �������������� �������, ������������, � �.�). � ������ ������������ �������� (���� ����� � Debian), ����� ������� �������, ����� ������ ����������� ���� �����.
- �� ���������������� �����: �����, �� ����� Guix �������� ������������� ������.
������� ������������ � ����� �������� ������ �� ������, ������� ������������ ����
���������, � �� ����������� ����������� ���� �������. �� �������� inxi
���������� ��� �������� ������� � ��������� ����������: ���� � �������� ������ �
���������/���������� ������� inxi, � �� ����������� ����, ����� � ���� ����������
PATH����������� 2 ��� 3 ������� �������������� ������������ ���������� ������. Guix ��������� ���������� � ������� ������������ ������ ��, ��� ������������ �������������� �����. - �����(���������) Guix: ��� �������
guix environment SOME-PACKAGES, Guix ������������� ��������� �����, � ������� ������������ ��� ���������� ���SOME-PACKAGES. ��� ����� �������������� ��� ��������� ����� ������ ��� �������, �� ����� ����� �������������� ��� ������ �����(�� ����). ����� �� ������������� ������� �������� ��, ��� �� ��������� ��������� ���������, � ������������ �� � ������� �����������. - ��������� ����������: ��� �������������� �� 100%. ��������, ��� �������� �������� �������� ����� � �������� � ����������� ��������(rolling-release), ����� ��� Arch Linux � Gentoo: ��������� ������������ �������������� ������ ��������� ������ (� �������� ������ ����), ���������� �������� ��� ������� ������������. ��� �������� ������������ ������������� ������ ����������� ��������� ��� ������ ����������. � Guix, ������ �������� �������� ����� ����� �������������.
����������� ���������� ��� ������ Guix ����� �������� ��� �������������� ������ �����(maintainers): ��������� ��������������� �������(reproducible builds) � ��������� ���������� ����������, ����� ����� �������� � Guix, �� �������� ������, �� �� ��������� ��� ��������� ���������� ��������� �����������. (������, ���� ����������� ��������� �����, ������ ��������� �� ��������� ���������� ������ ����������.) ��� ��������, ��� ������� �������� �� ������� ����� ��������� �� ����� ������ (���� �������� ��� ����������� Hydra �� ������� Nix, ������ �������� ��� ����������� Cuirass). �������� ��� � ������������ ������ ��������� GNU/Linux, ������� ��������� ���� �������� ��������������, ����� ��������� ������ �������. ��� �� �������������: � �������� ����� ��� ������������ ������� ��������������� �� ���� ����� �������. � Guix, ���������� ������� ����� ��������� ����� �� �������� �����. ��� ��������, ������� ���������� ����� ����� ������ ����������.
� Guix ��� �� ������ ������� �� ��������� ���� � ���������� �������������� ��������� ����� ��������. �� ����� ����, �������� �� ��� ����� ��� ��������� ������������:: Guix ����� ��������� ������������ ������ �� ��������� ����, ���� ��� �������� ������.
guix import�guix refresh: ��������� ��� ���������� ����������� ������� ������������� � ���������. ����� ����������� ������� ����� ���� ���������� ������������. �������� ������� ������������ ������������ ������� ���������� ����� ���������������� ��� �����. ��, ��� �������� ������� ��������� � ����������� ������������ ������, ����������� ������������ ����� ����������� � ������� Guix.- Guix ������: ���� �� ���� ������� �������! � Arch Linux ��� Gentoo, ����� ����� ������� ��������� �����������. ��������� ��� �� ������������ ��������� ����������, ��� ��������, ��� ������������ ������ ����� �� ������� ��������� ��������� ������������(�� ���� ����������, ��� ���������� ������������ �� �������� ������ ������������) ��������, ������������ ������� ��������� ����� ����� ����������� ������ � ������� �����. Guix ������ ������� �������� ���������(overlays) Arch Linux AUR � Gentoos, �������� ������ �������������� ����������� ����� �������, ��������, �� ������������ Git. ����� ��, ��� ����������� ������ ������������ (������, ������� � �.�).
- Emacs-Guix: Guix ������������ ����������� ������� � ����, ������� ������������ � ����� ������ ���������������� ����������� Emacs!
- Guix ������: ��� ��������� ������� ������������ �����������, ����� ��� Docker. ����������� ������������ ������ �������� �� ����������� �������: ��� �� �������������� � ������������� �������� ������������� ��������� �������, ��� �������� ������� �������� ��� �������������, ������� ��������� � �������, ������������ � ������������������. ��������, ������ Guix ��������� ����������, ��������������� � ���������.
guix system vm�guix system disk-image: Guix ��������� �������� ������� ��������� ������� � ����� live USB ��� ��������� ��� ����������� ������ ��� ���̣���� ������.
Guix �� ��������� � ������������
Debian, Arch Linux, � ������ ������������ GNU/Linux
� ������������� GNU/Linux ������ ������������ �������������� ������������(�����) Guix. ��������� �� �������� ������ �������� �������� � ����:
- ���������� ��������� ���������� ������ �������, ��� �� ������������. ������, ����� ��������� mpv ������� ������ ffmpeg, �� ���������� ffmpeg ������ ����������� ������ ��������, ������������ �� ����, � ��� ��������� ������: ���� �� ������ ��������� ������, ���� �� �������������� ����� ������ ������ ������ �������. ���� ����, ��������� ����� ���� ������ �� ����� ������ ��� �������������� ������ ��. ��� �������� ������� ����������� �������������, ������� �� ����� ������������ �������� ��� ���������� ����� �������� ������: ��������(�������������) ����� ���������.
- ����������� ����������� � ��������������. �� �������������� ���������� �������� ��������, ��� ��� ������ ������ ������ ������������� ������. ��� ������������ ����� ������� ������� ������, ������� ������� �� ��������� ������� ��������������. �� �������� ��� ��������, ��� �������� ���������� �������� ������ ������� �� ������� ����. ������������ ��� ������������ ���������� ��������������(maintainers) ��������� ����������, � �������� �����. ��� ���������� ������� ���� ����� ������������� � �������� �������� ���������(��� ��� ������� ����, ���� � ����� ������ ����������) �� ���� ���������� ���������� �������.
Gentoo, *BSD
Gentoo ������ �� ����� ��������������, ������������� �������� ������� Portage, ���������� �� ������ �� �������� ������� � ���������������� USE-������, ������� ��������� ������������ ��������� ����������������� ���� ������� (��������, ��������� ����, �������� ��������� ������������ ���������� � �.�.).
USE ����� �������� ������������ ������� ��������������� ������������(� ��� ����� ������������ ��� ������������). � ������ �������, Portage �� ��������� ����������� �������, ������� �� ���� ������� ��������� �����������(��������� ����������� �����). �������� ���� ����� ����� �� ������������ ����, �� ��������� �� ����������� ��������������� ���� USE, ������������ �� ����� ������ � ���� ��������(����� �������� ������ ����������� ������).
� ��������, Guix ���� ��� ������ ��������� ��� �����, ���� � ������� ������� ����������� ���� �� Scheme. ����� ������ �� ����������:
(loop-over (TARGET-PACKAGES)
(package
(inherit TARGET)
(changes-here... including patches, build options, etc.))
������� ���������� TARGET-PACKAGES � ������ �����������. �� ���� �� ��������� ��
������ ���� �������� � ����������� ������. � ����� ����� ������������ ��������� ������ ��������
��� �����������, ������� ����� ���� ������� � ������.
� ����� Gentoo ����� ����������� ���, �� ����� �������� �� Guix ����� ��������, ��� ������ Portage � ��������� ������� ����� ���������.
- ������� ������ USE �� ��������� ����������� �����������������, ������������ �������.
- ����� USE ��������� ����� ����� ��������� (�� �������� ������� ��������� ������) ��� �������� � ��������� ���������� ������� ����� ��������. Guix ��������� �������� ���� ������� ���������, ��������� Guile Scheme ��� ���������������� ��������� ����� ��������.
����� ����, Portage �������� �� ��� �� �������������� �������� � ����������� ���������� ��������� ���������� ������. �������������, ����� USE ����������� ����������� ������ �������� (������ ������ �� Portage): ����� ������������� USE-����� ���������������� �� ��������� �����������, ������������ ������ ����� ������� �������. ������ ��� ��������, ��� �������� ������� �� ����� ��������� (�� ������� ����, ��� ������������ ������ ��� ������������� ������).
�� ��������, Guix ������������� �������������� ���������������� ������, ������� ����� ����������� ���������� ������ �� ��������� � Gentoo, ������� ����� �� ������ (�� Portage ������������ ��������������� �������� �������).
������� *BSD (�������� FreeBSD) �������� �� ����������� ������� � �����������
��������� make config.
Nix
Nix ��� ������������ �������� � ������������ ������������ ������ � Guix ������ ��� ����� ����� ������ ������. �������, Nix �� �������� �������� ����� �� ������ ������������ ������ � �������� � Guix �������� �� ������������ ��, ���� �� �� ���� ������ ����������.
Guix, ������������� Nix, ���������� ����������� ����� ���� � ������ �������� ��������, �������, �� ��� ������, Nix �� �����: ������ ���� ����� ����������� ������������ ���� ��� ���������� �������� (domain-specific language) (DSL), Guix ���������� ������ ��������� ���� ����������������. � ��� ������, ��������� ��� Guile Scheme, ���� �� ������ �����.
����������(�������������) ������������ ����� ���������������� ����� ���������������� ������ � ���������� ������������ �����������. ��� ������ ������� �� ������ ��������, ��� ���� ������������ ��� ���������������� ���:
- ��������� � ��������������� � ����������������;
- ��� ���� ���� ��� ��������(�� �� ����� �������� � ����������� ������������), ������� ������� ������������ ������ �� ������� ������������ � , ����� ������� ������� ������ ��� �����;
- ������� ������ (�� ������� ���� �������);
- � ����� �������� � ��� ��������.
����� ��������, ������������ ������������������� ���� DSL ��� ������� �������������� ������ ����������������, ������:
- XML, HTML (������ ����: S-XML)
- Make, Autoconf, Automake, CMake, etc.
- Bash, Zsh, Fish (������ ����: Eshell or scsh)
- JSON, TOML, YAML
- ���� Nix, Portages Ebuild � ��������� ������ �������������� ������ ������������� ������� ��.
- Firefox ����� �� ����������� XUL (�� � ��� ��� Mozilla � ���� ����) � ����������� ������ ������������ ������ ���������������� ����������
- SQL
- Octave, R, PARI/GP, ����������� ������� �������� (������ ����: Common Lisp, Racket ��� ������ Scheme)
- ���������� ���������(Regular expressions) (������ ����: Emacs rx, Rackets PEG, etc.)
- sed, AWK, etc.
- ����������� ������ ������������ �������������, ������� systemd (������ ����: GNU Shepherd)
- cron (������ ����: mcron)
- conky (�� ��������� ���������������, ���� ���, �������� ������� �����������, ������� �� �������� �� ����� ���������)
- TeX, LaTeX (� ��� �����������), Asymptote (������ ����: scribble, skribilo ��� ��� � ���������� � � January 2019 TeX/LaTeX ��� ��� ������������ � �������� �������������� ���� ��� ������ � PDF)
- ����������� �������� � ��������������, � ������� �� ������������ ���� ���������������� ������ ����������.
�������� ���������� ������, ��� ������� �� ����� ������� ����, � ����� ���� ������� �� ������������, ����� �������� ��� ���� ����������������, ��� ����� �������� ������������� �����������. ��� ������� �������� ������������� � ������. ��� ���������� ���������� ������. ����� ����������������� ���������� ����� ���� ����� ������������ � ����� ������������ ���� �����, ������� ������������, ������ ���������������� ����� ����������������.
�� ������ ��� ������� �������
Guix ������������ ��������� ���������� (i686, x8664, ARMv7, � AArch64 �� ��������� �� ������ 2019) � ���� ����� �� ��������� �������� ���������� ���� ������ Linux. (������ *BSDs, GNU Hurd, ��� �������� ������ ������������!)
��� ������ Guix �������� ������������ ��� ������������� (���������������) ��������, �� ����� ������ ������������������������ ������. � ���� � ����, � ���������, ������������ �������, ������� ������ ����� ������������� � OpenWRT. (���� ��� ����� ����������� ��������� ������, ������ ��� �� ����� ������.)
��������������������� live USB
� �������� ���� guix system disk-image: �� ���������, ��������, ���������� ������� �������
�� USB ����������.
��� ��������� �������� ����� ������� ���� ���� ������� ��� ��������, ������� ����� ���������� � ����� ����� � ������������� ��� ������ �������������� �����(�� ����������� ����������� �����������).
� ���� �������� ���������������� ������, ����� ��� ��� ����� PGP, � ����� ���, ������� ����������� �����, ����� ��������� ����� ����� ��������.
����� ����, ��������, ��� �������� ���������� ������������-��������� ������� �� ����������, � �������� � ��������� USB ����������: ������ ������� ��������� ������� Guix, ��� ������������ ��� ���������������� ������������ �������.
������ ������ �������� ����������
Emacs, Python, Ruby � ���� ������� guix environment
Guix ����� �������� ����� �������� �������, � ��������� ��������� ������� ������ ����������������. � ����� ���� ��������� �����������:
- ��� �������� ����������������� �����(�����).
- ��� ��������� ������ ����� �����.
- ��� ��������� ��� �� �������� ��� ������ ��������� �������.
� ���� ����� � �� ���� �� ��������� ������� guix environment. ��� �������
������������� ��������� ����� ������ � ������������ ������� �������, �������
virtualenv. ��� �������(�����) ������ ������� ������������ �������� ���
������� ����� ��� ���� �����, ��� ����� ���������� ������, ���� ��� ������ ���������
��������� ������.
TeXlive
(����� �� ���������������: �� ��������� �� ������ 2019, ������� ������ TeXlive � Guix ���������� �����������.)
� ��� TeXlive � ���������� �������, ���������, ���� ��� � ������� �������� �������, ��� � ��������� ����, �� ������������� ������ :) ��� ��� ��� ���������� Guix � �������� ��������� �����!
����������� ������������ ������ �� ������ Unix ������ ����������� TeXlive � ���� ������, ��������, � Arch Linux �� ������������� ������. ���� ��� ������������ ���� ������� TeX, �������������� �� ������ �������(�������, �����), Arch Linux �� ������� ��� ������� ������, ����� ��� ���������� ������, ������� �������� � ���� ������ (�������� �� ������) �������. � TeXlive �������, � ��� ������ �� ��������� ��������� ����� ��������.
������������� �������� ��������� TeXlive � ������, �� �������� ��������� ������ � �����,
tlmgr ��� ������ �������� �������, � �� ������� ������������ �������������� ������.
� ������� Guix, ����� ������������� ������������� ������ TeXlive ��� ��, ��� � ��� ���������, ��� �������� ���������� ������ �������� ������ ������� TeXlive, ��� ���� �������� ������������ ����������� ����� ��� ���������� ��������� ���������� ����������.
����
������ ������������ ������� ���������� ������ ������������ ��������� ���������������� ����. ���� ������������ ����� ���������� �� ���� �� ���������, ���������������� ���� ���������� ����� ������������ � ������, ��� ����� ���� ���������.
��� �������� Gentoo ������� ���������������� ���� � �������� ��������������(�������������?) ���� ���������. ��� ������ ��������, � ������������ ������ ���� ������������ ������������ ����.
� Guix, ���� �������� ��������� ������������� �������, ��� � ����� ������. ����� ��������� ��� ��� �������� ����������� ���� ������������ ���� � ����������� ������.
��������, ����� ������� ����������� ������������ ���� Linux � ���������
iwlwifi (��������������: � ������������ ���������� �� ������������ �����������
��������, ��������� ��� ������������ ��������� ������ ����� ������������������ � �������):
(define-module (ambrevar linux-custom)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system trivial)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages linux)
#:use-module (srfi srfi-1))
(define-public linux-nonfree
(package
(inherit linux-libre)
(name "linux-nonfree")
(version (package-version linux-libre))
(source
(origin
(method url-fetch)
(uri
(string-append
"https://www.kernel.org/pub/linux/kernel/v4.x/"
"linux-" version ".tar.xz"))
(sha256
(base32
"1lm2s9yhzyqra1f16jrjwd66m3jl43n5k7av2r9hns8hdr1smmw4"))))
(native-inputs
`(("kconfig" ,(local-file "./linux-custom.conf"))
,@(alist-delete "kconfig" (package-native-inputs linux-libre))))))
(define (linux-firmware-version) "9d40a17beaf271e6ad47a5e714a296100eef4692")
(define (linux-firmware-source version)
(origin
(method git-fetch)
(uri (git-reference
(url (string-append "https://git.kernel.org/pub/scm/linux/kernel"
"/git/firmware/linux-firmware.git"))
(commit version)))
(file-name (string-append "linux-firmware-" version "-checkout"))
(sha256
(base32
"099kll2n1zvps5qawnbm6c75khgn81j8ns0widiw0lnwm8s9q6ch"))))
(define-public linux-firmware-iwlwifi
(package
(name "linux-firmware-iwlwifi")
(version (linux-firmware-version))
(source (linux-firmware-source version))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder (begin
(use-modules (guix build utils))
(let ((source (assoc-ref %build-inputs "source"))
(fw-dir (string-append %output "/lib/firmware/")))
(mkdir-p fw-dir)
(for-each (lambda (file)
(copy-file file
(string-append fw-dir (basename file))))
(find-files source
"iwlwifi-.*\\.ucode$|LICENSE\\.iwlwifi_firmware$"))
#t))))
(home-page "https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi")
(synopsis "Non-free firmware for Intel wifi chips")
(description "Non-free iwlwifi firmware")
(license (license:non-copyleft
"https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/tree/LICENCE.iwlwifi_firmware?id=HEAD"))))
���������������� ���� � �������� ����� ���� �������(conditionally) �������� � ����
������� ������������ ������� (��������� ���� config.scm):
(define *lspci*
(let* ((port (open-pipe* OPEN_READ "lspci"))
(str (get-string-all port)))
(close-pipe port)
str))
(operating-system
(host-name "...")
;;...
(kernel (cond
((string-match "Network controller: Intel Corporation Wireless 8888"
*lspci*)
linux-nonfree)
(#t linux-libre)))
(firmware (append (list linux-firmware-iwlwifi)
%base-firmware))
����� ��������� ��������� �������, ����� ���������� ����� ������������ �������:
sudo -E guix system reconfigure config.scm
���� �� ������������ ����, �� ������ �������� ������� �����, ������� � �������� � USB ����������.
����
��������� ������ Guix �������� ������������� (�������� ��������� ������ Mesa ����� ��������) � �� �� ����� �� ��������� ��������� ��������� ����, �� ����� ����� ��������� ���������� ��� ��� �, � ���������, ��� �������� ���!
� ���������, ��������� �������� ���������� ������ �� ��������� ���������� ����������� �����������, � ����� �������� ���� ����� ���� ��������� � ������ ������������ ������� Guix.
� �� ����� ��� Guix ��������� �� ��� �� ��������� ������ ������������ � ����� �����������, �� ������ ������ ������ ����������� ������� Guix ������ ��� ����� �� ��������� ���������� ������� ��� �������������� ������������ �����������.
��������� �� ������(�����������):
guix environment��������� ��� ��������� ����� ���������� � ������������� ����������, ������� ������������ ������ � ����, �������� �������� �������(��� �����, ��� ��������� � �������� �������� ����� ������� ����� �� ����� ������, ������, ��� Bitcoin ������� ��� ���� PGP �����) � ���� ���������� ���������� ������ ����� ��� ��� �����������. ��� ����� ��� ������� ����� ���������� ��������� � �������� �������� �����.- �������������� ���������� ��������: ��������� � �������� �������� ����� ������ �� ����������� ��������� �������� � ��������, ����� ��������� ���������� ������ ���� API. ��������� Guix ����� ���������� ������ ��� ����� ������ ����� ����������� ( ��� ����� ��������� � ������� ��������), Guix ��������� ��������� ������ ��� � �������� �������� �����, ������� ����� �������� �����.
- ��������������� �����: ��������� � �������� �������� �����, ��� �������, ����� ���������� � ����� ����� ���� �� ������� � ������ �������� � ������� ������� �������������. ����� ����������������� Guix �������������, ��� ���� �� �������� ����� Guix �������� ���� ���, �� ����� �������� ����� (����� �����/������� ������������).
�� ���� ���� ��������, Guix ��� �� ��������� ������������ ��� �������� � ��������������� ��� � �������� �������� �����.
������ ��� ������� ����, � �� ������� �� ��� ������ ������.
������� � ��������
Emacs-Guix
����� �� ������������� ����������� Guix �������� ��� ��������� Emacs: Emacs-Guix ����������� ��� ������������ � ������� �����, �������� ���������, ������, ���������� � ����������� �������, ��������� �����������(generations), ������������� ��������(diff) ����� ����, � ������ ������.
�� ����� ����� ������ ��� ���������� � ����������������, � ����� ��������� ����� Scheme REPL.
��� ���������� ���������������� ��������� ��� ������������ �������.
���������� ����� Helm System Packages ������� ������� �� ��������������� �� Emacs-Guix, �� ������������� ����� �������� ��������� ��� �������� ������ ������� � �������� ��������� ��������.
���������� ���������
��������� Guix ��������� ��� ��������� ��������� ��������� ������������ ����� ������� (������� ������� ����� �������), �� ����� ���� ����� �������������� � ������������� �����, ��� ������ ������������ �������.
�� ����� �����, � 2018, 25GB ������ ��� ��������� ��������� ���� ������ ������ �������� ��� � ����� (��������, ��� � ���� ������ ���������� � �������), � �� ����� ��� 50GB ������ �������� �� ���� � �������� � ������� ����� ����.
��� ������� ��������� ������ ������������, guix gc �� �� ����� ����� �������
������� ����� �������, �� ���� �������, ������� ��� ����������� ����� �� ��� ��������� ����������.
� Emacs-Guix, ���� M-x guix-store-dead-item ������� ��������� ��� �����������
������� ������ �� ������� � �� ������ ������� �� �� �����������.
���� ��� ����� ���������������� �����������, ��������� �� guix gc --references �
guix gc --requisites. ��� ����� ���������� � ����������� guix build ...
����� �������� ������, � ��������� ��������� ����� ������������.
��������, ����� ���������� ��� ������ �� ��������� ������, �������� ���� ������������:
$ guix gc --references $(guix build -d coreutils) | grep builder /gnu/store/v02xky6f5rvjywd7ficzi5pyibbmk6cq-coreutils-8.29-guile-builder
��������� ����������
����� ������� ������� ��������(manifest) ��� ���� �������, ������������� � ����� ���� �������.
��� ����� ������� � ������� ���������� ������� Guile:
(use-modules (guix profiles)
(ice-9 match)
(ice-9 pretty-print))
(match (command-line)
((_ where)
(pretty-print
`(specifications->manifest
',(map manifest-entry-name (manifest-entries (profile-manifest where))))))
(_ (error "Please provide the path to a Guix profile.")))
����� �������� ���, �������� ~/.guix-profile :
$ guile -s manifest-to-manifest.scm ~/.guix-profile
� ����� ���� ��������� (dotfiles ��� ����������� ������� �������� ������, ����� ����������� ������� ���� ������������� �������. ��������� � ����� �������� ������ Guix, � ���� ��������� � ������� ��������� ���� ������� ������� ���� � ����� ������ ������� � �������.
������
��������� web ����������:
��������� ���������:
- Code Staging in GNU Guix (Why Lisp was instrumental in the development of Guix)
- Pjotrs notes
��������� �� ����������� ������:



