Файл прототипа pkgadd, который не разрывает ссылки - PullRequest
0 голосов
/ 13 января 2010

Как мне создать пакет Solaris, который не будет нарушать мягкие ссылки при установке пакета?

Ответы [ 3 ]

0 голосов
/ 15 января 2010

Вы можете использовать поле класса в файле прототипа для условной установки вещей. Например:

d none /foo 0775 $USER $GROUP
d createbar /bar 0775 $USER $GROUP

Каталог / foo обычно всегда создается, потому что "none" является классом по умолчанию. С другой стороны, / bar будет создан, только если установщик настроен на установку вещей в классе «createbar».

Начальный набор классов для установки задается в файле pkginfo. Вы можете изменить список классов в скриптах request или checkinstall. Идея состоит в том, чтобы один из этих сценариев выполнил некоторую проверку, чтобы решить, устанавливать ли дополнительные компоненты, а затем соответствующим образом изменить CLASSES. Например:

# Create /bar unless it already exists as a symlink
if [ ! -L /bar ]
then
    echo "CLASSES=${CLASSES} createbar"
fi

Если этот ответ не соответствует вашим потребностям, возможно, вы могли бы дать лучшее описание того, что вы пытаетесь сделать.

0 голосов
/ 20 января 2010

Что вы имеете в виду под разорвать ссылки? Я могу вспомнить пару вещей, которые могут случиться со ссылками:

  1. Перезаписать символическую ссылку файлом
  2. Перезаписать символическую ссылку каталогом
  3. Поместите файл в каталог, на который указывает символическая ссылка (скажем, вы устанавливаете в / opt / foo / bar, а / opt / foo - символическая ссылка)

Было бы полезно, если бы вы уточнили свой вопрос.

В любом случае, однако, сценарии действия класса - это то, на что вы можете обратить внимание, если вы хотите обрабатывать определенные файлы из вашего пакета особым образом.

В файле прототипа вам нужно присвоить имя класса файлу, а в другом пакете вам нужно предоставить скрипт, который будет обрабатывать этот класс. Вы можете взглянуть на CSWcswclassutils , пакет, который предоставляет ряд примеров групповых действий. Вы должны создать аналогичный пакет, содержащий сценарий действия класса, и использовать сценарии в своем пакете со специальными файлами.

0 голосов
/ 15 января 2010

Являются ли эти символические ссылки частью файла-прототипа вашего пакета? Если да, то как они определены?

...