LINUX.ORG.RU

GNU Core Utilities 8.22

 ,


0

2

Тихо и незаметно в последнюю 13-ю пятницу уходящего года вышла новая версия GNU coreutils. За десять месяцев, прошедших с прошлого релиза, 32 разработчика сделали 195 коммитов.

Выход версии 8.22 прежде всего связан с исправлением ошибок и улучшением производительности.

Значительные изменения.

Исправление ошибок:

  • df теперь корректно выводит список примонтированных файловых систем в том случае, когда невозможно выполнить stat() на точке монтирования (ошибка появилась в предыдущей версии).
  • df теперь корректно обрабатывает символьные ссылки на специальные файлы, содержащие примонтированные файловые системы (ошибка присутствовала изначально).
  • df теперь корректно обрабатывает dive nodes в случае наличия точек монтирования с опцией «bind». Теперь df показывает основную файловую систему, а не последнюю примонтированную (ошибка присутствовала изначально).
  • install теперь удаляет целевой файл, если программа strip завершается некорректно. Ранее файл сохранялся, возможно, с неправильно выставленными правами доступа (ошибка присутствовала изначально).
  • ln --relative теперь правильно обновляет существующие символические ссылки. Ранее работало так:
    # Create some directories
    mkdir test
    mkdir test/folder1
    mkdir test/folder2
    
    #Create some files
    touch test/folder1/file1
    touch test/folder1/file2
    
    #Create a relative symlink in folder2 to file1
    ln -sr test/folder1/file1 test/folder2/link
    
    #Check the link
    ls -l test/folder2/link
    # Correctly output a link to ../folder1/file1
    
    #Overwrite the symlink to point to file2
    ln -sfr test/folder1/file2 test/folder2/link
    
    #Check the link
    ls -l test/folder2/link
    # Wrongly output a link to file2 instead of ../folder1/file2
    
    Ошибка появилась в версии 8.16, когда была добавлена опция "--relative".
  • ls --recursive больше не завершает работу с «серьезным» кодом ошибки (2), если произошла ошибка чтения директории, не указанной в командой строке (ошибка появилась в версии 5.3.0).
  • mkdir, mkfifo, mknod теперь работают лучше при создании файла в директории, чья ACL-umask отличается от umask процесса, если umask директории является более приоритетной, чем umask процесса, например, в системе GNU/Linux (ошибка появилась в версии 6.0).
  • mv теперь заменят пустые директории в точке назначения на директории из источника при копировании между файловыми системами (ошибка присутствовала изначально).
  • od -wN при N, большим 64K, на системах с 32-битным size_t печатала 2*N избыточных байтов заполнения (ошибка появилась в версии 7.0).
  • rm -I теперь запрашивает подтверждение при удалении файла с защитой от записи (ошибка появилась в версии 6.8).
  • shred once again uses direct I/O on systems requiring aligned buffers. Also direct I/O failures for odd sized writes at end of file are now handled. [The «last write» bug was introduced in coreutils-5.3.0 but masked by the alignment bug introduced in coreutils-6.0].
  • tail --retry f теперь ждет появления указанного файла, ранее tail немедленно завершала работу, если файл недоступен. Ошибка появилась вместе с поддержкой inotify в версии 7.5.
  • tail -F теперь лучше поддерживает символические ссылки. Ранее tail не реагировала, когда объект, на который указывает символическая ссылка, появлялся или (пере)создавался (ошибка появилась вместе с поддержкой inotify в версии 7.5).

Новые возможности:

  • cp, install, mkdir, mknod, mkfifo и mv с помощью опции -Z теперь поддерживают функциональность «restorecon», устанавливающую контекст SELinux в соответствии с новым положением в файловой системе.
  • csplit теперь принимает новую опцию "--supressed-matched", чтобы пропускать строки-разделители.
  • У df --output появилось новое поле «file», позволяющее указывать определенное имя файла; будут показаны файловые системы, содержащие эти файлы.
  • du --inodes показывает, сколько инодов использовано.
  • id -z использует в качестве разделителя нулевой символ вместо пробела.
  • новая опция id и ls отображают контекст безопасности SMACK там, где это возможно.
  • id теперь может искать пользователей и по ID, а не только по имени.
  • join --zero-terminated (-z) в качестве символа окончания строки используют нулевой символ.
  • uniq --group не удаляет повторяющиеся элементы, а объединяет их в группы, отделяя пустыми строками.
  • shred --remove даёт больший контроль над операциями, что позволяет снизить издержки, связанные с sync.
  • shuf --repeat может повторять пункты в выводе.

