For a production environment, it might be better to create a .deb install file on a non-production "compiling machine" and transfer that .deb file to the target server and install the .deb file. The main item to consider is that the compiling machine and production server are running the same OS (e.g. Ubuntu Server 22.04 LTS)
Make sure you install the compilation package:
On the compiling machine, run the below command but substitute your own settings for maintainer and pkgsource. Run this right after the "make" and "make doc" commands.
It will ask you a few questions, answer however you want. I set my description to "Lightweight, RESTful DICOM server for medical imaging"
NOTE: The parenthesis () and greater than > symbol in the command below have to be preceded (escaped) with a backslash \
Code: Select all
cd ~/Orthanc/Build
checkinstall -D --install=no --maintainer="LHammonds" --pkgsource="https://hammondslegacy.com" --pkgname="orthanc-loc" --pkgversion="1.11.1" --pkgrelease="SNAPSHOT" --arch="$(dpkg --print-architecture)" --pkglicense="GPLv3" --requires="adduser,dcmtk,locales,libcivetweb1 \(\>= 1.15\),lsb-base,tzdata,libboost-filesystem1.74.0 \(\>= 1.74.0\),libboost-iostreams1.74.0 \(\>= 1.74.0\),libboost-locale1.74.0 \(\>= 1.74.0\),libboost-regex1.74.0-icu70,libboost-thread1.74.0 \(\>= 1.74.0\),libc6 \(\>= 2.35\),libcurl4 \(\>= 7.81.0\),libdcmtk16 \(\>= 3.6.6\),libgcc-s1 \(\>= 3.3.1\),libjpeg8 \(\>= 8c\),libjsoncpp25 \(\>= 1.9.5\),liblua5.3-0,libpng16-16 \(\>= 1.6.37\),libpugixml1v5 \(\>= 1.12.1\),libsqlite3-0 \(\>= 3.37.2\),libssl3 \(\>= 3.0.2\),libstdc++6 \(\>= 11\),libuuid1 \(\>= 2.37.2\),zlib1g \(\>= 1:1.2.11\)" --provides="orthanc"
NOTE: I copied the requirements from what is listed for Orthanc 1.10.0 in the Official Ubuntu repository (
apt show orthanc). They might not be accurate for 1.11.1 but have yet to see where to find that info so I simply set the minimum version to what I see installed on Ubuntu Server 22.04.1 LTS at the time I compiled. The command below is how it looks if you use the exact requirements for 1.10.0 in the Official Ubuntu repository:
checkinstall -D --install=no --maintainer="LHammonds" --pkgsource="https://hammondslegacy.com" --pkgname="orthanc" --pkgversion="1.8.0" --pkgrelease="SNAPSHOT" --arch="$(dpkg --print-architecture)" --pkglicense="GPLv3" --requires="adduser, dcmtk, locales, libcivetweb1 (>= 1.15), lsb-base, tzdata, libboost-filesystem1.74.0 (>= 1.74.0), libboost-iostreams1.74.0 (>= 1.74.0), libboost-locale1.74.0 (>= 1.74.0), libboost-regex1.74.0-icu70, libboost-thread1.74.0 (>= 1.74.0), libc6 (>= 2.34), libcurl4 (>= 7.16.2), libdcmtk16 (>= 3.6.6), libgcc-s1 (>= 3.3.1), libjpeg8 (>= 8c), libjsoncpp25 (>= 1.9.5), liblua5.3-0, libpng16-16 (>= 1.6.2-1), libpugixml1v5 (>= 1.6), libsqlite3-0 (>= 3.7.3), libssl3 (>= 3.0.0~~alpha1), libstdc++6 (>= 11), libuuid1 (>= 2.16), zlib1g (>= 1:1.2.0)" --provides="orthanc"
The end-result file will be something like this:
Code: Select all
-rw-r--r-- 1 root root 9884360 Aug 17 08:31 /root/Orthanc/Build/orthanc-loc_1.11.1-SNAPSHOT_amd64.deb
You can look at the package information with this command:
Code: Select all
dpkg-deb --info ~/Orthanc/Build/orthanc-loc_1.11.1-SNAPSHOT_amd64.deb
Code: Select all
new Debian package, version 2.0.
size 9884360 bytes: control archive=558 bytes.
0 bytes, 0 lines conffiles
761 bytes, 10 lines control
Package: orthanc-loc
Priority: extra
Section: checkinstall
Installed-Size: 34856
Maintainer: LHammonds
Architecture: amd64
Version: 1.11.1-SNAPSHOT
Depends: adduser,dcmtk,locales,libcivetweb1 (>= 1.15),lsb-base,tzdata,libboost-filesystem1.74.0 (>= 1.74.0),libboost-iostreams1.74.0 (>= 1.74.0),libboost-locale1.74.0 (>= 1.74.0),libboost-regex1.74.0-icu70,libboost-thread1.74.0 (>= 1.74.0),libc6 (>= 2.35),libcurl4 (>= 7.81.0),libdcmtk16 (>= 3.6.6),libgcc-s1 (>= 3.3.1),libjpeg8 (>= 8c),libjsoncpp25 (>= 1.9.5),liblua5.3-0,libpng16-16 (>= 1.6.37),libpugixml1v5 (>= 1.12.1),libsqlite3-0 (>= 3.37.2),libssl3 (>= 3.0.2),libstdc++6 (>= 11),libuuid1 (>= 2.37.2),zlib1g (>= 1:1.2.11)
Provides: orthanc
Description: Lightweight, RESTful DICOM server for medical imaging
Transfer the generated .deb file to the new Orthanc servers.
Code: Select all
scp ~/Orthanc/Build/orthanc-loc_1.11.1-SNAPSHOT_amd64.deb administrator@192.168.1.31:/tmp/.
scp ~/Orthanc/Build/orthanc-loc_1.11.1-SNAPSHOT_amd64.deb administrator@192.168.1.32:/tmp/.
scp ~/Orthanc/Build/orthanc-loc_1.11.1-SNAPSHOT_amd64.deb administrator@192.168.1.33:/tmp/.
On the Orthanc server, install from the .deb package that was copied to it.
Code: Select all
sudo dpkg -i /tmp/orthanc-loc_1.11.1-SNAPSHOT_amd64.deb
It will likely error out saying required dependencies are not installed. Example:
Code: Select all
Selecting previously unselected package orthanc-loc.
(Reading database ... 119619 files and directories currently installed.)
Preparing to unpack .../orthanc-loc_1.11.1-SNAPSHOT_amd64.deb ...
Unpacking orthanc-loc (1.11.1-SNAPSHOT) ...
dpkg: dependency problems prevent configuration of orthanc-loc:
orthanc-loc depends on dcmtk; however:
Package dcmtk is not installed.
orthanc-loc depends on locales; however:
Package locales is not configured yet.
orthanc-loc depends on libcivetweb1 (>= 1.15); however:
Package libcivetweb1 is not installed.
orthanc-loc depends on libboost-filesystem1.74.0 (>= 1.74.0); however:
Package libboost-filesystem1.74.0 is not installed.
orthanc-loc depends on libboost-iostreams1.74.0 (>= 1.74.0); however:
Package libboost-iostreams1.74.0 is not installed.
orthanc-loc depends on libboost-locale1.74.0 (>= 1.74.0); however:
Package libboost-locale1.74.0 is not installed.
orthanc-loc depends on libboost-regex1.74.0-icu70; however:
Package libboost-regex1.74.0-icu70 is not installed.
orthanc-loc depends on libboost-thread1.74.0 (>= 1.74.0); however:
Package libboost-thread1.74.0 is not installed.
orthanc-loc depends on libdcmtk16 (>= 3.6.6); however:
Package libdcmtk16 is not installed.
orthanc-loc depends on libjsoncpp25 (>= 1.9.5); however:
Package libjsoncpp25 is not installed.
orthanc-loc depends on liblua5.3-0; however:
Package liblua5.3-0 is not installed.
orthanc-loc depends on libpugixml1v5 (>= 1.12.1); however:
Package libpugixml1v5 is not installed.
dpkg: error processing package orthanc-loc (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
orthanc-loc
After trying to install the .deb package, you can now run this command which will install the required packages and then install Orthanc:
Once the package is installed, you will need to finish the following sections above to complete the installation:
*
Configuration
*
Systemd Service
*
Ubuntu Firewall Rules
You can see the destination folder (and files) by looking at the contents inside the .deb file with this command:
Code: Select all
sudo dpkg-deb --contents /tmp/orthanc-loc_1.11.1-SNAPSHOT_amd64.deb
It is the same destination locations as if compiled on this machine:
Code: Select all
/usr/local/sbin/Orthanc
/usr/local/share/orthanc/plugins/
/usr/local/bin/OrthancRecoverCompressedFile
/usr/local/share/doc/orthanc/OrthancPlugin/
/usr/local/include/orthanc/OrthancCDatabasePlugin.h
/usr/local/include/orthanc/OrthancCPlugin.h
To remove the manually installed package (such as prior to installing a newer version):
Normally, you remove configuration files like this:
But the installer did not create any configuration files so you will need to manually remove the changes made after installing the .deb package....such as going through the following sections to reverse / delete changes made:
*
Configuration
*
Systemd Service
*
Ubuntu Firewall Rules