Создание .sh обертки в моем debian пакете

Поскольку другие уже упомянули, if command тесты, ли command успешно выполняется.Действительно? [ … ] обычная команда, которая может использоваться за пределами if или while условное выражение, хотя это редко.

Однако для этого приложения, я протестировал бы существование характерных каталогов. Это будет корректно в большем количестве пограничных случаев. Версия Bash/ksh/zsh/dash (не протестирована):

vc=
if [ -d .svn ]; then
  vc=svn
elif [ -d CVS ]; then
  vc=cvs
else
  d=$(pwd -P)
  while [ -n "$d" ]; do
    if [ -d "$d/.bzr" ]; then
      vc=bzr
    elif [ -d "$d/_darcs" ]; then
      vc=darcs
    elif [ -d "$d/.git" ]; then
      vc=git
    elif [ -d "$d/.hg" ]; then
      vc=hg
    fi
    if [ -n "$vc" ]; then break; fi
    d=${d%/*}
  done
fi
if [ -z "$vc" ]; then
  echo 1>&2 "This directory does not seem to be under version control."
  exit 2
fi
3
21.04.2011, 18:37
1 ответ

Вы используете DESTDIR нестандартным способом. Это не префикс установки Вашего пакета, это - "fakeroot" префикс для вещей, таких как сборки пакета.

Более типичный способ записать это является чем-то вроде этого:

prefix = /usr/local
bindir = $(prefix)/bin
libdir = $(prefix)/lib

install: $(PHONIX) $(ANTLR) doc
    install -m 0755 -d $(DESTDIR)$(libdir)/phonix
    install -m 0755 -t $(DESTDIR)$(libdir)/phonix $(PHONIX) $(ANTLER)
    install -m 0755 -D phonix.sh $(DESTDIR)$(bindir)/phonix
    sed -i "s!PREFIX!$(libdir)!" $(DESTDIR)$(bindir)/phonix

Отпуск DESTDIR пустой в make-файле Вашего пакета. Это должно быть установлено в debian/rules или автоматически горячекатаным или cdbs. Я предполагаю от Вашего вопроса, что это действительно становится установленным так или иначе.

2
27.01.2020, 21:29

Теги

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