LINUX.ORG.RU

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

Да, действительно 2.20 новее, но тем не менее вопрос об обновлении grep до более новой версии (3.3) все равно актуален

artcroix
() автор топика

Добрый день. Подскажите, пожалуйста, как обновить GNU grep с 2.20 до более актуальной (2.5 или 3.3, например).

Если готовых пакетов с обновлением нигде нет, то только собирать руками из исходников. Или самостоятельно делать пакет.

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

20 > 5

с момента 2.5 до 2.20 прошло примерно 15 выпусков.

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

Из-за новых дополнений и исправлений. Например, --exclude-dir={dir1, dir2} работает как-то странно, т.е. не всегда исключает нужные директории.

artcroix
() автор топика

Хех, ну попробуй из федоры вытянуть, в 21й греп 3.2.

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

--exclude-dir={dir1, dir2}

Раскрытие фигурных скобок — фича шелла, от версии grep не зависит; пробел после запятой в такой конструкции не нужен и вреден.

BTW, УМВР:

┌[ dexpl@shellvm:/tmp/tmp.VwdCa35MtD 14:56:26 ]
└► grep --version ; cat /etc/centos-release
grep (GNU grep) 2.20
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Mike Haertel and others, see <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.
CentOS Linux release 7.5.1804 (Core) 
┌[ dexpl@shellvm:/tmp/tmp.VwdCa35MtD 14:56:08 ]
└► mkdir {1..3}
┌[ dexpl@shellvm:/tmp/tmp.VwdCa35MtD 14:56:13 ]
└► echo test | tee -a {1..3}/test
test
┌[ dexpl@shellvm:/tmp/tmp.VwdCa35MtD 14:56:20 ]
└► grep -R --exclude-dir={1,2} -e test .
./3/test:test

dexpl ★★★★★
()
Последнее исправление: dexpl (всего исправлений: 1)
Ответ на: комментарий от anonymous

Надо ли удалять перед этим старый grep? При попытке его удаления консоль выдает: Trying to remove «systemd», which is protected

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

Удалить его как пакет вам не удастся, потому как он является зависимостью для других системных пакетов и как следствие его удаление потянет удаление почти всей системы.

Вы можете только собрать grep из исходников и заменить собранным вами grep бинарник grep в вашей системе.

Но в целом практика ручной замены файлов в системе в бинарном дистрибутиве, да и в любом другом неправильная.

В идеале вам нужно разобраться как собрать rpm пакет с grep нужной вам версии, если вы не можете найти готовый rpm пакет, и установить его в систему.

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

Собрать пакет с альтернативными путём (/usr/local, /opt) и поставить, при необходимости добавить путь до него в PATH (в начало PATH, естественно). В таком варианте поломать систему трудно.

Но, кстати, если дело именно в --exclude, я бы с этим сначала поразбирался — может, дело таки в передаче параметров (--exclude={dir1,dir2} vs --exclude=dir1 --exclude=dir2 и т. д.).

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

Ну да, если задавать исключения в таком виде --exclude=dir1 --exclude=dir2, то работает вроде как стабильно, а в фигурных скобках через раз почему-то. Собственно говоря, поэтому я и озадачился обновлением.

artcroix
() автор топика

Лучше этого не делать.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.