Creating the Initialization Script
In this step, you will create an initialization script that enables the application to work inside a Custom Partition. In a regular installation, the files of the Zoom application would be located in /usr
, /opt
and so on, whereas in the Custom Partition, they are located under /custom/zoom/usr
, /custom/zoom/opt
and so on. The initialization script will fix this by creating symbolic links so that for example /custom/zoom/usr/lib/library.so
will appear to be in /usr/lib/library.so
, where Zoom expects it.
On your workstation, go to the directory where the
zoom
directory is located.Open your text editor of choice and enter the following script:
BASH#!/bin/sh ACTION="custompart-zoom_${1}" # mount point path MP=$(get custom_partition.mountpoint) # custom partition path CP="${MP}/zoom" # wfs for persistent login and history WFS="/wfs/user/.zoom/data" # .zoom directory ZOOM="/userhome/.zoom/" # output to systemlog with ID amd tag LOGGER="logger -it ${ACTION}" echo "Starting" | $LOGGER case "$1" in init) # Linking files and folders on proper path find ${CP} | while read LINE do DEST=$(echo -n "${LINE}" | sed -e "s|${CP}||g") if [ ! -z "${DEST}" -a ! -e "${DEST}" ]; then # Remove the last slash, if it is a dir [ -d $LINE ] && DEST=$(echo "${DEST}" | sed -e "s/\/$//g") | $LOGGER if [ ! -z "${DEST}" ]; then ln -sv "${LINE}" "${DEST}" | $LOGGER fi fi done # Linking /userhome/.zoom/data to /wfs/user/.zoom/data for some basic persistency mkdir -p ${WFS} chown -R user:users ${WFS} mkdir -p ${ZOOM}/data chown -R user:users ${ZOOM}/data mkdir -p ${ZOOM}/data/VirtualBkgnd_Custom chown -R user:users ${ZOOM}/data/VirtualBkgnd_Custom mkdir -p ${ZOOM}/data/VirtualBkgnd_Default chown -R user:users ${ZOOM}/data/VirtualBkgnd_Default ln -sv ${WFS}/zoomus.db ${ZOOM}/data/zoomus.db | $LOGGER ln -sv ${WFS}/zoommeeting.db ${ZOOM}/data/zoommeeting.db | $LOGGER ln -sv ${WFS}/VirtualBkgnd_Custom ${ZOOM}/data/ | $LOGGER ln -sv ${WFS}/VirtualBkgnd_Default ${ZOOM}/data/ | $LOGGER chown user:users /wfs/user/.zoom ln -sv /wfs/user/.zoom/zoomus.conf /userhome/.config/zoomus.conf | $LOGGER # remove all com.zoom.ipc* files from /wfs/user/.zoom/data - might cause issues when updating zoom rm ${WFS}/com.zoom.ipc* # add /opt/zoom to ld_library echo "${CP}/opt/zoom" > /etc/ld.so.conf.d/zoom.conf ldconfig ${MP}/zoom_postinst | $LOGGER ;; stop) # unlink linked files find ${CP} | while read LINE do DEST=$(echo -n "${LINE}" | sed -e "s|${CP}||g") unlink $DEST | $LOGGER done # remove zoom.conf because it is not needed anymore rm /etc/ld.so.conf.d/zoom.conf ;; esac echo "Finished" | $LOGGER exit 0
The code line
echo "${CP}/opt/zoom" > /etc/ld.so.conf.d/zoom.conf
tells the Zoom application via the configuration filezoom.conf
to search for libraries in/custom/opt/zoom
. This is expected by the Zoom application.Save the file as
custompart-zoom