Repository navigation
Galaxy 平台 release_24.x 升级之路 #90
shenweiyan
announced in
3.1-Galaxy
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
记录一下 Galaxy 分析平台从 release_20.09 升级到 release_24.0,横跨九个发布版本的升级之路。
为什么要升级
很主要的一个原因是随着新技术的更新,旧版本的使用可能会存在一些安全隐患,尤其对于提供互联网公开访问的平台。新版本的升级有助于捕获并应用所有先前的安全更新,以确保平台的安全性。
版本选择
最开始选择的是 release_24.1 版本,但好不容易安装完成后才发现,这个新版本中增加了一个常规途径下无法隐藏的 Activity Bar Interface,一时间无法忍受。


第二个原因是,后台 PostgreSQL 数据库的升级遇到了 function gen_random_uuid() does not exist 异常,一下子没法解决也不想去升级 PostgreSQL 版本。
所以,最终选择了从 release_20.09 升级到次新的 release_24.0 版本方案。
安装系统环境
这里以 release_24.1 作为示例,该环境要求同样适用于 release_24.0。
Galaxy release_24.1 默认安装 node-v18.12.1,参考:
run.sh→./scripts/common_startup_functions.sh→./scripts/common_startup.sh→nodeenv -n "$NODE_VERSION" -p的安装代码。node-v18.12.1 下载地址:https://nodejs.org/download/release/v18.12.1/
node-v18.12.1 要求 g++ 8.3.0 or clang++ 8.0.0:

可以通过安装 Devtoolset 的方式解决:
baseurl为阿里云或者其他的源链接。cd /etc/yum.repos.d yum clean all yum makecachesource /opt/rh/devtoolset-9/enablePython 环境
Galaxy 要求 Python >= 3.8,node-v18.12.1 要求 3.6<=Python<=3.10,这里选择 Python-3.9.18,安装如下。
Python-3.9.18 安装完成后,避免
ssl模块无法正常import使用,需要在环境中增加以下设置。Node 环境
Galaxy 的

sh run.sh默认通过ssl的方式安装已经提前编译好的 node-v18.12.1-linux-x64.tar.gz(直接解压即可使用),对于系统版本比较低的服务器(如 CentOS 7)会存在 GLIBC 异常,因此需要调整为ignore_ssl_certs的下载方式 + source 源码安装的方式安装 node-v18.12.1。所以,最终的方法为调整
./scripts/common_startup.sh中nodeenv -n "$NODE_VERSION" -p的安装代码如下:nodeenv -n "$NODE_VERSION" -p --source --ignore_ssl_certs --jobs=1node-v18.12.1 下载地址:https://nodejs.org/download/release/v18.12.1/。
由于编译非常耗时(4核8G 的服务器编译了 1 个小时左右),且对 Python 版本有要求,建议手动安装,具体安装步骤如下。
Yarn 环境
注意要先设置
npm的路径,如果有多个版本的npm,会因为版本混乱导致语法异常。pip 源
Galaxy 在安装
requirements.txt的时候默认使用下面两个源:对于国内服务器,可以考虑更换为阿里云或者清华大学的 pip 源。可以:
在
scripts/common_startup.sh中修改:在
requirements.txt头部增加:数据库升级
这是本次 Galaxy 核心版本升级时候遇到的最大问题。
由于 Galaxy 在 release_21.05 新增加了一个
history_audit数据表,release_20.09 的数据库直接执行sh manage_db.sh upgrade升级的时候history_audit数据表并不会一并创建和更新,因此最终导致在 Galaxy 服务启动的时候发生错误。这应该是数据库升级时候的一个bug,经过摸索发现,目前可以参考下面的文章,通过分步升级的方式解决。
以上解决方法,参考:galaxyproject/galaxy #19016
总结
更新后的 release_24.0 界面看起来比旧版本要更加清爽舒服一些,各个页面的汉化功能也有所改善,新增的 Notifications 功能也挺不错,总之升级之后各个方面还是挺满意的,其他细节和功能还在体验中。
All reactions