Project

General

Profile

Preparing a Linux machine for Bilder » History » Version 16

Ted Sume, 05/05/2017 01:08 PM

1 1 Redmine Admin
# Preparing a Linux machine for Bilder
2
3 15 John Cary
__If all you need is python and sphinx__ (e.g., for builds of documentation), then you need only
4 1 Redmine Admin
5 15 John Cary
* CMake (probably present)
6
* Python (probably present)
7 16 Ted Sume
* Python-dev or Python-devel (on Fedora)
8 15 John Cary
* Latex as installed below
9 1 Redmine Admin
10 15 John Cary
and then you can add the arguments,  -W python,cmake, and your installed Python and CMake will be used if your path is correct.
11
12
## Java
13
14
At least one package (Babel) needs Oracle's java, so we recommend installing it.
15
16 1 Redmine Admin
## GCC
17 15 John Cary
18
It is often useful to get a newer gcc that has mmintrinsics.
19 1 Redmine Admin
20
Below are the instructions for building gcc-4.9.3.
21
22
### Make sure 32bit glibc-devel is installed
23
24
~~~~~~
25
yum -y install glibc-devel.i686
26
zypper install glibc-devel-32bit  (SLES 11 SP3)
27
~~~~~~
28
29
### Get the source packages
30
31
~~~~~~
32
export GCCVER=4.9.3
33
wget ftp://ftp.gnu.org/gnu/gcc/gcc-${GCCVER}/gcc-${GCCVER}.tar.bz2
34
~~~~~~
35
36
### Build
37
38
Define CONTRIB_DIR to be your tarball installation directory, e.g.,
39
40
~~~~~~
41
export CONTRIB_DIR=/contrib
42
~~~~~~
43
44
Usually CONTRIB_DIR=/contrib, but if one does not have root access, one has to put this in a user area. If one does have root access, one should execute the following commands:
45
46
~~~~~~
47
mkdir /internal /contrib /volatile
48
chmod 775 /internal /contrib /volatile
49
~~~~~~
50
51
Unpack gcc, go into the gcc source directory, and build according to the instructions below.
52
53
**gcc:**
54
55
~~~~~~
56
tar xjf gcc-${GCCVER}.tar.bz2 && cd gcc-${GCCVER}
57
./contrib/download_prerequisites
58
mkdir build && cd build
59
../configure --prefix=$CONTRIB_DIR/gcc-${GCCVER} \
60
  --enable-languages=c,c++,fortran --with-pic
61
env LD_RUN_PATH=$CONTRIB_DIR/gcc-${GCCVER}/lib64 make -j 4
62
make install
63
# Alias as desired.
64
mkdir -p $CONTRIB_DIR/bin && cd $CONTRIB_DIR/bin
65
ln -s $CONTRIB_DIR/gcc-${GCCVER}/bin/{c,g}* .
66
~~~~~~
67
68
### Fix permissions
69
70
~~~~~~
71
chmod -R g+rwX $CONTRIB_DIR/gcc-${GCCVER}
72
chmod -R o+rX $CONTRIB_DIR/gcc-${GCCVER}
73
find $CONTRIB_DIR/gcc-${GCCVER} -type d -exec chmod g+rs '{}' \;
74
~~~~~~
75
76
77
## Java
78
79
Install Oracle's Java.
80
81
Once it is installed, you will need to modify your path to include /usr/java/default/bin before /usr/bin or use the alternatives package:
82
83
~~~~~~
84
for i in java jar javac; do
85
  alternatives --install /usr/bin/$i j$i /usr/java/jdk1.6.0_16/bin/$i 3
86
done
87
alternatives --config java # Pick 3
88
~~~~~~
89
90
On SLES , Install using the tar package from Oracle, then change into the installation directory
91
92
~~~~~~
93
for i in java jar javac; do
94
  /usr/sbin/update-alternatives --install /usr/bin/$i $i <installation directory>/bin/$i 3
95
done
96
~~~~~~
97
98
where <installation directory\> is the absolute path to where Java was just installed  
99
100
## Version control systems
101
102
Make sure git, mercurial, and subversion are all installed.
103
104
## LaTeX
105
106
Install the texlive-latex package. You may need to install other packages over time. For gui usage, see texworks: http://www.tug.org/texworks
107
108
If you cannot install in the system area, you can download
109
110
~~~~~~
111
wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
112
tar xzf install-tl-unx.tar.gz
113
cd install-tl-20150411 (date might be different)
114
./install-tl -no-gui
115
~~~~~~
116
117
This is now interactive, so set
118 11 Matt Copper
 
