The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Релиз набора базовых системных утилит GNU Coreutils 8.13

09.09.2011 16:01

Вышла новая стабильная версия набора базовых системных утилит GNU Coreutils 8.13, в состав которого входят такие программы, как sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls и т.д.

С момента выхода coreutils-8.12 в утилиты новой версии Coreutils включено почти 200 коммитов от 18 человек, в gnulib добавлено более 1000 коммитов. Для сравнения, в последние годы, с среднем на релиз приходилось 90-100 коммитов. В анонсе сказано, что увеличение числа коммитов не связано с выявлением большого числа ошибок - число исправленных ошибок относительно небольшое. Значимая часть изменений является результатом работы по улучшению переносимости, надёжности и тестированию, а также добавлению новых функций.

Краткое резюме изменений:

  • Команда date стала поддерживать даты в формате ISO 8601, использующем для разделения строк "T", например, вместо "2004-02-29 16:21:42" - "2004-02-29T16:21:42". Также реализовано аннотированное отображение часового пояса, например "2004-02-29T16:21:42.333-07:00";
  • В утилитах md5sum, sha1sum, sha224sum, sha384sum и sha512sum реализована опция "--strict", которая при указании совместно с опцией "--check" сразу завершает работу и возвращает ненулевой код возврата при наличии недопустимых символов во входной строке (ранее просто выдавалось предупреждение);
  • В split добавлена опция "--filter=CMD", где CMD - это команда, которая будет использована в качестве фильтра для каждой порции данных (ссылка на текущий файл передается через переменную окружения $FILE). Например, "split -n3 --filter='xz > $FILE.xz'" - разобьёт файл на три примерно равные части и сожмет каждую часть утилитой xz (в итоге получим файлы xaa.xz, xab.xz и xac.xz);
  • Утилиты использующие fts (rm, du, chmod, chgrp, chown, chcon) более не потребляют память пропорционально числу записей в каждом обрабатываемом каталоге. Ранее "rm -rf" 4-миллиона-директорий потребляла около 1 Гб памяти. Теперь, она использует менее 30 Мб, вне зависимости от числа записей. Эта ошибка присуща fts, следовательно ошибка в утилите rm появилась с "внедрением" fts, в coreutils-8.0. Предыдущие реализации rm не использовали столько памяти. du, chmod, chgrp и chown начали использовать fts в версии 6.0. chcon была добавлена в coreutils-6.9.91 с использование fts. pr -T более не игнорирует указание LAST_PAGE. Ошибка появилась в textutils-1.19q;
  • В утилиту timeout добавлена опция "--foreground" для поддержки команд не запускаемых напрямую из приглашения командной строки, например, когда команда выполняет интерактивные действия;
  • В "cp -p" добавлена поддержка копирования нетривиальных NSFv4 ACL в Solaris 10;
  • В cp и ls добавлена поддержка ACL HP-UX 11.11;
  • В df добавлена поддержка дисковых разделов больше 4 Тб на платформах MacOS X 10.5 и AIX 5.2;
  • При выполнении "stat -f" теперь распознаются типы файловых систем GPFS, MQUEUE и PSTOREFS;
  • В timeout добавлена возможность указания долей секунды;
  • Увеличена переносимость и улучшены возможности по сборке в библиотеке gnulib;
  • Утилиты chown и chgrp с параметрами "-v --from=, теперь корректно отображают владельца файла. Т.е. для пропущенных файлов отображается оригинальные владелец и группа, а не "целевые". Ошибка появилась в sh-utils-2.0g. Пример:
    
       $ ls -l
       -rw-r--r-- 1 root bar 0 Сен 9 00:00 file
       
       chown_8.11 -v --from=foo foo:users file
       владелец файла оставлен как foo:users
       
       chown_8.13 -v --from=foo foo:users file
       владелец файла оставлен как root:bar
    
    
  • Команда "cp -r" могла ошибочно изменить права существующего целевого каталога. Ошибка появилась в coreutils-6.8;
  • "split --number l/.." больше не создает посторонних файлов в определённых случаях;
  • chmod, chown и chgrp, при указании -v или -c, теперь выводят оригинальные атрибуты в сообщениях;
  • Команда "cp -au" при работе в режиме "--preserve=links" теперь может переписать более новые файлы в директории в процессе переноса жестких ссылок из источника.


  1. Главная ссылка к новости (https://lists.gnu.org/archive/...)
  2. OpenNews: В обновлении GNU Binutils и GDB устранено нарушение лицензии GPL
  3. OpenNews: Релиз набора базовых системных утилит GNU CoreUtils 8.10
Автор новости: a
Тип: Программы
Короткая ссылка: https://opennet.ru/31714-Coreutils
Ключевые слова: Coreutils, linux
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (20) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 17:36, 09/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Команда date стала поддерживать даты в формате ISO 8601, использующем для разделения строк "T", например, вместо "2004-02-29 16:21:42" - "2004-02-29T16:21:42"

    Зачем вообще нужен такой формат?

     
     
  • 2.2, Crazy Alex (??), 17:40, 09/09/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Форматирование пробелами никогда не было особо надёжной вещью - впихнут туда, скажем, таб - и не увидишь...
     
     
  • 3.5, AHAHAC (ok), 19:50, 09/09/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >  впихнут туда, скажем, таб - и не увидишь...

    [code]
    if ( !isblank(c) || !isspace(c) ) {    
        if ( c == ' ' )
              printf("Я Пробеэл");
        if ( c == '\t' )
              printf("Я Табъ");
    }

    [/code]

     
  • 3.9, Vitaly_loki (ok), 22:12, 09/09/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    [code]
    while ((c=getchar()) != '\0') {
         switch(c) {
             case ' ':
                 printf("Suddenly! This is space\n");
                 break;
             case '\t':
                 printf("Suddenly! This is tab\n");
                 break;
        }
    }
    [/code]
     

  • 1.3, iCat (ok), 17:45, 09/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Значимая часть изменений является результатом работы по улучшению переносимости, надёжности и тестированию, а также добавлению новых функций.

    Вот это вообще "по взрослому"!!! Просто гордость берёт за ребят. Без сарказма.

     
     
  • 2.4, Аноним (-), 18:18, 09/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну а чем им еще заниматься, если багов нету? :)
     
     
  • 3.8, Marbleless (?), 22:03, 09/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну а чем им еще заниматься, если багов нету? :)

    Тоже мне, нету:

    >Команда "cp -r" могла ошибочно изменить права существующего целевого каталога. Ошибка появилась в coreutils-6.8;

     

  • 1.6, Аноним (-), 19:51, 09/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Класс!
    Наконец появилась поддержка ISO 8601 (нехватало).
    Остальные наработки также нужные, особенно вокруг fts и timeout, а за фильтр в split РЕСПЕКТИЩЩЕ - его давно не хватало.
     
  • 1.7, xanten (?), 20:19, 09/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А когда в "cp" будет выдаваться результат копирования? Вроде тривиальная фича.
     
     
  • 2.10, Аноним (-), 22:25, 09/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >А когда в "cp" будет выдаваться результат копирования? Вроде тривиальная фича.

    Так реализуй. Сложно в обрабку ключей добавить новый и printf на STOUT ? Или и в таких мелочах вы сидите и ждете...сидите и ждете... . Мне кажется что нафиг эта фича не нужна.

     
  • 2.11, anonymous (??), 16:39, 10/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > А когда в "cp" будет выдаваться результат копирования? Вроде тривиальная фича.

    Программы UNIX немногословны, когда всё прошло так, как потребовал пользователь. За что их и любим.    

     
  • 2.12, Vitaly_loki (ok), 22:44, 10/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Что надо выдавать? Если выдалось приглашение без ошибок, то значит всё норм. По-моему все и так идеально
     
     
  • 3.13, xanten (?), 23:50, 10/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Что надо выдавать?

    0: копирование состоялось
    1: копирование не состоялось

     
     
  • 4.14, Аноним (-), 00:36, 11/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    c () { cp $*; echo $? };
     
     
  • 5.15, xanten (?), 00:57, 11/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Интересное решение, только в тестовом скрипте с большим количеством входных файлов этот вариант не дает мне полной уверенности, что если при копировании была возвращена какая-то строка, то копирование не состоялось.
     
     
  • 6.18, Vitaly_loki (ok), 17:02, 11/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Что? Нифига не понял я. Можно специально для меня по-русски написать?
     
     
  • 7.19, xanten (?), 17:49, 11/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Тестовый скрипт копирует в специальную папку файлы, которые оттуда извлекаются программой Х по мере поступления. Для копирования используется утилита cp. Сколько файлов скрипт попытался скопировать, ясно, но сколько действительно были скопированы -- нет. Проблема ясна?
     
  • 4.20, Wulf (??), 00:21, 12/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >>Что надо выдавать?
    >
    >0: копирование состоялось
    >1: копирование не состоялос

    Для тех, кто в танке, выдержки из "man cp":

    solaris:

    EXIT STATUS
         The following exit values are returned:

         0     All files were copied successfully.


         >0    An error occurred.

    bsd & macos:

    EXIT STATUS
         The cp utility exits 0 on success, and >0 if an error occurs.

    posix:

    The following exit values shall be returned:

    0 All files were copied successfully.

    >0 An error occurred

     
     
  • 5.21, xanten (?), 00:38, 12/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    У меня дома "GNU coreutils 7.4" на Убунте, на работе на CentOSе версию завтра посмотрю, ничего подобного в MANе нет.
     
     
  • 6.22, Wulf (??), 01:25, 12/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    В linux-овых man-ах я тоже ничего не увидел, только слова о posix-совместимости. В коде coreutils, однако, некоторая обработка ошибок присутствует. http://coreutils.sourcearchive.com/documentation/7.4/cp_8c-source.html - смотреть вызовы error и exit с ненулевым первым аргументом.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру