105

我有一台装有 Ubuntu 12.04 的机器并安装了 Jenkins 版本。1.424.6 使用 apt-get 基于this guide,但有一个新版本:

New version of Jenkins (1.447.2) is available for download (changelog).

如果我按下下载,我会得到一个 jenkins.war 文件......但是如何使用它来升级我当前的安装?还是在 apt 存储库更新之前这是不可能的?

4

14 回答 14

178

您可以用新文件覆盖现有jenkins.war文件,然后重新启动 Jenkins。

该文件通常位于/usr/share/jenkins.

如果您的系统不是这种情况,则在 中Manage Jenkins -> System Information,它将显示.war文件的路径executable-war

于 2012-06-16T09:43:37.407 回答
40
#on ubuntu, in /usr/share/jenkins:

sudo service jenkins stop
sudo mv jenkins.war jenkins.war.old
sudo wget https://updates.jenkins-ci.org/latest/jenkins.war
sudo service jenkins start
于 2017-10-13T15:35:42.923 回答
32

如果您已经通过 apt-get 安装了 Jenkins,您还应该通过 apt-get 更新 Jenkins 以避免将来出现问题。更新应该通过“apt-get update”然后“apt-get upgrade”进行。

详情请访问以下网址:

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu

于 2012-06-16T19:27:20.157 回答
12
apt-get 更新
apt-get 升级

到目前为止,在 linux 上升级最简单的方法,每次都像魅力一样工作。

于 2014-03-17T14:27:35.913 回答
6

当您打开 Jenkins 面板时,它将显示最新版本的可用包。您可以通过服务器中的wget命令下载它。下载最新的软件包后,您应该将 .war 备份文件。

例如:wget http://updates.jenkins-ci.org/download/war/2.205/jenkins.war

Ubuntu 的 Jenkins 战争文件路径 - /usr/share/jenkins/

centos 的 Jenkins 战争文件路径 - /usr/lib/jenkins/

备份后覆盖war文件并重新启动jenkins服务。

Ubuntu - 服务 jenkins 重启,centos - systemctl 重启 jenkins.service

于 2019-11-18T09:17:18.453 回答
4

虽然我不认为这是对 OP 问题的有效答案,但我仍然强调在 Ubuntu 上部署 Jenkins(如果不是所有库/包/软件)的最佳方法是利用 aptitude(或 apt-得到)管理系统。

它记录在这里:https ://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu (请注意,如果您想使用 LTS 构建,请点击此 repo http://pkg。 jenkins-ci.org/debian-stable/

因此,如果您有任何机会确实使用了这种方法,您只需做一个apt-get upgrade jenkins

于 2013-01-15T17:48:18.750 回答
2

我使用这个 groovy 脚本来下载新的战争文件

import java.util.concurrent.atomic.AtomicInteger

class ThreadHelper{
    static done = false;
    static starttime = System.currentTimeMillis()
    static synchronized printx (message) {    printf ("%5s seconds: %20s",(System.currentTimeMillis()-starttime)/1000.0 , message); println("") }
    def download(address)
    {
    def filename = new File(System.getenv()['CI_HOME'] + '/' + address.tokenize("/")[-1])
    println(filename.getCanonicalPath())
    def file = new FileOutputStream(filename)
    def out = new BufferedOutputStream(file)
    out << new URL(address).openStream()
    out.close()
    done=true;
    }

}

println("executing from ... "+ new File(".").getCanonicalPath())

def counter = new AtomicInteger();
    th = Thread.start {
    while(!ThreadHelper.done) {
    sleep 1000
    counter.incrementAndGet()
    print '.'
    }
}

th2 = Thread.start { new ThreadHelper().download("http://mirrors.jenkins-ci.org/war/latest/jenkins.war") }
th.join()
th2.join()

ThreadHelper.printx('done')

另一个脚本关闭tomcat - 复制战争并重新启动它

我们将它托管在 windows 2008 和 tomcat 上,我使用 sc query、sc config、sc stop、sc start 来管理 windows 服务

    set warname=jenkins

if '%name%' == 'trak' set warname=trak

pushd .
if '%name%'=='' goto badname
if '%warname%'=='' goto badname

if '%ci_home%'=='' goto badcihome

REM =====================================================
REM stop windows service
sc stop %name%

REM sleep for 5 seconds see http:\\stackoverflow.com\questions\1672338\how-to-sleep-for-5-seconds-in-windowss-command-prompt-or-dos
ping 1.1.1.1 -n 1 -w 3000 > nul

rem replace forward slash with backward slash
set tomcat_dir=%ci_home:/=\%\instances\tomcat7-%name%

REM Create sub directory called bak-yymmdd-hhmmss
REM where yymmdd-hhmmss is a date-time stamp like 120601-142907

set hh=%time:~0,2%

REM Since there is no leading zero for times before 10 am, have to put in
REM a zero when this is run before 10 am.

if "%time:~0,1%"==" " set hh=0%hh:~1,1%