119 10 Matt Copper
* Set scheme to basic
120
** To do this type 'S' and hit enter.
121
** Then enter 'd' to set the scheme to basic.
122
** Type 'R' and hit enter to return to the main configuration page.
123 1 Redmine Admin
124 10 Matt Copper
* Set TEXDIR = $CONTRIB_DIR/texlive
125
** Start by typing 'D' and hit enter.
126
** Then enter '1' to change TEXDIR.
127
** Type $CONTRIB_DIR/texlive and hit return.
128
** To return to configuration type 'R' and return.
129 1 Redmine Admin
130 10 Matt Copper
* Set page size to Letter size
131
** Type 'O' and hit enter.
132
** Enter 'P'
133
** Return to main menu by typing 'R' and enter. 
134
135
* Install
136
** Type 'I' and hit enter to install.
137
138
* Put your texlive in your PATH.
139
** Edit you bashrc (vim ~/.bashrc)
140
** Add "export PATH=$PATH:<$CONTRIB_DIR>/texlive/bin/x86_64-linux/" (enter the full CONTRIB_DIR value)
141
** Exit and save. Then source ~/.bashrc.
142
143
To ensure you are using the correct texlive installation type "which pdflatex" and make sure it 
144
the one in $CONTRIB_DIR/texlive/bin/x86_64-linux/. If it is not the correct pdflatex, you may
145
have to remove the system version (sudo yum remove texlive). 
146 1 Redmine Admin
147
and then
148
149
~~~~~~
150 12 John Cary
    for i in breakurl capt-of cmap comment courier ec eepic environ epstopdf eqparbox \
151
fancybox fancyvrb framed footnote framed fricychap gensymb helvetic lineno mdwtools mmap \
152
mptopdf multirow newfloat overpic palatino parskip pdftex pifont revtex4 siunitx subfiles \
153
symbol tabulary threeparttable titlesec trimspaces txfonts units upquote url wrapfig \
154
xcite xcolor xypic zapfding; do
155 1 Redmine Admin
     tlmgr install $i
156
    done
157
~~~~~~
158
159
You may also want to install some of the fonts, avantgar bookman charter cmextra courier euro-ce eurosym marvosym mathpazo ncntrsbk pxfonts rsfs symbol times txfonts utopia wasy zapfchan zapfding.
160
161
## Fedora
162
163
The following packages are needed for Fedora
164
165
~~~~~~
166
   bison
167
   glib2-devel
168
   gstreamer-devel
169
   gstreamer-plugins-base-devel
170
   libxml2-devel
171 2 Matt Copper
   openssl-devel
172 1 Redmine Admin
   zlib-devel
173
   patch
174
~~~~~~
175
176
If you cannot install in the system area, bilder/extras/gstreamer.sh may
177
be modified to do what you need.
178
179 9 David Alexander
You may also need
180
181
~~~~~~
182
   libblas-devel
183
   lapack-devel
184
~~~~~~
185
186 1 Redmine Admin
## Ubuntu
187
188
The following packages are needed for Ubuntu
189
190
~~~~~~
191
   ace-netsvcs
192
   bison
193
   flex
194
   gfortran
195
   graphviz
196
   graphviz-dev
197
   heirloom-mailx
198
   libblas-dev
199
   libfreetype6-dev
200
   libgl1-mesa-dev
201
   libglu1-mesa-dev
202
   liblapack-dev
203
   libntlm0
204
   libpng12-dev
205
   libxext-dev
206
   libxrender-dev
207
   libxtst-dev
208
   libzzip-dev
209
   mailutils
210
   python2.6
211
   python2.6-dev
212 14 Jonathan Smith
   zlib-dev *
