Так что, как вы указали, лучше всего было бы, если бы оба пакета имели общий «Provides».
Поскольку это, вероятно, не в ваших силах, другой вариант — создать псевдо RPM в качестве прокси для Oracle Java 11 RPM.
Name
:java-11-oracle
(например)Provides
:java-11
или любое другое соответствующее значение из RPM openjdk Requires
:java
>= 11 (или jdk
, или jre
...)%files
:пустой раздел (его можно опустить)В своем собственном пакете добавьте зависимость к Provides:
, которая теперь является общей между этим RPM-прокси и openjdk.
После этого ваш пакет можно будет установить в одной из следующих ситуаций::
java-11-oracle
RPM установлены или доступны в активных репозиториях. По разным историческим причинам разные версии echo
трактуют свои аргументы по-разному...
$ bash -c 'echo -e hello'
hello
$ dash -c 'echo -e hello'
-e hello
Dash используется в Debian и Ubuntu /bin/sh
, и это оболочка, которая, вероятно, будет использоваться большинством программ, убегающих в оболочку. Это, наверное, то, что вы бьете здесь.
Вы можете избежать несовместимости, используя вместо этого printf
. Это стандартный инструмент, у него меньше подобных несовместимостей (и он всегда обрабатывает \n
и т. д.):
shell: printf "First Line\n " > "/tmp/{{ ansible_date_time.date }}_test.txt"
Что касается использования кавычек, параметры обрабатываются самой утилитой, а кавычки полностью являются конструкцией оболочки, поэтому независимо от того, используете ли вы, например. echo '-e'
или echo -e
, то, что видит сам echo
, точно такое же.
См. также: