Frage

Ich habe hier, was ich für ein sehr nützliches Skript halte, wenn Sie Netbeans für VirtualBox Guest verwenden. Es scheint ein Problem zu geben:

Wenn Sie sich das Skript ansehen, schreibt es in einen Bootskripts, das wiederum Netbeansprojects vom Host -System zum Gast hat. Das funktioniert gut. Ein zusätzliches Skript wird jedoch erstellt und an den lokalen Bin des Benutzers verschoben. Tatsächlich werden zwei Skripte erstellt: 1), damit der Benutzer den montierten Ordner montiert und 2) den montierten Ordner entlasten kann, um Flexibilität zu ermöglichen.

Ich teste die Skripte und alles funktioniert in meinem Ubuntu-Gast, außer dem Skript "netbeans-unmount.sh".

Es wird das Sirektor, das am Start montiert wurde, nicht unmontal und ich habe versucht, die Skriptdatei 'Root' -Zugriff zu geben ...

Irgendwelche Hinweise darauf, ob dies funktioniert und wie? :

#!/bin/bash
#Author: Yucca Nel http://thejarbar.org
#Will restart system
PATH="/sbin:/usr/sbin:/bin:/usr/bin"
export PATH

#Modify these variables as needed...
tempWork=/tmp/work
startupScript=/etc/init.d/rc.local
defaultNetBeansVersion=7.0.1

echo "Provide NetBeans version (7.0.1 is default) then hit [Enter] :"
  read NetBeansVersion

  if [ -z "$NetBeansVersion" ]
    then
    $NetBeansVersion=$defaultNetBeansVersion
  fi

mkdir -p /$tempWork;
cd /$tempWork;

wget http://dlc.sun.com.edgesuite.net/netbeans/7.0.1/final/bundles/netbeans-$NetBeansVersion-ml-javase-linux.sh;
sh $tempWork/*sh;


#Add Netbeans launcher to your PATH. Doing so allows you to run 'netbeans' command from the terminal
#This line will need to be changed if you changed the default install location (IOW Netbeans is not in ~/)
sudo ln -f -s ~/netbeans-$NetBeansVersion/bin/netbeans /usr/bin/;

#If you use VirtualBox , you can share your projects between Host and guest. Name of shared
#folder must match 'NetBeansProjects'
mkdir -p $HOME/NetBeansProjects

if [ -f /sbin/mount.vboxsf ]
then
    sudo /sbin/umount /home/$HOME/NetBeansProjects
    sudo /sbin/mount.vboxsf NetBeansProjects $HOME/NetBeansProjects
fi

if mountpoint -q ~/NetBeansProjects
then
#Add it to the universal start script to automate process...
    sudo sed -ie '$d' $startupScript
    echo "sudo /sbin/mount.vboxsf NetBeansProjects $HOME/NetBeansProjects"| sudo tee -a $startupScript
    echo "exit 0"| sudo tee -a $startupScript
    sudo chmod +x $startupScript

#Create a mount and unmount script file and add it to users local bin
    rm -rf $tempWork/*
    echo '#!/bin/bash' > $tempWork/netbeans-mount.sh
    echo '#!/bin/bash' > $tempWork/netbeans-umount.sh
    echo '#!/bin/bash' > $tempWork/mount-from-host.sh
    echo '#!/bin/bash' > $tempWork/unmount-from-host.sh
    echo "sudo /sbin/mount.vboxsf NetBeansProjects $HOME/NetBeansProjects" >> $tempWork/netbeans-mount.sh
    echo "sudo /sbin/mount.vboxsf NetBeansProjects $HOME/NetBeansProjects" >> $tempWork/mount-from-host.sh
    echo "sudo umount $HOME/NetBeansProjects" >> $tempWork/netbeans-umount.sh
    echo "sudo umount $HOME/NetBeansProjects" >> $tempWork/unmount-from-host.sh
    echo "exit 0" >> $tempWork/unmount-from-host.sh
    echo "exit 0" >> $tempWork/mount-from-host.sh
    echo "exit 0" >> $tempWork/netbeans-mount.sh
    echo "exit 0" >> $tempWork/netbeans-umount.sh

    sudo chmod +x $tempWork/*
    sudo mv -f $tempWork/*.sh /usr/local/bin
    rm -rf $tempWork
fi

#This function is used to cleanly exit with an error code.
function error_exit {
    sleep 7
    exit 1
}
#restart
sudo reboot
exit 0

UPDATE: Handcodiert im Terminal kann auch den Ordner "Netbeans Projects" nicht entschlossen. Ich denke, ich muss fragen, ob es überhaupt möglich ist, diesen Ordner zu entlasten, wenn die Systeminitialisierung den Ordner montiert.

Update2: immer noch festgefahren, aber ich habe einige neue Informationen, nachdem ich nachgeschaut habe etc/mtab. Hier ist was ich sehe:

...
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
NetBeansProjects /home/yucca/NetBeansProjects vboxsf rw 0 0
...

Es ist klar, dass ich viele Male sudo unmount ~/netbeansprojekte laufen muss !!

Zusätzliche Mount -Optionen wie "Flat" funktionieren auch nicht, da es alles entspannt und ich möchte nur, dass mein gezielter Verzeichnis nicht mehr ist.

War es hilfreich?

Lösung 2

Ich habe alle meine Init -Dateien überprüft und festgestellt, dass einige zusätzliche Halterungen hinzugefügt wurden /etc/init.d/rc.local Ich teste jetzt vor der vorhandenen Zeichenfolge, bevor ich so schreibe (als Beispiel):

if ! grep "JAVA_HOME=${javaUsrLib}/jdk1.7.0_01" /etc/environment

dann echo "java_home = $ {javausrlib} /jdk1.7.0_01" | sudo tee -a /etc /Environment fi

Andere Tipps

Sie können alle Aktien mit:

sudo umount -a -t vboxsf 

oder verwenden Sie Fusermount -u

sudo fusermount -u /mnt
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top