Как откатить канал на предыдущее поколение Nixos?

Обратите внимание, что проблема связана не с набором символов Unicode, а с символами, закодированными в 2 или более байтах (, а также с символами, ширина которых отличается от одной ячейки ).

UTF -8 — это кодировка Unicode, в которой символы от U+0080 до U+10FFFFF закодированы в 2 или более байтах. Символы Юникода от U+0000 до U+007F такие же, как в ASCII, а в UTF -8 кодируются одним байтом (, как и в ASCII ), и здесь не проблема.

Существуют и другие кодировки набора символов Unicode (, такие как iso8859 -1, одиночный -байт, но ограниченный символами от U+0000 до U+00FF, или GB18030, многобайтный -байт ), и есть другие наборы символов, отличные от -Unicode, с многобайтовыми кодировками -.

Вы можете узнать, какая кодировка символов используется в вашей локали, с помощью команды locale charmap.

Реализация GNU foldв настоящее время корректно работает только с однобайтовыми символами -. foldбольшинства других систем не имеют этой проблемы. Многие могут даже обрабатывать символы с нулевой или двойной шириной экрана.

Реализация busybox из foldподдерживает UTF -8 (, а не другие многобайтовые -байтовые чармапы, хотя )с 2010 года.

  • Во FreeBSD или Solaris:

    $ echo $'a\u0301bcde' | fold -w3
    ábc
    de
    
  • со складыванием «busybox»:

    $ echo $'a\u0301bcde' | busybox fold -w3
    áb
    cde
    
  • с кратностью GNU:

    $ echo $'a\u0301bcde' | fold -w3
    á
    bcd
    e
    

U+0301 — сочетание острого акцента. Он имеет нулевую ширину и в UTF -8 кодируется в 2 байта (0xcc 0x81 ). Таким образом,á($'a\u0301')представляет собой один кластер графемы шириной 1, состоящий из 2 символов, закодированных в 3 байтах, отсюда 3 различных поведения, наиболее правильным из которых является FreeBSD/Solaris.

2
22.03.2021, 18:17
1 ответ

Я полагаю, вы хотите sudo nix-channel --rollback? Например, вы также можете вручную проверить /nix/var/nix/profiles/per-user/root/channels-*/manifest.nix— те, которые содержат имя, хэш коммита и т. д.

5
28.04.2021, 23:22

Теги

Похожие вопросы