Изменения в поведении:

  • cp --link теперь разыменовывает символические ссылки на стороне источника перед тем, как создать жесткую ссылку на стороне приемника, если не указана опция -P, --no-deref. Ранее создавалась жесткая ссылка на символическую ссылку даже при указании опций -L, -H.
  • cp, install, mkdir, mknod и mkfifo более не принимают аргумент для короткой опции -Z. Длинная опция --context по-прежнему используется с указанием дополнительного аргумента.
  • dd status=none подавляет вывод все нефатальных диагностических сообщений.
  • df больше не принимает устаревшую длинную опцию --megabytes.
  • stdbuf теперь требует указания хотя бы одного режима буферизации.

Улучшения:

  • Скорость кодирования больших объёмов данных в base64 увеличилась примерно на 60%.
  • md5sum теперь может использовать библиотеку libcrypto, что позволяет использовать системно-специфичную логику. Так, произодительность sha1sum увеличивается на 40% на i3-2310M.
  • stat иtail теперь лучше работают с файловыми системами EFIVARFS, EXOFS, F2FS, HOSTFS, SMACKFS, SNFS и UBIFS. Команда stat -f --format=%T правильно указывает тип файловой системы. Команда tail -f использует inotify (кроме SNFS).
  • shuf более эффективно выводит подмножество большого ввода. Reservoir sampling is used to limit memory usage based on the number of outputs, rather than the number of inputs.
  • shred теперь пишет блоками большего размера, 64КиБ вместо 12КиБ.
  • split --line-bytes=SIZE теперь использует столько памяти, сколько действительно нужно, вместо того, чтобы сразу же выделить SIZE байтов при запуске программы.
  • stty теперь позволяет конфигурировать «stick (mark/space) parity where available.

Кроме того, теперь factor успешно собирается на системах aarch64 (ошибка появилась в версии 8.20).

>>> Подробности

★★★★★

Проверено: mono ()

Ответ на: комментарий от mono

Шома ещё не настолько стар, а ты уже не настолько молод, чтобы это было разными поколениями))

DoctorSinus ★★★★★ ()

Хорошая новость: идеальные cp и ls стали еще более идеальней :)

I-Love-Microsoft ★★★★★ ()

cmd.exe уж теперь-то точто капец?

anonymous ()

Странно, ожидал среди первых комментариев гневных выкриков о запиле прогрессбаров в cp и mv.

base64 улучшена на 60%;

Это в каких единицах?

buddhist ★★★★★ ()
Ответ на: комментарий от buddhist

Это в каких единицах?
base64 encoding throughput for bulk data is increased by about 60%.

В «кодированных срупутах на единицу времени».

aidan ★★★★ ()

в последнюю 13-ю пятницу уходящего года

Таки шо вы курили? :)

Это была предпоследняя тринадцатая пятница уходящего года! :D

allez ()

Жаль, что большинство ЛОРовцев не любит GNU.

NaN ()
Ответ на: комментарий от NaN

Жаль, что большинство ЛОРовцев не любит GNU

а на чем же большинство сидит ? мне бы статистику глянуть .

conf ()
Ответ на: комментарий от buddhist

Странно, ожидал среди первых комментариев гневных выкриков о запиле прогрессбаров в cp и mv.

<слоупок-mode>А что - патч на это таки приняли? А то я думал - не доживу</слоупок-mode>

<отмазки>8.22 еще не ставил, в код не смотрел, новость не читал</отмазки> :-)

Pinkbyte ★★★★★ ()
Ответ на: комментарий от NaN

Жаль, что большинство ЛОРовцев не любит GNU.

большинство ЛОРовцев != большинство троллей ЛОРа

hobbit ★★★★★ ()
Ответ на: комментарий от anonymous

Хрен-то там. Некоторые консольные программы (ради которых собственно и нужен шелл) не получают под powershell stdin/stdout. Так что cmd.exe (с запущенным из под него cygwin'ом) - живее всех других шеллов.

alt-x ★★★★★ ()

Кроме того, теперь factor успешно собирается на системах aarch64 (ошибка появилась в версии 8.20)

В версии 8.20 это не было ошибкой ввиду отсутствия систем aarch64, анонс А53 и А57 состоялся через неделю после выхода 8.20 :)

redgremlin ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

*стали еще более идеальными || стали идеальней, но никогда одновременно.

по делу: coreutils имеет много лишнего, вот busybox другое дело.

IvanR ★★ ()
Последнее исправление: IvanR (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.