回购中的实际包名称为package-2.6.12-3.el7.x86_64
。
目标是使用Ansible安装包:
repo可以不时更新包,但我不知道什么时候。
我的想法是安装这样的包;
- name: Install package
yum:
name: package-2.6
state: present
但任务失败,因为package-2.6
不在回购中。虽然只是package
有效,但它不是未来的证据。
更新
似乎通配符*
do
有效,例如package-2.6*
。
答案 0 :(得分:1)
简短通用答案:
您应该只能使用通配符<RadioButton
...
android:textAlignment="center"
... />
。
所以只是:
*
特定案例答案:
我在AWS中为您的特定情况创建了一个测试服务器,发现通配符确实有用(运行CentOS 7的EC2实例,安装`mongodb-org-server-3.4.0 *)。
您确实需要确保首先正确配置了mongo存储库,但是您在评论中说,如果您提供完整版本号,则可以下载该软件包,这是不寻常的。无论如何,这是我制作并运行的最小剧本:
- name: Install package
yum:
name: package-2.6*
state: latest
play.yml:
此剧本复制repo配置的本地文件,如下所示(路径相对于- hosts: all
remote_user: centos
tasks:
- name: Add MongoDB repo for CentOS
become: true
copy:
src: ./files/mongodb-org-3.4.repo
dest: /etc/yum.repos.d/mongodb-org-3.4.repo
- name: Install mongodb
become: true
yum:
name: mongodb-org-server-3.4.0*
state: latest # Works with 'present' too, but won't update versions
文件):
play.yml
files/mongod-org-3.4.repo:
答案 1 :(得分:1)
不确定是否适用于您的Yum套餐。但是对于Java Open JDK安装,其中java-1.7.0和java-1.8.0软件包都可以从我配置的yum repos安装。
这将确保1.7.x版本是最新版本,而不安装1.8.x。
- name: Install latest 1.7.x jdk
yum:
name: java-1.7.0-openjdk.x86_64
state: latest
从上面安装的实际版本是:
$ rpm -q java-1.7.0-openjdk.x86_64
java-1.7.0-openjdk-1.7.0.121-2.6.8.1.el6_8.x86_64
对于MongoDB,2.x版本和3.x版本的包名称相同。
但2.x版本有一个Yum repo文件,3.x版本有另一个。 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
因此,为了确保您获得最新的2.x版本而不转移到3.x,请将2.x repo文件添加到目标主机并使用您的ansible中的disable
和enablerepo
参数安装/更新操作的任务。
- name: Ensure latest 2.x mongodb version is installed
yum:
name: mongodb-org
disablerepo: "*"
enablerepo: mongodb-org-2.6
state: latest
注意:使用disablerepo: "*"
作为mongodb软件包也存在于其他存储库中,例如epel。