SVNNotify, Где это? как я нахожу его?

Я нахожусь на человечности.

хорошо, в первую очередь, я запускаю скрипт постфиксации. Мне нужен путь к 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

Я получаю это, как произведено:

постфиксация: команда, не найденная

3
задан 18.06.2010, 22:31

2 ответа

/usr/local традиционное местоположение Linux/Unix для "материала, который Вы установили самостоятельно". Если Вы компилируете материал из источника и устанавливаете его, /usr/local обычно используется в качестве основного каталога установки - исполняемые файлы входят /usr/local/bin, библиотеки в /usr/local/lib, и т.д.

При установке материала от хранилищ пакетов распределения те файлы будут помещены где-то в другом месте. /usr типичный каталог установки системы, поэтому если Ваш диспетчер пакетов будет иметь или сможет получить правильный пакет, то он установит на /usr/bin, /usr/lib, и т.д.

Так как Вы не даете ссылку на учебное руководство, я не знаю то, что все Вы попробовали, или как это может конфликтовать с учебными направлениями. Но Вы ищете программу svnnotify. Если Вы уверены, что это уже установлено, попробуйте это:

  1. Выполненный, чтобы видеть, знает ли Ваша система уже команду, и где она находит его:

    $ which svnnotify
    /usr/bin/svnnotify
    

    Если это не находит его, нет никакой команды, названной svnnotify на Вашем ПУТИ, но возможно существует один в системе где-нибудь, которая не находится на ПУТИ.

  2. Свериться 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>
1
ответ дан 08.12.2019, 00:36

Я выполняю его как так:

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
1
ответ дан 08.12.2019, 00:36

Теги

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