LINUX.ORG.RU

Добрый день. Подскажите, пожалуйста, как обновить 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)
Ответ на: комментарий от 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 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.