Что подразумевается под "блокировкой пакетов" и когда именно это используется

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

$ cat Makefile 
%.in %.out :
        echo BLANK > $@

$ make -d a.in a.out
[... irrelevant output skipped...]
Updating goal targets....
Considering target file 'a.in'.
 File 'a.in' does not exist.
 Looking for an implicit rule for 'a.in'.
 Trying pattern rule with stem 'a'.
 Found an implicit rule for 'a.in'.
 Finished prerequisites of target file 'a.in'.
Must remake target 'a.in'.
echo BLANK > a.in
Successfully remade target file 'a.in'.
Considering target file 'a.out'.
File 'a.out' was considered already.
make: Nothing to be done for 'a.out'.

Обратите внимание на строки:

Considering target file 'a.out'.
File 'a.out' was considered already.

Неявные цели не «существуют», пока их не опробуют, и, таким образом, правило не «разделяется» на несколько правил. Когда a.inпробуется и успешно сопоставляется, все остальные цели помечаются как проверенные. В подавляющем большинстве случаев это не то, что вам нужно. Просто напишите два правила.

1
03.12.2019, 16:18
2 ответа

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

Итак, в заключение :всякий раз, когда вам нужно сохранить определенную версию пакета, вы блокируете ее для zypper.

2
27.01.2020, 23:29

Иногда при обновлении определенных пакетов возникают ошибки или проблемы. В то же время вы хотите исправить или обновить остальные пакеты.

Итак, как игнорировать обновление определенных пакетов?

Запирая их.

0
27.01.2020, 23:29

Теги

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