Я нахожусь на человечности.
хорошо, в первую очередь, я запускаю скрипт постфиксации. Мне нужен путь к svnnotify для выполнения его. Путь turotial, который я читаю, имеет его как /usr/local/bin/svnnotify
но ничто не находится в том месте на моем компьютере. Я попробовал его так или иначе, и я получаю что-то как:
Warning post-commit hook failed: not found
таким образом, я думаю, что должен заменить /usr/local/bin/svnnotify
с корректным путем к svnnotify. Хорошо я делаю поиск (Places>Search for Files
) для svnnotify
и ничто не подходит.
Я знаю, что svnnotify установлен becuase, если я открываю командную строку и работаю svnnotify
это говорит мне, что я пропускаю необходимый параметр пути.
Таким образом, как это может быть установлено если не в файловой системе где-нибудь?
Я действительно не знаю, как Linux работает, его очень плохо мне знакомое, таким образом, я смущен.
Есть ли что-то, что я пропускаю?
Я обновил файл для сходства с:
#!/bin/bash
REPOS="$1"
REV="$2"
/usr/bin/svnnotify --repos-path "$REPOS" --revision "$REV" --subject-cx --with-diff --handler HTML::ColorDiff --to myemail@gmail.com --from myemail@gmail.com
Я сделал это исполняемым файлом.
Я выполняю его как так:
myuser@linux-server:/usr/local/svn/svn_repo/hooks$ постфиксируют/usr/local/svn/svn_repo 9
Я получаю это, как произведено:
постфиксация: команда, не найденная
/usr/local
традиционное местоположение Linux/Unix для "материала, который Вы установили самостоятельно". Если Вы компилируете материал из источника и устанавливаете его, /usr/local
обычно используется в качестве основного каталога установки - исполняемые файлы входят /usr/local/bin
, библиотеки в /usr/local/lib
, и т.д.
При установке материала от хранилищ пакетов распределения те файлы будут помещены где-то в другом месте. /usr
типичный каталог установки системы, поэтому если Ваш диспетчер пакетов будет иметь или сможет получить правильный пакет, то он установит на /usr/bin
, /usr/lib
, и т.д.
Так как Вы не даете ссылку на учебное руководство, я не знаю то, что все Вы попробовали, или как это может конфликтовать с учебными направлениями. Но Вы ищете программу svnnotify. Если Вы уверены, что это уже установлено, попробуйте это:
Выполненный, чтобы видеть, знает ли Ваша система уже команду, и где она находит его:
$ which svnnotify
/usr/bin/svnnotify
Если это не находит его, нет никакой команды, названной svnnotify на Вашем ПУТИ, но возможно существует один в системе где-нибудь, которая не находится на ПУТИ.
Свериться locate svnnotify
.
$ locate svnnotify
/usr/example/bin/svnnotify
/usr/bin/svnnotify
/usr/share/svnnotify/foo
...
При установке svnnotify с нуля диспетчер пакетов не может знать, где это; найдите должен помочь. Необходимо будет принять во внимание нестандартное расположение файлов и настроить учебные шаги соответственно.
Если Вы установили его совсем недавно, выполнение sudo updatedb
поэтому найдите, знает о недавних дополнениях к файловой системе.
Если те шаги не находят файл, удостоверьтесь, что Вам установили пакет или устанавливаете его от Вашего любимого диспетчера пакетов (Синаптический, склонный - добираются, способность, и т.д.). На Ubuntu 10.04 svnnotify установлен на/usr/bin/svnnotify пакетом libsvn-notify-perl. При использовании Ubuntu svnnotify, необходимо будет изменить учебные шаги соответственно.
Учебное руководство показывает, как создать сценарий постфиксации. Необходимо изменить сценарий для указания на корректный svnnotify. Если Ваша система имеет svnnotify в/usr/bin/svnnotify вместо/usr/local/bin/svnnotify, измените сценарий как так:
#!/bin/sh
REPOS="$1"
REV="$2"
/usr/bin/svnnotify \
--repos-path "$REPOS" \
--revision "$REV" \
--subject-cx \
--with-diff \
--handler HTML::ColorDiff \
--to <your e-mail address> \
--from <from e-mail address>
Я выполняю его как так:
myuser@linux-server:/usr/local/svn/svn_repo/hooks$ постфиксируют/usr/local/svn/svn_repo 9
Я получаю это, как произведено:
постфиксация: команда, не найденная
На Linux и других системах Unix оболочка не ищет программы в текущем рабочем каталоге по умолчанию (из соображений безопасности), таким образом, необходимо запустить тот скрипт как это:
myuser@linux-server:/usr/local/svn/svn_repo/hooks$ ./post-commit /usr/local/svn/svn_repo 9