This is a step-by-step guide to install Documentum 16.4 in a Linux environment with PostgreSQL 9.6 (as we don’t have/I haven’t found the compatibility matrix, I’ve used the same version bundled in the docker image).
Environment
Host:
Windows 10 x64 8GB RAM
VMware Workstation Player 12
Guest:
CentOS 7 x64 25GB HD 4GB RAM 2 cores
PostgreSQL 9.6
Documentum 16.4
VM Creation
Mount the CentOS 7 DVD image, boot the machine and follow the steps. You can choose to let EasyInstall do the work for you. I used minimal package install to save resources, named the machine vm-dctm16.4, configured the network and set the root password as well as a “dmadmin” user.
OS Configuration
- Install required packages:
[dmadmin@vm-dctm164 ~]$ sudo yum install bash-completion kernel-devel rng-tools.x86_64
[dmadmin@vm-dctm164 ~]$ sudo yum install bash-completion kernel-devel rng-tools.x86_64 policycoreutils policycoreutils-python selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans expect tcl
[dmadmin@vm-dctm164 ~]$ sudo yum group install X\ Window\ System “Development Tools”
[root@vm-dctm164 vmtools]# yum install open-vm-tools.x86_64
- Stop and disable the firewalld service:
[dmadmin@vm-dctm164 ~]$ sudo systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[dmadmin@vm-dctm164 ~]$ sudo systemctl stop firewalld
- Configure the entropy and allow http connections through selinux:
[dmadmin@vm-dctm164 ~]$ sudo /sbin/rngd -b -r /dev/urandom -p /dev/random
[dmadmin@vm-dctm164 ~]$ sudo setsebool -P httpd_can_network_connect_db 1
PostgreSQL Configuration
- Install required packages:
[dmadmin@vm-dctm164 ~]$ sudo yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7.4-x86_64/pgdg-centos96-9.6-3.noarch.rpm
[dmadmin@vm-dctm164 ~]$ sudo yum install postgresql96-server postgresql96-contrib
- Init the DB:
[dmadmin@vm-dctm164 ~]$ sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
- Enable and start the PostgreSQL service:
[dmadmin@vm-dctm164 ~]$ sudo systemctl enable postgresql-9.6
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-9.6.service to /usr/lib/systemd/system/postgresql-9.6.service.
[dmadmin@vm-dctm164 ~]$ sudo systemctl start postgresql-9.6
- Configure the postgres user:
[dmadmin@vm-dctm164 ~]$ su – root
[root@vm-dctm164 ~]# su – postgres
-bash-4.2$ psql
postgres=# \password postgres
postgres=# \q
-bash-4.2$ exit
logout
- Configure PostgreSQL:
[root@vm-dctm164 ~]# vi /var/lib/pgsql/9.6/data/postgresql.conf
listen_addresses = ‘*’
port = 5432[root@vm-dctm164 ~]# vi /var/lib/pgsql/9.6/data/pg_hba.conf
host all all 127.0.0.1/32 md5
host all all ::/128 md5
host all all vm-dctm164 md5
- Restart PostgreSQL service to apply the changes:
[dmadmin@vm-dctm164 /]$ sudo systemctl restart postgresql-9.6
phpPgAdmin Configuration
- Install required packages:
[dmadmin@vm-dctm164 /]$ sudo yum install phpPgAdmin httpd
- Configure phpPgAdmin:
[dmadmin@vm-dctm164 /]$ sudo vi /etc/httpd/conf.d/phpPgAdmin.conf
# Apache 2.4
Require all granted
#Require host example.com# Apache 2.2
Order deny,allow
Allow from all
# Allow from 127.0.0.1
# Allow from ::1
# Allow from .example.com[dmadmin@vm-dctm164 /]$ sudo vi /etc/phpPgAdmin/config.inc.php
$conf[‘servers’][0][‘host’] = ‘’;
$conf[‘extra_login_security’] = false;
$conf[‘owned_only’] = true;
- Restart httpd service to apply the changes:
[dmadmin@vm-dctm164 /]$ sudo systemctl restart httpd
Now you should be able to login to the console from http://vm-dctm164/phpPgAdmin/
ODBC Configuration
- Install required packages:
sudo yum install postgresql96-odbc.x86_64 unixODBC.x86_64
- Configure .ini files:
[dmadmin@vm-dctm164 /]$ sudo vi /etc/odbcinst.ini
[PostgreSQL]
Description = ODBC for PostgreSQL
#Driver = /usr/lib/psqlodbcw.so
#Setup = /usr/lib/libodbcpsqlS.so
#Driver64 = /usr/lib64/psqlodbcw.so
#Setup64 = /usr/lib64/libodbcpsqlS.so
Driver = /usr/pgsql-9.6/lib/psqlodbcw.so
Driver64 = /usr/pgsql-9.6/lib/psqlodbcw.so
Setup64 = /usr/lib64/libodbcpsqlS.so
FileUsage = 1[dmadmin@vm-dctm164 /]$ sudo vi /etc/odbc.ini
[MyPostgres]
Description=PostgreSQL
Driver=PostgreSQL
Database=postgres
Servername=vm-dctm164
UserName=postgres
Password=dmadmin
Port=5432
Protocol=7.4
ReadOnly=No
RowVersioning=No
ShowSystemTables=No
ShowOidColumn=No
FakeOidIndex=No
UpdateableCursors=Yes
DEBUG=Yes
- Test the connection:
[dmadmin@vm-dctm164 /]$ isql -v MyPostgres
+—————————————+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+—————————————+
SQL> quit
Documentum server
- Create folders:
[dmadmin@vm-dctm164 opt]$ sudo mkdir documentum
[dmadmin@vm-dctm164 opt]$ sudo chown dmadmin.dmadmin documentum
[dmadmin@vm-dctm164 opt]$ mkdir documentum/product
[dmadmin@vm-dctm164 opt]$ mkdir documentum/product/16.4
[dmadmin@vm-dctm164 opt]$ mkdir documentum/shared
- Set up environment variables:
[dmadmin@vm-dctm164 ~]$ vi ~/.bash_profile
DOCUMENTUM=/opt/documentum
export DOCUMENTUMDM_HOME=$DOCUMENTUM/product/16.4
export DM_HOMEPOSTGRESQL_HOME=/usr/pgsql-9.6
export POSTGRESQL_HOMEPATH=$PATH:$DM_HOME/bin:$POSTGRESQL_HOME/bin:$HOME/.local/bin:$HOME/bin
export PATHLC_ALL=C
export LC_ALLLD_LIBRARY_PATH=$POSTGRESQL_HOME/lib:$DM_HOME/bin:$DOCUMENTUM/java64/JAVA_LINK/jre/lib/amd64/server:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
- Reserve ports for services:
[dmadmin@vm-dctm164 opt]$ sudo vi /etc/services
dctm164 50000/tcp # dctm 16.4 repo
dctm164_s 50001/tcp # dctm 16.4 repo
- Create symbolic link for later (configuration program):
[dmadmin@vm-dctm164 opt]$ sudo ln -s /usr/lib64/libsasl2.so.3.0.0 /usr/lib64/libsasl2.so.2
- Configure limits.conf:
[dmadmin@vm-dctm164 opt]$ sudo vi /etc/security/limits.conf
dmadmin – core -1
- Run the installer:
[dmadmin@vm-dctm164 cs]$ tar xvf content_server_16.4_linux64_postgres.tar
[dmadmin@vm-dctm164 cs]$ chmod 777 serverSetup.bin
[dmadmin@vm-dctm164 cs]$ ./serverSetup.bin
Docbroker and repository
At this point, you can choose to run dmdbtest to make sure everything works. This versions seems to work with the OOTB libs from postgres and you don’t have to get the unstripped libs from the docker release.
- Create the tablespace file for the repository (dctm164):
[dmadmin@vm-dctm164 cs]$ su –
[root@vm-dctm164 ~]# su – postgres
-bash-4.2$ mkdir /var/lib/pgsql/9.6/data/db_dctm164_dat.dat
Documentum Administrator
Nothing special about this, same procedure as always. I’ve used the latest tomcat 8 to deploy, as there are no requirements/supported versions matrix:
Some notes:
- Documentation seems more “precise”, specially regarding the Linux install. However, there are still copy/paste sections from previous releases.
- Only new (visible) feature in DA is the integration with iHub
- Firefox extension doesn’t work in Firefox 60
Hey! In previous post you promised that root access is not required anymore “Removal of sticky bit”. Why does installer ask to run dm_root_task_cs16.4?
LikeLike
I just copied the release notes 😛 I haven’t run the dm_root_task, that’s for sure, and everythign seems to be working fine. Probably someone forgot to update the text in that screen
LikeLike
Everything is weird there: UNIX filesystem permissions have three extra access modes:
– SUID – defines that UNIX process inherits owner’s privileges
– SGID – defines that UNIX process inherits group’s privileges
– Sticky Bit – defines that nobody except root and file’s owner is able to delete files from public directory (in UNIX deleting file is actually directory operation)
Below is what we had in D72:
grep -e “chmod\|chown” /u01/documentum/cs/dba/dm_root_task | grep -v echo
chown root /u01/documentum/cs/dba/dm_check_password
chmod 6750 /u01/documentum/cs/dba/dm_check_password
chown root /u01/documentum/cs/dba/dm_secure_writer
chmod 6750 /u01/documentum/cs/dba/dm_secure_writer
chown root /u01/documentum/cs/dba/dm_assume_user
chmod 6750 /u01/documentum/cs/dba/dm_assume_user
chown root /u01/documentum/cs/dba/dm_change_password.local
chmod 6750 /u01/documentum/cs/dba/dm_change_password.local
chown root /u01/documentum/cs/dba/dm_change_password.yp
chmod 6750 /u01/documentum/cs/dba/dm_change_password.yp
chown root /u01/documentum/cs/product/7.2/install/admin/dmliswap
chmod 6750 /u01/documentum/cs/product/7.2/install/admin/dmliswap
So, it should be clear that Documentum was using SUID/SGID capabilities but not Sticky Bit. :LOL
LikeLike
Same grep in 16.4:
chown root /opt/documentum/dba/dm_secure_writer_cs16.4
chmod 6750 /opt/documentum/dba/dm_secure_writer_cs16.4
chown root /opt/documentum/product/16.4/install/admin/dmliswap
chmod 6750 /opt/documentum/product/16.4/install/admin/dmliswap
LikeLike
[…] Opentext Documentum 16.4 PostgreSQL Developer Edition […]
LikeLike
[…] been trying to set it up in a test environment just to check it out but I’ve been having some […]
LikeLike
I set up Documentum in a virtual maschine with this instructions. However I am not able to connect from my host system to it. I think because it says me that port 1489 refuses the connection. However the firewall is disabled and I also tried to specificly allow traffic through this port. But still refused. Port 80 for example works fine. How do I solve this problem?
LikeLike
Please find Documentum 16.4 installation windows with MS SQL Server steps https://youtu.be/9_f-58hkKVo
LikeLike
[…] used the VM created on the Opentext Documentum 16.4 PostgreSQL Developer Edition, but you can use any VM with […]
LikeLike