set yymmdd_hhmmss=%date:~12,2%%date:~4,2%%date:~7,2%-%hh%%time:~3,2%%time:~6,2%

set backupdir=bak-%yymmdd_hhmmss%

REM =====================================================
md %tomcat_dir%\logs\%backupdir%

cd %tomcat_dir%\logs

dir bak*
echo "nothing-to-log" >> force.log

REM move command will fail if there is nothing to move hence the force log statement above

call move *.* %backupdir%

REM =====================================================
rmdir %tomcat_dir%\webapps\%name% /q/s

echo f|xcopy %ci_home%\%warname%.war %tomcat_dir%\webapps\%name%.war /y

REM TODO===== something about jenkins plugins

REM =====================================================
cd "%tomcat_dir%\bin"
call catalina version

echo =====================================================
echo ====== removing %name%
call service remove %name%

echo =====================================================
echo ====== installing %name%
call service install %name%

echo on

REM setting service to start automatically, note that space before the word auto IS REQUIRED
sc config %name% start= auto

REM =====================================================
sc start %name%

popd

exit 0

goto done

:badname
echo 'name required - this will be used as windows service name as well'
pause
exit 1

:badcihome
echo 'CI home env var required - ci_home'
pause
exit 1

:done
于 2013-01-28T19:50:47.613 回答
2

我们使用以下命令从 .war 文件运行 jenkins。

java -Xmx2500M -jar jenkins.war --httpPort=3333 --prefix=/jenkins

您甚至可以从 ~/Downloads 目录运行命令

于 2012-09-05T14:44:16.530 回答
2
https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Ubuntu

Once installed like this, you can update to the later version of Jenkins (when it comes out) by running the following commands:
-------
sudo apt-get update
sudo apt-get install jenkins
-------
(aptitude or apt-get doesn't make any difference.)
What does this package do?
Jenkins will be launched as a daemon up on start. See /etc/init.d/jenkins for more details.
The 'jenkins' user is created to run this service.
Log file will be placed in /var/log/jenkins/jenkins.log. Check this file if you are troubleshooting Jenkins.
/etc/default/jenkins will capture configuration parameters for the launch like e.g JENKINS_HOME
By default, Jenkins listen on port 8080. Access this port with your browser to start configuration.
于 2017-09-10T10:02:43.253 回答
1

我的安装在 /usr/share/jenkins 我认为它是通过 apt-get 安装的,所以可能也想在那里检查。

Ubuntu 12.04.1

于 2012-12-13T15:47:58.303 回答
1

我不想安装 apt-get install 方法中捆绑的 x11-common 和其他组件,所以我只是下载了 .war 文件并运行了 Francois 提到的命令。效果很好,但是您必须使用这种方法编写自己的守护程序脚本。完整的细节在这里:http ://strem.in/stream/9488/Using-the-war-file-for-jenkins-ci

于 2013-04-05T16:53:20.533 回答
1

这可以通过两种方式完成

  1. 直接下载 .war 文件并将其替换为现有文件。
  2. 直接从 ubuntu 更新

第一种方法

如果您在标准路径中找不到 jenkins war 文件,您可以转到管理 Jenkins → 系统信息,它将显示 .war 文件的路径。

Jenkins war 文件在 ubuntu 服务器上的常见位置是:

/usr/share/jenkins

跳转到詹金斯主目录

cd /usr/share/jenkins

停止詹金斯服务器

sudo service jenkins stop

移动现有的詹金斯战争文件

sudo mv jenkins.war jenkins.war.old

下载最新的詹金斯战争文件

sudo wget https://updates.jenkins-ci.org/latest/jenkins.war

启动 Jenkins 服务器

sudo service jenkins start

现在一切都应该很好。

故障排除步骤

如果您使用 root 权限运行 jenkins(您不应该这样做),您需要更改 jenkins.war 权限。

$ sudo chown root:root jenkins.war

您可以选择使用以下命令重新启动 jenkins 服务器:

$ sudo /etc/init.d/jenkins 重启

第二种方法

在 ubuntu 上,您还可以尝试以下两个命令来更新所有内容:

$ sudo apt-get update
$ sudo apt-get install jenkins --fix-missing
于 2021-09-17T09:27:12.370 回答
1

要升级 Jenkins WAR 文件,请按照以下步骤操作:

  • 使用命令停止 Jenkins 服务器:systemctl stop jenkins
  • 去詹金斯战争地点:例如:/usr/lib/jenkins
  • 从 jenkins.war 备份:mv jenkins.war jenkins.war_bkp
  • 使用 wget 或 curl 命令下载 Jenkins: wget http://updates.jenkinsci.org/download/war/(version)/jenkins.war
  • 使用命令启动 Jenkins 服务器:systemctl start jenkins
  • 使用命令检查 Jenkins 服务器状态:systemctl status jenkin
于 2019-08-17T12:53:24.660 回答
-2

正如 Vasan 所说,到目前为止,在 ubuntu 中升级 jenkins 的最简单方法。

apt-get 更新 apt-get 升级

于 2021-04-02T16:42:29.467 回答