Joomla - 获取最新版本 Zip Link - 脚本安装

Joomla - Get Latest Version Zip Link - scrip Install

Joomla 有 Link 最新版本吗?例如 Wordpress 有一个 link 到 https://wordpress.org/latest.zip ,所以我知道我总是可以下载那个 zip 并获得最新版本。

我正在编写可自动设置服务器并安装 joomla 的 ansible 脚本,我需要保持简单,所以我想指定一个 link 或 api 调用或其他始终可以得到的东西最新的 joomla 版本 zip.

感谢任何帮助。 大卫

您可以使用此 link 下载最新版本:https://github.com/joomla/joomla-cms/archive/staging.zip

好的,经过一些挖掘,我想最好的方法就是 Joomla Core 的处理方式:

  1. 从 Joomla 核心更新站点的最后一个条目中获取详细信息url (https://update.joomla.org/core/list.xml) - in this instance https://update.joomla.org/core/sts/extension_sts.xml
  2. 从您在第 1 步中获得的 url 的最后一个条目中下载url - 在这种情况下 - 您需要确保这不是 PATCH url 但是更新

好问题 - 它肯定不像 wordpress 那样简单。

您可以通过以下方式使用ansible下载最新版本:

将您提到的 XML 文件下载到您的本地计算机:

   - name: download latest joomla packages list to local machine
     tags: joomlanew
     get_url:
       url: https://update.joomla.org/core/sts/extension_sts.xml
       dest: "{{ role_path }}/scripts/extension_sts.xml"
       force: yes
     delegate_to: 127.0.0.1

运行 一个 python 脚本来解析这个 XML 以找到最新的包 zip 文件:

   - name: find latest joomla version
     tags: joomlanew
     command: python ./latest_joomla.py
     args:
       chdir: "{{ role_path }}/scripts"
     delegate_to: 127.0.0.1
     register: xmlresp

然后您可以在 ansible 中使用 {{ xml.resp.stdout }} 作为下载代码的输入:

- name: download & unzip joomla
  tags: joomlanew
  unarchive:
    src: "{{ xmlresp.stdout }}"
    dest: /home/username/public_html/
    remote_src: yes
    mode: 0755

仅供参考,python 脚本中用于解析 XML 的代码为:

from xml.dom import minidom
xmldoc = minidom.parse('extension_sts.xml')
itemlist = xmldoc.getElementsByTagName('downloadurl')
last=(len(itemlist))-1
print (itemlist[last].firstChild.data)