The OpenNET Project / Index page

[ ������� /+++ | ����� | ���� | ]

������� ������������ / ������ "������������ ��� Linux" (����� | ��� ������)

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 ����� ������� ���� ��������� ��� �� ������ �������, ��� � �� ������ ������������. ���� ����������, ���-���� ��������, ������ ����� ��������� �����. ��� ���������� ������ ������� ���������.
  • ����������� �������: ��������� ������������ ������� ������������, ������������ ��� ��������� ������������� ��������� ������������ ������������ � �������. ��������� ����, ��� ����������. � ������ 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 ����������:

��������� ���������:

��������� �� ����������� ������:

Comments

Date: 2019-01-14 (Last update: 2019-01-18)

Made with Emacs 27.0.50 (Org mode 9.1.9)

Creative Commons License




������:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
�������:

�������� �� �����
���������� �� ���������
Created 1996-2026 by Maxim Chirkov
��������, ����������, ����������