2012-06-16 3 views
64

У меня есть машина с Ubuntu 12.04 и установлена ​​Jenkins ver. 1.424.6 с помощью APT-получить на основе this guide, но есть новая версия:Обновление Jenkins из файла войны

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

Если я нажимаю скачать, я получаю файл jenkins.war ... но как я использую это для обновления моего текущая установка? или это невозможно, пока обновленные хранилища не будут обновлены?

ответ

108

Вы можете перезаписать существующий файл jenkins.war новым, а затем перезапустить Jenkins.

Этот файл, как правило, расположен в /usr/share/jenkins.

Если это не относится к вашей системе, то в Manage Jenkins -> System Information он отобразит путь к файлу .war под номером executable-war.

+11

На моей машине он расположен в/USR/доли/Дженкинс /. После копирования и перезапуска с «перезагрузкой службы jenkins» она все еще показывает старую версию и предлагает обновление - что я делаю неправильно? – u123

+0

после перезагрузки ubuntu было обновлено – u123

+5

Это говорит о том, что ** право ** на Ubuntu происходит через Aptitude. –

25

Если вы установили Jenkins через apt-get, вы также должны обновить Jenkins через apt-get, чтобы избежать будущих проблем. Обновление должно работать через «apt-get update», а затем «apt-get upgrade».

Для получения дополнительной информации посетите следующий URL:

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

+10

+1 b/c вы никогда не знаете, что Ubuntu изменило в конфигурации Jenkins. Добавление к этому: http://pkg.jenkins-ci.org/debian/ предоставляет обновленные пакеты, устанавливаемые через apt-get непосредственно из проекта. – mabi

+0

Не нужно обновлять jenkins из файла войны, если вы это делаете выше. Я думаю, что это лучший способ для Ubuntu. –

+10

Если вы ранее устанавливали jenkins с apt-get, но через репозиторий пакетов Ubuntu по умолчанию (то есть без pkg.jenkins-ci.org/debian), вы должны удалить пакеты Ubuntu по умолчанию перед установкой нового 'sudo apt-get remove jenkins jenkins-common', тогда 'sudo apt-get install jenkins'. Если вы этого не сделаете, обновление завершится неудачей в попытке перезаписать /usr/share/jenkins/jenkins.war ', который также находится в пакете jenkins-common 1.424.6 + dfsg-1ubuntu0.1' –

1

Бежит Дженкинс из .war файла с помощью следующей команды.

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

Вы даже можете запустить команду из каталога ~/Загрузки

1

Шахта устанавливается под/USR/доли/Jenkins Я думал, что это было установлено с помощью APT-получить так могли бы хотеть проверить там Что ж.

Ubuntu 12.04.1

4

Хотя я бы не рассматривать это в качестве действительного ответа на вопрос ФП, я бы еще подчеркнуть, что лучший способ развертывания Дженкинс (и, вероятно, большинство, если не все библиотеки/пакеты/программное обеспечение) на Ubuntu - использовать систему управления aptitude (или apt-get).

Документально здесь: https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu (обратите внимание, что если вы хотите использовать сборки LTS, ударил по этому репо http://pkg.jenkins-ci.org/debian-stable/)

Так что, если случайно вы на самом деле использовать этот подход, вы бы просто сделать apt-get upgrade jenkins

+0

В теории вы правы, но это не работает при обновлении с установки на складе. После установки последнего пакета он запускается, но дает ошибку 503. Я следовал процедуре, написанной там, и мне пришлось применить решение Маттиу Руже, чтобы получить согласованное состояние pkg. –

1

Я использую этот заводной скрипт для загрузки новой войны файл

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') 

и еще один сценарий shutsdown кот - копирует войну и перезапускает его

Мы размещаем его на Windows 2008 и котом, я использую подкожно запрос, SC конфиг, SC-стоп, SC начинают управлять окнами услуги

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 
0

Я не хочу, чтобы установить x11-общие и другие компоненты которые входят в комплект apt-get install, поэтому я только что загрузил файл .war и выполнил команду Francois. Это сработало хорошо, но вы должны написать свой собственный сценарий демона с этим подходом.Все подробности здесь: http://strem.in/stream/9488/Using-the-war-file-for-jenkins-ci

2
 
apt-get update 
apt-get upgrade 

самым простым способом обновления на Linux, работает как шарм каждый раз.

1
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. 
1
#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 
+0

Отлично! Последняя стабильная ссылка также полезна: https://updates.jenkins-ci.org/stable/latest/jenkins.war –

Смежные вопросы