Projecte

General

Perfil

InstallarInvenio112 » Historial » Temàtica 10

Ferran Jorba, 11-06-2015 10:46

1 1 Ferran Jorba
h1. Installar Invenio 1.1.2
2
3
Aquests passos són la simplificació de la migració de proves de Traces a 1.1.2, documentada a 
4
http://wikis.bib.uab.cat/projects/Traces/wiki/InstallarInvenio112.  En el cas de Traces-test, la migració era més complicada perquè teníem que unificar les particularitats del DDD i les d'IFMuC.  Traces no n'havia tingut cap.
5
6
Ara que Traces-test ja ho té unificat, només es tracta d'agafar els patches i aplicar-los al DDD-test.
7
8
h2. Actualització de la base de dades
9
10
Com que la base de dades de proves és molt antiga i obsoleta, val la pena agafar un backup recent (el d'ahir, p. ex.) i instal·lar-lo a proves.  El copiem amb rsync, i hi canviem les referències de les URLs amb sed, i el resultat el guardem també comprimit, perquè anem justos d'espai de disc:
11
12
<pre>
13
ddd@nuix:~/migracio$ rsync -av ddd@homs:/var/backups/mysql/ddduab-dbdump-2015-06-10_02:00:02.sql.gz .
14
ddd@nuix:~/migracio$ zcat ddd-dbdump-2015-06-10_02\:00\:02.sql.gz | sed 's|http://ddd.uab.cat|http://ddd-test.uab.cat:2000|g; s|https://ddd.uab.cat|https://ddd-test.uab.cat|g' | gzip -9 >ddd-test.sql.gz
15
</pre>
16
17
*Important*: cal fer un bibsched stop abans de pujar el backup a la base de dades!!!
18
19
<pre>
20
traces@nuix:~/migracio$ time zcat traces-test.sql.gz | dbexec ; date
21
22
Error: duplicated key
23
</pre>
24
25
Com que dóna aquest error de clau duplicada en els índexos de fulltext, farem la càrrega sense el dbexec, i hi afegirem el --force
26
27
I executar el webcoll a proves.
28
29
I ja està a punt per fer la migració pròpament dita.
30
31 2 Ferran Jorba
h2. Backup de la instal·lació actual
32
33
<pre>
34
ddd@nuix:~$ tar cvfz invenio-1.1.1.tar.gz invenio/.git invenio/bin invenio/etc invenio/lib invenio/share
35
</pre>
36
37 10 Ferran Jorba
h2. Netejar .rej obsolets
38
39
També farem neteja dels .rejs antics, per poder identificar fàcilment els nous.
40
41
<pre>
42
ddd@nuix:~/invenio$ rej=$(find . -name '*.rej')
43
ddd@nuix:~/invenio$ ls -l $rej          # inspeccionar...
44
ddd@nuix:~/invenio$ rm -v $rej          # si procedeix!
45
</pre>
46
47
48 1 Ferran Jorba
h2. Instal·lar la versió 1.1.2
49 3 Ferran Jorba
50
Aquesta vegada hem cregut que val la pena crear una branca nova de git.  Primer, desfarem la història dels patches de la 1.1.0 (inclou la 1.1.1).  Seguirem el tutorial https://ddd.uab.cat/record/93913:
51
52
<pre>
53
$ ddd@nuix:~/invenio$ q pop make-install_1.1.1.patch
54
$ ddd@nuix:~/invenio$ q push
55 4 Ferran Jorba
$ ddd@nuix:~/invenio$ q top
56
install-1.1.1.patch
57 5 Ferran Jorba
ddd@nuix:~/invenio$ git checkout -b invenio-1.1.2
58
Switched to a new branch 'invenio-1.1.2'
59
ddd@nuix:~/invenio$ guilt init
60 7 Ferran Jorba
</pre>
61
62
Com que sabem que havent fet el pop, ja no es podrà connectar a la base de dades, hem de fer un patch específic ara mateix:
63
64
<pre>
65
ddd@nuix:~/invenio$ q new fix-database-user-and-pass.patch
66
ddd@nuix:~/invenio$ jmacs lib/python/invenio/dbquery.py
67
## both here and in inveniocfg when the time permits.
68
CFG_DATABASE_HOST = 'localhost'
69
CFG_DATABASE_PORT = '3306'
70
CFG_DATABASE_NAME = 'ddduab'
71
CFG_DATABASE_USER = 'ddd'    
72
CFG_DATABASE_PASS = 'xxyyzz'
73
CFG_DATABASE_SLAVE = ''
74
traces@nuix:~/invenio$ q refr
75
</pre>
76
77 8 Ferran Jorba
Ara que ja es podrà connectar a la base de dades, ja podrem continuar amb les instruccions:
78
79
<pre>
80
ddd@nuix:~/download/invenio/invenio-1.1.2$ make check-upgrade
81
/usr/bin/python ./modules/miscutil/lib/inveniocfg_upgrader.py . --upgrade-check
82
>>> WARNING: compiletime version 2.6 of module 'lib.intbitset' does not match runtime version 2.7
83
>>> Following upgrade(s) have not been applied yet:
84
>>>  * invenio_2012_11_15_hstRECORD_marcxml_longblob (Increase of hstRECORD.marcxml storage to longblob)
85
>>>  * invenio_2012_11_21_aiduserinputlog_userid_check (Check existence of aidUSERINPUTLOG.userid column)
86
>>>  * invenio_2012_11_01_lower_user_email (Lowering user.email values)
87
>>>  * invenio_2012_10_31_tablesorter_location (Standardisation of the jQuery tablesorter location)
88
>>> Running pre-upgrade checks...
89
>>> pre_check_custom_templates: Checking custom templates...
90
>>> pre_check_bibsched: Checking bibsched process...
91
>>> Upgrade check successful - estimated time for upgrading Invenio is less than 1 day...
92
ddd@nuix:~/download/invenio/invenio-1.1.2$ 
93
</pre>
94
95
Abans de fer el make install:
96
97 7 Ferran Jorba
*Sobretot!* Crear un nom nom per al patch d'instal·lació (a la Traces de proves ens en vam oblidar, no hi és):
98
99
<pre>
100
ddd@nuix:~/invenio$ q new make-install-1.1.2.patch
101 8 Ferran Jorba
</pre>
102
103
Des del directori de download:
104
105
<pre>
106
ddd@nuix:~/download/invenio/invenio-1.1.2$ make install
107
make  install-recursive
108
make[1]: Entering directory `/home/ddd/download/invenio/invenio-1.1.2'
109
Making install in po
110
make[2]: Entering directory `/home/ddd/download/invenio/invenio-1.1.2/po'
111
/bin/sh /home/ddd/download/invenio/invenio-1.1.2/install-sh -d /home/ddd/invenio/share
112
installing af.gmo as /home/ddd/invenio/share/locale/af/LC_MESSAGES/invenio.mo
113
[...]
114
 /bin/mkdir -p '/home/ddd/invenio/etc/build'
115
 /usr/bin/install -c config.nice '/home/ddd/invenio/etc/build'
116
for d in / /cache /cache/RTdata /log /tmp /tmp-shared /data /run /tmp-shared/bibencode/jobs/done ; do	\
117
		mkdir -p /home/ddd/invenio/var$d ;		\
118
	done
119
************************************************************
120
** Invenio software has been successfully installed!      **
121
**                                                        **
122
** You may proceed to customizing your installation now.  **
123
************************************************************
124
make[3]: Leaving directory `/home/ddd/download/invenio/invenio-1.1.2'
125
make[2]: Leaving directory `/home/ddd/download/invenio/invenio-1.1.2'
126
make[1]: Leaving directory `/home/ddd/download/invenio/invenio-1.1.2'
127
You have new mail in /var/mail/ddd
128
ddd@nuix:~/download/invenio/invenio-1.1.2$
129
</pre>
130
131
Consolidar els canvis via guilt:
132
133
<pre>
134
ddd@nuix:~/invenio$ q files | wc -l
135
134
136
ddd@nuix:~/invenio$ q refr
137
Patch make-install-1.1.2.patch refreshed
138
ddd@nuix:~/invenio$ git status
139
# On branch guilt/invenio-1.1.2
140
# Untracked files:
141
[...]
142
ddd@nuix:~/invenio$ q add bin/websubmitadmin lib/python/invenio/bibformat_elements/bfe_arttype.py lib/python/invenio/bibformat_utils_unit_tests.py lib/python/invenio/memoiseutils.py lib/python/invenio/intbitset-2.6.so lib/python/invenio/memoiseutils_unit_tests.py lib/python/invenio/ping_webinterface.py lib/python/invenio/websubmitadmincli.py
143
ddd@nuix:~/invenio$ q refr
144
Patch make-install-1.1.2.patch refreshed
145
ddd@nuix:~/invenio$ q files | wc -l
146
142
147 9 Ferran Jorba
</pre>
148 8 Ferran Jorba
149 9 Ferran Jorba
Continuem amb les instruccion del CERN. La primera (rsync) no, perquè aplicarem els nostres canvis via guilt
150
151
En el cas del DDD, aprofitarem que de Traces ja ho tenim força compactat en 36 patches.  Ens saltarem els dos primers (make-install i el fix-database-and-password.patch).
152
153
*Atenció!* no ens hem d'oblidar del tac, per que l'ordre sigui l'invers:
154
155
<pre>
156
ddd@nuix:~/invenio$ for patch in $(cat ~traces/invenio/.git/patches/invenio-1.1.2/series | awk 'NR > 2' | tac); do echo $patch; done
157
ddd@nuix:~/invenio$ for patch in $(cat ~traces/invenio/.git/patches/invenio-1.1.2/series | awk 'NR > 2' | tac); do echo $patch; q import ~traces/invenio/.git/patches/invenio-1.1.2/$patch; done
158
</pre>
159
160
I ara els aplicarem:
161
162
<pre>
163
ddd@nuix:~/invenio$ q push
164 3 Ferran Jorba
</pre>