我在服务器的 /var/lib/hudson 目录中安装了 hudson。当我在浏览器中通过 URL 访问 jenkins 时,我在页面底部看到版本 1.411。
有人知道如何通过命令行(CLI)更新 Jenkins。如果可能的话。
当我进入“管理 Jenkins”页面时,它显示如下内容: “新版本的 Jenkins (1.521) 可供下载(更新日志)。”
我觉得下载新的 jar 并将其提取到服务器中并不安全。
您指的是 Jenkins CLI,还是操作系统上的 CLI?无法通过 Jenkins CLI 更新 Jenkins 版本。
如果您将 Jenkins 作为独立的 WAR 文件安装,则从命令行升级它所需要做的就是下载新的 Jenkins WAR 文件并替换当前的 WAR 文件,然后重新启动 Jenkins。在升级之前备份 $JENKINS_HOME 目录的全部内容总是一个好主意。
如果您使用 RPM 或 DEB 等本机包,则应使用 Jenkins 服务器上的包管理器(yum、apt-get 等)来升级 Jenkins。
由于接受的答案并没有详细说明如何通过登录服务器本身来升级 Jenkins,因此我将添加如何在使用 apt 包管理器的服务器中执行此操作。
登录服务器后,输入以下命令列出所有可升级的软件包。
apt list --upgradable
您应该得到如下输出:
列出...完成
iproute2/bionic-updates 4.15.0-2ubuntu1.3 amd64 [可升级自:4.15.0-2ubuntu1.2] jenkins/binary 2.277.1 全部 [可升级自:2.263.4]
如果 Jenkins 在输出列表中,只需使用以下命令运行升级即可:
apt upgrade jenkins
是的,我们可以通过 CLI 更新 jenkins。 检查正在使用哪个 jenkins.rpm
$sudo rpm -q jenkins
就我而言,它是 jenkins-2.119-1.1.noarch。 如果您没有 jenkins.repo 和 jenkins 密钥,请运行以下步骤
$sudo yum install wget
用于安装 wget
$sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
$sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
$sudo yum clean metadata
这将删除未使用的过多和旧的元数据
$sudo yum remove jenkins
它将删除 jenkins-2.119-1.1.noarch(旧版本 rpm)。 进入jenkins官网页面,然后复制你想要的rpm的url
$wget https://get.jenkins.io/redhat/jenkins-2.380-1.1.noarch.rpm
下载所需的 jenkins rpm pkg
$ sudo rpm -i jenkins-2.380-1.1.noarch.rpm
安装了新的 jenkins rpm
$ sudo rpm -qa jenkins
jenkins-2.380-1.1.noarch
$sudo systemctl enable jenkins
$sudo systemctl start jenkins
这里你可能会遇到这种类型的错误 “jenkins.service 的作业失败,因为控制进程退出并显示错误代码。有关详细信息,请参阅“systemctl status jenkins.service”和“journalctl -xe”” 为此,我们必须将我们使用的 java 版本更新到 11 或最新版本
$sudo yum install fontconfig java-11-openjdk
或
$sudo yum install java-11-openjdk-devel
$sudo update-alternatives --config java
选择合适的java版本
$sudo systemctl start jenkins
在 Red Hat Enterprise Linux 版本 8.8 上,我通过以下方式更新了 Jenkins(以及其他几个非 Jenkins 软件包):
dnf update