213 1 Redmine Admin
~~~~~~
214 14 Jonathan Smith
* You will probably want a lightweight command line editor other than gedit, so "sudo apt-get install vim"  or "sudo apt-get install emacs" 
215
* zlib-dev doesn't exist on ubuntu 16.04 - use zlib1g-dev instead.
216
217
mailutils is necessary for configuring the system for jenkins. 
218
You'll be offered to choose:
219
* Internet site
220
* Internet with smarthost
221
* Satellite system
222
* Local only
223
224
Internet with smarthost is recommended.
225
226 1 Redmine Admin
227
The use of the following commands are helpful. To search for an available package dealing with a keyword, use:
228
229
~~~~~~
230
    $ sudo apt-cache search keyword
231
~~~~~~
232
233
To install a particular package, use:
234
235
~~~~~~
236
    $ sudo apt-get install libblah-dev
237
~~~~~~
238
239
Note: that development packages names typically end with "dev" not "devel" as in other flavors of linux.
240
241
## Suse Linux Enterprise Server (SLES)
242
243
The following packages are needed on SLES
244
245
~~~~~~
246
   bison
247
   blas-devel
248
   blas-devel-static
249
   libblas3
250
   flex
251
   freetype2-devel
252
   gcc
253
   gcc-32bit
254
   gcc-fortran
255
   git
256
   glibc-devel
257
   glibc-devel-32bit
258
   graphviz
259
   graphviz-devel
260
   gstreamer-0_10-devel
261
   gstreamer-0_10-plugins-base-devel
262 13 David Alexander
   libbz2-devel
263 1 Redmine Admin
   lapack-devel
264
   lapack-devel-static
265
   liblapack3
266
   libapr-util1 (needed to build subversion)
267
   libapr1      (needed to build subversion)
268
   libneon27    (needed to build subversion)
269
   libpng-devel
270
   libssh-devel
271
   libxml2-devel
272
   mailx
273
   mercurial
274
   Mesa-devel
275
   python-devel
276
   xorg-x11-devel
277
   xorg-x11-libXext-devel
278
   xorg-x11-libXrender-devel
279
   xorg-x11-libs
280
   zlib-devel
281
~~~~~~
282
283
To get blas-devel, blas-devel-static and lapack-devel, lapack-devel-static on SLES 11 SP3 , add the Science repository
284
285
~~~~~~
286
   zypper addrepo http://download.opensuse.org/repositories/science/SLE_11_SP3/science.repo
287
   zypper refresh
288
   zypper install blas-devel blas-devel-static lapack-devel lapack-devel-static
289
~~~~~~
290
291
## Vendor-specific version of graphics driver
292
293
If you are preparing a Linux machine for the VisIt Visualization package, the vendor-specific graphics driver for your graphics card should be installed.
294
295
By default, a generic graphics driver is installed.  On Fedora, the generic driver is "nouveau".
296
297
To determine if the nouveau driver is installed on your system, enter the command
298
299
~~~~~~
300
     lsmod | grep nouv
301
~~~~~~
302
303
You will need to download and install the appropriate driver from your graphics card vendor.  This generally uninstalls the nouveau drivers.
304 3 Matt Copper
305 4 Matt Copper
## NVIDIA CUDA Toolkit
306 3 Matt Copper
307
If you have a compatible GPU and wish to compile with nvcc code, you must first install the CUDA Toolkit. The linux installation page is 
308
309
~~~~~~
310
     https://developer.nvidia.com/cuda-toolkit-70
311
~~~~~~
312
313
Download the applicable file. Your Linux distribution may or may not be natively supported for version 7.0. You may alternatively use version 7.5 if supported or an older version if necessary. As an example, we will include the steps known to work for Fedora 22. On Fedora 22, download the Fedora 21 Local RPM package. 
314
315
~~~~~~
316
     cd <location of download>
317
     sudo rpm -i cuda-repo-fedora21-7-0-local-7.0-28.x86_64.rpm   #<or whatever file you downloaded> 
318
     sudo dnf install cuda
319
~~~~~~
320
321 5 Matt Copper
Different Linux distributions will have different package handlers (here we use dnf, ubuntu has apt-get, fedora < 22 uses yum). You should now have the directory /usr/local/cuda-7.0. Add /usr/local/cuda-7.0/bin to your path. To ensure you have gotten the necessary components, type:
322 3 Matt Copper
323
~~~~~~
324
     which nvcc
325
~~~~~~
326
327
The output should be /usr/local/cuda-7.0/bin/nvcc. This will allow bilder to build GPU c++ code.