You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repository contains all the requirements for deploying the [Legacy][DQMGUI](https://github.com/cms-DQM/dqmgui_prod) on a Red Hat Enterprise Linux 8 machine, with Python3.6 for the needs of moving DQM production to new machines.
It aims to replace the existing one (`Deploy`), found in [`dmwm/deployment`](https://github.com/dmwm/deployment/tree/master/Deploy), which only targets OS up to SLC7. The main difference is that the `Deploy` script relies on pre-built libraries and executables, found on `cmsrep.cern.ch`, while this script downloads and builds all requirements from source (hence takes longer to deploy).
5
+
This repository contains all the requirements for deploying the [Legacy][DQMGUI](https://github.com/cms-DQM/dqmgui_prod) on a Red Hat Enterprise Linux 8 machine, with Python3.8 for the needs of moving DQM production to new machines.
6
+
7
+
It aims to replace the existing one (`Deploy`), found in [`dmwm/deployment`](https://github.com/dmwm/deployment/tree/master/Deploy), which only targets OS up to SLC7. The main difference is that the `Deploy` script relies on pre-built libraries and executables, found on `cmsrep.cern.ch`, while the method we implement in this repository depends on two steps:
8
+
9
+
1. Download all the external resources needed (e.g. python packages from PyPI, github repositories) and compress them. This is done automatically with GitHub actions, and you can download a package ready to install [here](https://github.com/cms-DQM/dqmgui_prod_deployment/actions/workflows/build_installation_package.yaml).
10
+
2. Copy the archives to the P5 machine and extract, then build from source (hence takes longer to deploy).
6
11
7
12
> **Warning**
8
13
> This deployment script should *not* be run as a sudo user.
@@ -12,15 +17,13 @@ It aims to replace the existing one (`Deploy`), found in [`dmwm/deployment`](htt
12
17
- RHEL8 (Tested with version 8.8)
13
18
-`sudo` permissions:
14
19
- To install the system-wide packages (listed below).
15
-
<!-- - To create a soft link in `/usr/lib64`. -->
16
-
- Python 3.6
20
+
- Python 3.8
17
21
- Git
18
-
- Access to PyPI for downloading python packages.
19
-
- Access to GitHub for cloning several external dependencies.
20
22
- Several system packages, installed via `yum`:
21
23
<details>
22
-
<summary>Package list</summary>
24
+
<summary>Package list</summary>
23
25
26
+
- unzip
24
27
- bzip2
25
28
- libglvnd-opengl
26
29
- libX11-devel
@@ -42,12 +45,10 @@ It aims to replace the existing one (`Deploy`), found in [`dmwm/deployment`](htt
42
45
- perl-Digest-MD5
43
46
- tcsh
44
47
- zsh
45
-
- root
46
-
- python3-root
47
48
- epel-release
48
-
- python3-pip
49
49
- libcurl-devel
50
-
- python36-devel
50
+
- python38
51
+
- python38-devel
51
52
- boost-python3-devel
52
53
- protobuf-devel
53
54
- jemalloc-devel
@@ -56,60 +57,77 @@ It aims to replace the existing one (`Deploy`), found in [`dmwm/deployment`](htt
56
57
- lzo-devel
57
58
- cmake
58
59
- xz-devel
59
-
- python3-sphinx
60
60
- openssl-devel
61
61
- libjpeg-turbo-devel
62
62
- libpng-devel
63
+
- gcc-c++
64
+
- gcc
65
+
- binutils
66
+
- gcc-gfortran
67
+
- mesa-libGL-devel
68
+
- mesa-libGLU-devel
69
+
- glew-devel
70
+
- ftgl-devel
71
+
- fftw-devel
72
+
- cfitsio-devel
73
+
- graphviz-devel
74
+
- libuuid-devel
75
+
- avahi-compat-libdns_sd-devel
76
+
- openldap-devel
77
+
- python3-numpy
78
+
- libxml2-devel
79
+
- gsl-devel
80
+
- readline-devel
81
+
- R-devel
82
+
- R-Rcpp-devel
83
+
- R-RInside-devel
84
+
- xrootd-client
63
85
</details>
64
86
65
87
## Deploying [Legacy] DQMGUI
66
88
67
-
This procedure has been tested on a RHEL8 Openstack VM.
89
+
This procedure has been tested on a RHEL8 Openstack VM. Instructions below are primarily for a personal VM.
68
90
69
-
1. Install the system packages:
91
+
0. Download the latest build artifact and copy it to the machine you want to install it to:
This script uses some internal variables to specify options such as the main installation directory, or the git tags/refs to use when cloning repositories. It's not recommended that you edit those, as most of them are hand-picked so that the project compiles (we're mostly referring to the git refs).
132
150
@@ -137,12 +155,10 @@ Below is a list of the values that you will most probably need to change to cust
137
155
| Variable name | Description |Default value |
138
156
|---------------|-------------|--------------|
139
157
|`INSTALLATION_DIR`| The directory to install the GUI into. It should be writable by the user running the script |`/data/srv`|
140
-
|`DMWM_GIT_TAG`| The git tag/ref to checkout `dmwm/deployment` to. See [here](https://github.com/dmwm/deployment/tags) for a list. |`HG2903c`|
141
-
|`DQMGUI_GIT_TAG`| The git tag/ref to checkout `cms-DQM/dqmgui_prod` to. See [here](https://github.com/cms-DQM/dqmgui_prod) for a list. |`9.8.0`|
142
158
143
-
## [Debug] Selectively run parts of the installation script
159
+
###[Debug] Selectively run parts of the installation script
144
160
145
-
The script is split into steps (see: `installation_steps`), which can all be toggled off or on by arguments when running the script.
161
+
The script is split into steps (see the `installation_steps` array declared in the `deploy_dqmgui.sh` script), which can all be toggled off or on by arguments when running the script.
146
162
147
163
The flags are named by concatenating `do_` with the name of the step, so, for example, `do_check_dependencies` or `do_install_rotoglup`.
148
164
@@ -152,8 +168,16 @@ The are all set to `1` by default, and you can override them when running the sc
A useful combination that can be used when you've already downloaded all external dependencies once, and you want just to re-compile the DQMGUI part for testing:
171
+
A useful combination that can be used when you've already installed and built all steps once, but you only want to re-compile the DQMGUI part for testing:
The installation package is created by running `download_dependencies.sh`. This is done automatically by github actions (see `.github/workflows/build_installation_package` in this repository). The versions of the packages downloaded are specified in `config.sh`.
180
+
181
+
## Notes
182
+
183
+
- We're not using the RHEL8 `root` package, due to the fact that they are built for python3.6, hence we need to build it with python3.8.
0 commit comments