Ради всех, кто сталкивается с проблемой, когда yum не распознает версии зависимостей, вот как я исправил разрешение зависимостей.
В моем пакете зависимостей заголовок спецификации rpm начинался с:
Name: my-package
Provides: my-package
Version: 1.2.0
Release: 0
Строка Provides: my-package
была избыточной и вводила в заблуждение yum
, поскольку означала, что все версии пакета предоставляли my-package
. Я не совсем понимаю, почему это приводило к игнорированию номеров версий и эпох, но вот так.
Удаление имени пакета my-package
из списка материалов, которые он предоставляет, заставило yum соблюдать требования к версиям, как и ожидалось.
Я думаю, что это, вероятно, ошибка в yum
. Я не проверял, делает ли dnf
то же самое.
Использование Raku (, ранее известного как Perl _6)
raku -ne '.put unless.grep: all(/def/, /jkl/);'
ИЛИ
raku -ne '.put if.grep: { !/def/ || !/jkl/ };'
ИЛИ (Раку-эквивалент кода Perl5 @terdon):
raku -ne '.put unless /def/ && /jkl/;'
ИЛИ
raku -ne '/def/ && /jkl/ ||.put;'
ИЛИ
raku -ne '(/def/ && /jkl/) ?? {next} !!.put'
Пример ввода:
1. abc def ghi
2. def ghi jkl
3. jkl mno pqr
4. jkl def stu
5. vwx yza bcd
Пример вывода:
1. abc def ghi
3. jkl mno pqr
5. vwx yza bcd
Вкратце,первые два ответа используют линейный флаг-ne
(без -автопечати )вместе с подпрограммой Раку grep
. Следующие три ответа являются Raku-эквивалентом Perl (5 )ответов @terdon.
Первые две(grep
)строки кода интересны тем, что они используют два разных механизма :первая использует all
соединение (, часто вызываемое для наборов в Raku ), а во втором примере grep
запускается на блоке кода {}
, который логически преобразуется в True/False.
Хорошая вариация первых двух результатов(grep
)заключается в использовании дополнительных параметров (:k
, :v
, :kv
, :p
), доступных в подпрограмме grep
. Например, простое добавление :p
пар (параметра «наречие» )указывает коду на вывод результатов в виде пронумерованных пар:
raku -ne '.put if.grep( { !/def/ || !/jkl/ }, :p );'
Пример вывода (с индексом):
0 => 1. abc def ghi
2 => 3. jkl mno pqr
4 => 5. vwx yza bcd