Вариант 2. У меня есть несколько патчей для определенных портов. Если у вас более новая версия, обновите дерево портов, затем скопируйте измененные патчи и вручную запустите «make patch», чтобы посмотреть, будут ли они корректно исправлены. Затем «сделать», чтобы увидеть, если сборки.
Как управлять локальными патчами в дереве портов FreeBSD?
Каков предпочтительный способ управления локальными патчами в дереве портов FreeBSD? В качестве примера рассмотрим textproc/urlview
. Этот порт устанавливает url_handler.sh
скрипт. Этот скрипт определяет приложения, которые будут использоваться для разных типов URL. Приложения по умолчанию не соответствуют моей системе.
Так что делать? В прошлом я использовал два довольно неудовлетворительных способа:
- Создайте и установите ванильный порт и отредактируйте `/ usr / local / bin / url_handler.sh` напрямую. Это портит удаление установленного порта, поскольку контрольная сумма изменилась. Этого можно избежать, напрямую связавшись с файлами в `/ var / db / pkg`, но это настолько хакерски, насколько это возможно.
- Создайте файл патча в `/ usr / ports / textproc / urlview / files`, который соответствующим образом исправит скрипт в фазе` patch`. Однако это не работает, если вы используете `portsnap`, поскольку он очищает каталог перед обновлением дерева портов.
Как вы, ребята, справляетесь с такими вещами?
3 ответа на вопрос
I would say option 2 but use a script to copy your patches. A script helps document a procedure, which really helps when you go back in a year and try to figure out what you did.
Although you could write something fancy which "overlays" a directory structure onto the ports tree, I find that simpler is better:
#/bin/sh PORTSTREE="/usr/ports" MYPATCHDIR="/wherever/you/put/these" # my textproc/urlview patch cp $/myurlview.patch $/textproc/urlview/files
Now you can list all your modifications in one file, and have all your patches in one directory. Run the script after you portsnap or (nowdays) svn a new ports tree.
Я начал использовать репозиторий git ( https://github.com/freebsd/freebsd-ports.git ), а затем создал локальную ветку с нужными мне изменениями. Я также использую это, когда создаю свои собственные порты, которые не доступны в дереве портов.
Похожие вопросы
-
3
Что такое "пиар"? Что означает PR в контексте портов FreeBSD?
-
1
Во FreeBSD 7.0 в Parallels не хватило места при создании портов для Mono
-
3
NetBSD, OpenBSD, * BSD и FreeBSD по сравнению
-
-
2
Как заставить скроллок в Linux работать так же, как во FreeBSD?
-
1
Freebsd Box висит на загрузчике
-
5
CentOS стрелка вверх предыдущая команда
-
2
Как использовать командную строку whois для «зараженных спамом» доменов, таких как apple.com?
-
1
Что сделал chsh, когда я набрал `chsh -s SHELL` и как вернуться к предыдущему SHELL?
-
3
freebsd: настройте другой каталог по умолчанию
-
2
Подключение к виртуальной машине на хост-компьютере