스크립트를 통해 Guacamole을 설치하려고 합니다. /etc/guacamole에 저장된 파일을 tomcat8 디렉터리에 연결해야 하는 경우 셸에서 다음 줄을 실행하면 문제가 없습니다.
ln -s /etc/guacamole/ /usr/share/tomcat8/.guacamole
결과 :
/usr/share/tomcat8/.guacamole/[files]
그러나 스크립트를 통해 동일한 명령을 실행하면 결과는 다음과 같습니다.
/usr/share/tomcat8/.guacamole/guacamole/[files]
이로 인해 오류가 발생합니다.
전체 스크립트는 다음과 같습니다.
#!/bin/bash
apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y
apt-get install -y apt-transport-https
apt-get install -y libcairo2-dev libjpeg62-turbo-dev libpng12-dev libossp-uuid-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev tomcat8 apache2 php5 libapache2-mod-php5 php5-curl git make gcc
a2dissite 000-default
rm -r /var/www/*
a2enmod php5
a2enmod proxy_http ssl
php5enmod curl
wget http://downloads.sourceforge.net/project/guacamole/current/source/guacamole-server-0.9.9.tar.gz
tar -xzf guacamole-server-0.9.9.tar.gz
cd guacamole-server-0.9.9
./configure --with-init-dir=/etc/init.d
make
make install
cd ..
rm -r guacamole-server-0.9.9
wget http://downloads.sourceforge.net/project/guacamole/current/binary/guacamole-0.9.9.war
mv guacamole-0.9.9.war /var/lib/tomcat8/webapps/guacamole.war
update-rc.d guacd defaults
ldconfig
cd
mkdir /usr/share/tomcat8/.guacamole
mkdir /etc/guacamole
cp guacamole.properties /etc/guacamole/
cp user-mapping.xml /etc/guacamole/
cp guacamole.apache.conf /etc/apache2/sites-available/
a2ensite guacamole.apache.conf
ln -s /etc/guacamole/ /usr/share/tomcat8/.guacamole
/etc/init.d/guacd start
/etc/init.d/tomcat8 restart
/etc/init.d/apache2 restart
답변1
링크가 이미 존재하는 경우 해당 링크를 가리키는 디렉터리 내에 새 링크가 생성됩니다. 이상적으로는 링크를 생성하기 전에 링크를 삭제/이동해야 합니다.
/bin/rm /usr/share/tomcat8/.guacamole
ln -s /etc/guacamole/ /usr/share/tomcat8/.guacamole
편집: 스크립트에서 이 디렉터리를 생성하신 것으로 확인됩니다. 해당 줄을 삭제하면 됩니다. 그러면 작동할 것입니다. 스크립트에서 다음 줄을 제거하십시오.
mkdir /usr/share/tomcat8/.guacamole