Как сделать GNU grep значением по умолчанию в FreeBSD?

От Лицензирования записи FAQ "Что относительно того, чтобы поместить Небесплатные объекты в отдельный Несвободный репозиторий, как Debian/Ubuntu делает?"

Сам Проект Fedora не имеет никакого интереса к этому. Репозитории сторонних производителей существуют в таких целях.

Неофициальный FAQ Fedora включает некоторые детали об определенных объектах, которые Вы попросили.

3
21.02.2013, 12:05
4 ответа

Обновление: Обратите внимание, что этот ответ с 2013, он относится к FreeBSD 8.x и ранее. BSD grep был добавлен в пересмотре 222273 и появился в FreeBSD-9.0 (странно, что изменение отсутствует в обычно всесторонней информации о версии: поиск Google). Полнофункциональный GNU grep продолжает быть доступным в наборе портов.


FreeBSD grep был GNU grep, хотя старый и с несколькими примененными патчами:

# which grep 
/usr/bin/grep

# /usr/bin/grep -V
grep (GNU grep) 2.5.1-FreeBSD

Copyright 1988, 1992-1999, 2000, 2001 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Это имеет небольшое количество патчей (большинство которых порождает из Fedora Linux), если Вы имеете /usr/src/ установленный они детализированы в /usr/src/gnu/usr.bin/grep/FREEBSD-upgrade.

При необходимости в чем-то конкретно в версии порта (2.12 по сравнению с 2.5.1) существует много bugfixes, улучшения скорости и поддержка PCRE (-P, не включенный в версии системы), должно быть довольно безопасно переупорядочить Ваш PATH помещать /usr/local/bin во-первых, это - то, что я обычно делаю. (Это - хорошая практика для использования su - так, чтобы среда корня была установлена правильно, хотя на FreeBSD значение по умолчанию ~root/.cshrc наборы PATH явно.)

Иначе проверьте свою страницу справочника оболочки и установите alias как требуется, но это действительно только для интерактивного использования, сценарии оболочки или Make-файлы не будут наблюдать его.

5
27.01.2020, 21:11
  • 1
    Да, мне нужно -P переключатель. Я попытаюсь изменить порядок ПУТИ.Спасибо! средства –  vadipp 21.02.2013, 17:35

Просто создайте псевдоним, в ударе добавляют к Вашему ~/.bash_profile:

alias grep /usr/local/bin/grep

(Я полагаю, что другие оболочки могут сделать что-то подобное.) Тот путь можно избирательно подойти к выбору отдельных исполняемых файлов. Даже назовите свой псевдоним gnugrep если Вы не хотите освобождать систему один.

2
27.01.2020, 21:11

Если Вы не хотите изменять свой $ {ПУТЬ}, альтернативно можно просто связаться с grep Вам нравится от ранней записи $ {ПУТЬ} значение.

например, /bin вторая запись Вашего $ {ПУТЬ} и, вероятно, в $ всех пользователей {ПУТЬ} значения.

таким образом, Вы могли сделать это как корень:

cd /bin
ln -s /usr/local/bin/grep
0
27.01.2020, 21:11
  • 1
    Это - очень плохая идея. Диспетчеры пакетов полагаются на правдивость своих баз данных для поддержания состояния - что доверие не должно обойтись. –  Chris Down 21.02.2013, 12:18
  • 2
    @ChrisDown насколько я могу сказать, это решение, не повреждает базы данных диспетчера пакетов. Никакой порт не установит двоичные файлы на / мусорном ведре... –  vadipp 21.02.2013, 12:21
  • 3
    хорошо, Вы правы относительно этого... альтернативно. Вы могли включить что-то Ваш ~/.bashrc как export PATH="~/.bin:${PATH}". и затем Вы связываетесь оттуда, как mkdir ~/.bin; cd ~/.bin; ln -s /usr/local/bin/grep. Тот путь только Ваш пользователь затронут. –  replay 21.02.2013, 12:21
  • 4
    @mauro это - чистое и простое решение, большое спасибо. –  vadipp 21.02.2013, 12:22
  • 5
    @vadipp я не могу сказать это, вызовет проблемы с управлением пакетом, я не сделал бы этого на FreeBSD потому что 1: grep используется во время запуска (он не вызывается, прежде чем файловые системы смонтированы, но это - беспокойство), 2: это могло бы усложнить freebsd-update двоичные обновления, так же freebsd-update IDS если используется 3: риск повреждающихся вещей путем замены/переопределения системных двоичных файлов, которые имеют различные переключатели (например, GNU sed имеет нет -E, rc.jail повредился бы, если бы Вы заменили sed) 4: альтернативы (alias или PATH) тривиальны. –  mr.spuratic 21.02.2013, 14:32

Переместить только grep в начало пути.

  • Создать каталог mkdir /override/bin.
  • Поместите символическую ссылку в этот каталог ln -s /usr/local/bin/grep /override/bin/или лучше (, если у вас есть gnu ln)ln -s -t /override/bin/ /usr/local/bin/grep(меньше погони за ошибкой ).
  • добавить /override/bin/к началу пути.
1
27.01.2020, 21:11

Теги

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