Java開発用にUNIXベースのVirtualBoxゲストを設定するにはどうすればよいですか?私は既存の開発環境(私はWindowsを走らせる)をいくつか保ち、VirtualBoxを使ってそれを統合したいと考えています。これは可能ですか?Linux(JDK、Maven、IDE、...)にJava開発環境をインストールする方法VirtualBox
答えて
Linux上の開発環境だけでなく、VirtualBox上で実行されるシステムにも柔軟に対応できるようにするには、しばらく時間がかかりました。
私は、Windows 7 Ultimateエディションで実行されているVirtualBoxで2つのシステムを実行すると、JavaベースのWeb開発者としてのニーズに最適なソリューションを提供することがわかりました。
私のホストシステム(Windows 7 Ultimate)から始めて、Photoshop、MS Office、MSSQLなどのツールに加えて、独自のJDKをOracleからインストールできる独自の環境を提供します。Windows 7の究極のバージョンXPモードマシンをセットアップしてIE6、IE7、IE8をブラウザの範囲に追加してください(各レガシーInternet Explorerに新しいマシンが必要です)。私はWindows上でSafariをテストすることもできますが、私の知識ではLinuxはテストできません。私がJava(IDEやMaven、サーバー)に関連して使っている他のツールのほとんどは、特定の場所にアンパックするか、インストーラを実行するだけです。 1)私の "%USERPROFILE%"(home)ディレクトリにすべてを保持& * 2) *私のIDEがMavenをサポートしていることを確認してください。
アイデアは、ホストとゲストを調和させることです。私は下のビデオで実証するので、2つのシステムはお互いに恩恵を受けることができます。我々は、ゲストシステムのリポジトリとして使用するために、Windowsにtortoise SVNクライアントを持つSVNリポジトリを設定することができます。明らかにVirtualBoxのゲストに適切なSVNクライアントが必要な場合は、それらをインストールします。しかし、ゲストのIDEは、これらのWindowsで作成されたリポジトリを使用することができます。あなたはフォルダを共有し、ゲストのSVNクライアントを使ってSubversionリポジトリにすることで、別の方法に行くこともできます。
私たちのゲストシステム(Linux)では、Windowsからいくつかのbloatwareを削除できます。 FileZilla &パテのようなものはもう必要ありません。私たちのゲストには、ftpとsshが組み込まれた優れた端末が付属しています。また、Linux開発を構築/再構築し、ニーズをダウンロードするためのbashスクリプトを作成することもできます。 MavenをWindowsの共有ディレクトリにダウンロードして解凍するためのbashスクリプトを作成することもできます。
Linuxはまた、Konquerorのようなテストが必要な追加のブラウザをWeb開発者に提供します。
もっと重要なことに、私たちのLinuxシステムは、私たちのホストとまったく異なる環境として使用できます。 Open JDKのバージョンを設定し、それに応じてMavenのインストールを設定することができます。これは、JREがホスト/ゲストから抽象化するので、ホストとゲストの間で共有することもできます。
Oracle JDKをゲストMaven NetBeans & IDEAにダウンロードしてインストールするスクリプトを作成しました。このスクリプトはまた、 '.m2'、 'maven'、 'SVN'、 'NetBeansProjects'、 'IDEAProjects'のようないくつかのデフォルト値をゲストからゲストにマウントするために、 'boot'コマンドを書き込むファイルを要求します。ただし、VirtualBoxにGuest Additionsを設定し、これらのディレクトリを共有するように設定している場合に限ります。
起動コマンドの書き込みに使用できるシステムスクリプトファイルの入力を求められます。私はLinux上でこれを普遍的な場所にしたいと思っていますが、OpenSuseは一緒に遊んでいないので、私が提供したデフォルト(/etc/rc.d/boot.local)を使うことはできません。この機能が気に入らなければ、スクリプトは '/ usr/local/bin'の場所に 'on-the-fly'スクリプトを作成します。
最後に、ゲストの共有フォルダを使用しているため(すべてが正しく設定されている場合)、ホストシステムからプロジェクト、Maven、SVNを共有しているため、ゲストを削除することは安全です。まだそこにいるはずです。
は**このvid
#!/bin/bash
#Author: Yucca Nel http://thejarbar.org
#Will restart system
#Modify these variables as needed...
tempWork=/tmp/work
defaultStartScript=/etc/init.d/rc.local
locBin=/usr/local/bin
javaUsrLib=/usr/lib/jvm
defaultMaven=3.0.4
defaultNetBeansVer=7.1
mavenUsrLib=/usr/lib/maven
defaultIDEA=11.0.1
sudo mkdir -p $javaUsrLib
mkdir -p $tempWork
sudo mkdir -p $mavenUsrLib
mkdir -p $HOME/.m2
mkdir -p $HOME/SVN
cd $tempWork
#Update this line to reflect newer versions of JDK...
wget http://download.oracle.com/otn-pub/java/jdk/7u2-b13/jdk-7u2-linux-i586.tar.gz
#Extract the download
tar -zxvf $tempWork/*
rm -rf $tempWork/*.gz
#Move it to where it can be found...
sudo mv -f $tempWork/* $javaUsrLib/
export JAVA_HOME="$javaUsrLib/jdk1.7.0_02"
sudo ln -f -s $javaUsrLib/jdk1*/bin/* /usr/bin/
rm -rf $tempWork/*
#Update this line to reflect newer versions of JDK...
if ! grep "JAVA_HOME=$javaUsrLib/jdk1.7.0_02" /etc/environment
then
echo "JAVA_HOME=$javaUsrLib/jdk1.7.0_02" | sudo tee -a /etc/environment
fi
source /etc/environment
read -p "Please [Enter] full path name of your local startup script ($defaultStartScript is the default). Please
make sure on this before providing a value by consulting documentation for your system:" locStartScript
locStartScript=${locStartScript:-$defaultStartScript}
read -p "Please [Enter] Maven Version ($defaultMaven is default):" mavenVersion
mavenVersion=${mavenVersion:-$defaultMaven}
read -p "Please [Enter] NetBeans Version ($defaultNetBeansVer is default):" netbeansVersion
netbeansVersion=${netbeansVersion:-$defaultNetBeansVer}
read -p "Please [Enter] IDEA Version ($defaultIDEA is default):" ideaVersion
ideaVersion=${ideaVersion:-$defaultIDEA}
if [ ! -f $locStartScript ]
then
echo "The file you provided could not be found. Remember to include the full path and try again. Exiting in 7 secs..."
sleep 7
exit 1
fi
wget http://mirrors.powertech.no/www.apache.org/dist//maven/binaries/apache-maven-$mavenVersion-bin.tar.gz
tar -zxvf $tempWork/*
#Move it to a more logical location
sudo mv -f $tempWork/apache-maven-$mavenVersion $mavenUsrLib/
sudo ln -f -s $mavenUsrLib/apache-maven-$mavenVersion/bin/* /usr/bin/
#If you have Maven on Windows and use VirtualBox, you can set up the maven to be a virtualbox shared folder.
#The name must match the name used below (ignore if irrelevant to you).
if [ -f /sbin/mount.vboxsf ]
then
sudo /sbin/umount $HOME/.m2
sudo /sbin/umount $mavenUsrLib
sudo /sbin/mount.vboxsf .m2 $HOME/.m2
sudo /sbin/mount.vboxsf maven $mavenUsrLib
fi
if mountpoint -q $HOME/.m2 && mountpoint -q $mavenUsrLib
then
tar -zxvf $tempWork/*
sudo mv -f $tempWork/apache-maven-$mavenVersion $mavenUsrLib/
#Add it to the start script to automate process...
if ! grep "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" $locStartScript
then
echo "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" | sudo tee -a $locStartScript
fi
if ! grep "sudo /sbin/mount.vboxsf maven $mavenUsrLib" $locStartScript
then
echo "sudo /sbin/mount.vboxsf maven $mavenUsrLib" | sudo tee -a $locStartScript
fi
sudo chmod +x $locStartScript
#Create a mount and unmount script file...
rm -rf $tempWork/*
echo '#!/bin/bash' > $tempWork/maven-mount.sh
echo "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" >> $tempWork/maven-mount.sh
echo "sudo /sbin/mount.vboxsf maven $mavenUsrLib" >> $tempWork/maven-mount.sh
echo "echo 'mounted maven'" >> $tempWork/maven-mount.sh
echo "exit 0" >> $tempWork/maven-mount.sh
echo '#!/bin/bash' > $tempWork/maven-umount.sh
echo "sudo umount $HOME/.m2" >> $tempWork/netbeans-umount.sh
echo "sudo umount $mavenUsrLib" >> $tempWork/netbeans-umount.sh
echo "echo 'unmounted maven'" >> $tempWork/maven-mount.sh
echo 'exit 0' >> $tempWork/maven-umount.sh
#Script for mounting ALL VirtualBox shared solders....
#If there isn't one create one...
if [ ! -f $locBin/mount-all-from-host.sh ]
then
echo '#!/bin/bash' > /mount-all-from-host.sh
echo "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" | sudo tee -a $tempWork/mount-all-from-host.sh
echo "sudo /sbin/mount.vboxsf maven $mavenUsrLib" | sudo tee -a $tempWork/mount-all-from-host.sh
echo "exit 0" | sudo tee -a $tempWork/mount-all-from-host.sh
#Otherwise if there is one, but no mount, add one...
elif ! grep "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" $locBin/mount-all-from-host.sh
then
sudo sed -ie '$d' $locBin/mount-all-from-host.sh
echo "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" | sudo tee -a $locBin/mount-all-from-host.sh
echo "exit 0" | sudo tee -a $locBin/mount-all-from-host.sh
elif ! grep "sudo /sbin/mount.vboxsf maven $mavenUsrLib" $locBin/mount-all-from-host.sh
then
sudo sed -ie '$d' $locBin/mount-all-from-host.sh
echo "sudo /sbin/mount.vboxsf maven $mavenUsrLib" | sudo tee -a $locBin/mount-all-from-host.sh
echo "exit 0" | sudo tee -a $locBin/mount-all-from-host.sh
fi
#Script for unmounting ALL VirtualBox shared folders...
#If there isn't one create one...
if [ ! -f $locBin/umount-all-from-host.sh ]
then
echo '#!/bin/bash' > $tempWork/umount-all-from-host.sh
echo "sudo umount -a -t vboxsf" | sudo tee -a $tempWork/umount-all-from-host.sh
echo "echo 'unmounted all VirtualBox shared folders'" | sudo tee -a $tempWork/umount-all-from-host.sh
echo "exit 0" | sudo tee -a $tempWork/umount-all-from-host.sh
fi
chmod +x $tempWork/*
sudo mv -f $tempWork/* $locBin/
rm -rf $tempWork/*
fi
sudo ln -f -s $mavenUsrLib/apache-maven-$mavenVersion/bin/* /usr/bin/
rm -rf $tempWork/*
wget http://dlc.sun.com.edgesuite.net/netbeans/$netbeansVersion/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-7.1/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/NetBeansProjects
sudo /sbin/mount.vboxsf NetBeansProjects $HOME/NetBeansProjects
fi
if mountpoint -q $HOME/NetBeansProjects
then
#Add it to the start script to automate process...
if ! grep "sudo /sbin/mount.vboxsf NetBeansProjects $HOME/NetBeansProjects" $locStartScript
then
echo "sudo /sbin/mount.vboxsf NetBeansProjects $HOME/NetBeansProjects" | sudo tee -a $locStartScript
fi
chmod +x $locStartScript
#Create a mount and unmount script file...
rm -rf $tempWork/*
echo '#!/bin/bash' > $tempWork/netbeans-mount.sh
echo "sudo /sbin/mount.vboxsf NetBeansProjects $HOME/NetBeansProjects" >> $tempWork/netbeans-mount.sh
echo "mounted NetBeansProjects" >> $tempWork/netbeans-mount.sh
echo "exit 0" >> $tempWork/netbeans-mount.sh
echo '#!/bin/bash' > /netbeans-umount.sh
echo "sudo umount $HOME/NetBeansProjects" >> $tempWork/netbeans-umount.sh
echo "unmounted NetBeansProjects" >> $tempWork/netbeans-mount.sh
echo 'exit 0' >> $tempWork/netbeans-umount.sh
#Script for mounting ALL VirtualBox shared solders....
#If there isn't one create one...
if [ ! -f $locBin/mount-all-from-host.sh ]
then
echo '#!/bin/bash' > $tempWork/mount-all-from-host.sh
echo "sudo /sbin/mount.vboxsf NetBeansProjects $HOME/NetBeansProjects" | sudo tee -a $tempWork/mount-all-from-host.sh
echo "exit 0" | sudo tee -a $tempWork/mount-all-from-host.sh
#Otherwise if there is one, but no mount, add one...
elif ! grep "sudo /sbin/mount.vboxsf NetBeansProjects" $locBin/mount-all-from-host.sh
then
sudo sed -ie '$d' $locBin/mount-all-from-host.sh
echo "sudo /sbin/mount.vboxsf NetBeansProjects $HOME/NetBeansProjects" | sudo tee -a $locBin/mount-all-from-host.sh
echo "exit 0" | sudo tee -a $locBin/mount-all-from-host.sh
fi
#Script for unmounting ALL VirtualBox shared folders...
#If there isn't one create one...
if [ ! -f $locBin/umount-all-from-host.sh ]
then
echo '#!/bin/bash' > $tempWork/umount-all-from-host.sh
echo "sudo umount -a -t vboxsf" | sudo tee -a $tempWork/umount-all-from-host.sh
echo "echo 'unmounted all VirtualBox shared folders'" | sudo tee -a $tempWork/umount-all-from-host.sh
echo "exit 0" | sudo tee -a $tempWork/umount-all-from-host.sh
fi
chmod +x $tempWork/*
sudo mv -f $tempWork/* $locBin/
rm -rf$tempWork/*
fi
wget http://download-ln.jetbrains.com/idea/ideaIC-$ideaVersion.tar.gz;
tar -zxvf $tempWork/*;
#Move it to a better location...
mv -f $tempWork/idea-IC-* $HOME/;
rm -rf $tempWork/*
sudo ln -f -s $HOME/idea-*/bin/* /usr/bin/;
#If you use VirtualBox , you can share your projects between Host and guest. Name of shared
#folder must match 'IdeaProjects'
mkdir -p $HOME/IdeaProjects
if [ -f /sbin/mount.vboxsf ]
then
sudo /sbin/umount $HOME/IdeaProjects
sudo /sbin/mount.vboxsf IdeaProjects $HOME/IdeaProjects
fi
if mountpoint -q $HOME/IdeaProjects
then
#Add it to the start script to automate process...
if ! grep "sudo /sbin/mount.vboxsf IdeaProjects $HOME/IdeaProjects" $locStartScript
then
echo "sudo /sbin/mount.vboxsf IdeaProjects $HOME/IdeaProjects" | sudo tee -a $locStartScript
fi
chmod +x $locStartScript
#Create a mount and unmount script file...
rm -rf $tempWork/*
echo '#!/bin/bash' > $tempWork/idea-mount.sh
echo "sudo /sbin/mount.vboxsf IdeaProjects $HOME/IdeaProjects" >> /idea-mount.sh
echo "echo 'mounted IdeaProjects'" >> $tempWork/idea-mount.sh
echo "exit 0" >> $tempWork/idea-mount.sh
echo '#!/bin/bash' > $tempWork/idea-umount.sh
echo "sudo umount $HOME/IdeaProjects" >> $tempWork/idea-umount.sh
echo "echo 'unmounted IdeaProjects'" >> $tempWork/idea-mount.sh
echo 'exit 0' >> $tempWork/idea-umount.sh
#Script for mounting ALL VirtualBox shared solders....
#If there isn't one create one...
if [ ! -f $locBin/mount-all-from-host.sh ]
then
echo '#!/bin/bash' > $tempWork/mount-all-from-host.sh
echo "sudo /sbin/mount.vboxsf IdeaProjects $HOME/IdeaProjects" | sudo tee -a $tempWork/mount-all-from-host.sh
echo "exit 0" | sudo tee -a $tempWork/mount-all-from-host.sh
#Otherwise if there is one, but no mount, add one...
elif ! grep "sudo /sbin/mount.vboxsf IdeaProjects" $locBin/mount-all-from-host.sh
then
sudo sed -ie '$d' $locBin/mount-all-from-host.sh
echo "sudo /sbin/mount.vboxsf IdeaProjects $HOME/IdeaProjects" | sudo tee -a $locBin/mount-all-from-host.sh
echo "exit 0" | sudo tee -a $locBin/mount-all-from-host.sh
fi
#Script for unmounting ALL VirtualBox shared folders...
#If there isn't one create one...
if [ ! -f $locBin/umount-all-from-host.sh ]
then
echo '#!/bin/bash' > $tempWork/umount-all-from-host.sh
echo "sudo umount -a -t vboxsf" | sudo tee -a $tempWork/umount-all-from-host.sh
echo "echo 'unmounted all VirtualBox shared folders'" | sudo tee -a $tempWork/umount-all-from-host.sh
echo "exit 0" | sudo tee -a $tempWork/umount-all-from-host.sh
fi
chmod +x $tempWork/*
sudo mv -f $tempWork/* $locBin/
rm -rf $tempWork/*
fi
if [ -f /sbin/mount.vboxsf ]
then
sudo /sbin/umount $HOME/SVN
sudo /sbin/mount.vboxsf SVN $HOME/SVN
fi
if mountpoint -q $HOME/SVN
then
#Add it to the start script to automate process...
if ! grep "sudo /sbin/mount.vboxsf SVN $HOME/SVN" $locStartScript
then
echo "sudo /sbin/mount.vboxsf SVN $HOME/SVN" | sudo tee -a $locStartScript
fi
chmod +x $locStartScript
#Create a mount and unmount script file...
rm -rf $tempWork/*
echo '#!/bin/bash' > $tempWork/svn-mount.sh
echo "sudo /sbin/mount.vboxsf SVN $HOME/SVN" >> /svn-mount.sh
echo "echo 'mounted SVN'" >> $tempWork/svn-mount.sh
echo "exit 0" >> $tempWork/svn-mount.sh
echo '#!/bin/bash' > $tempWork/svn-umount.sh
echo "sudo umount $HOME/SVN" >> $tempWork/svn-umount.sh
echo "echo 'unmounted SVN'" >> $tempWork/svn-mount.sh
echo 'exit 0' >> $tempWork/svn-umount.sh
#Script for mounting ALL VirtualBox shared solders....
#If there isn't one create one...
if [ ! -f $locBin/mount-all-from-host.sh ]
then
echo '#!/bin/bash' > $tempWork/mount-all-from-host.sh
echo "sudo /sbin/mount.vboxsf SVN $HOME/SVN" | sudo tee -a $tempWork/mount-all-from-host.sh
echo "exit 0" | sudo tee -a $tempWork/mount-all-from-host.sh
#Otherwise if there is one, but no mount, add one...
elif ! grep "sudo /sbin/mount.vboxsf SVN" $locBin/mount-all-from-host.sh
then
sudo sed -ie '$d' $locBin/mount-all-from-host.sh
echo "sudo /sbin/mount.vboxsf SVN $HOME/SVN" | sudo tee -a $locBin/mount-all-from-host.sh
echo "exit 0" | sudo tee -a $locBin/mount-all-from-host.sh
fi
#Script for unmounting ALL VirtualBox shared folders...
#If there isn't one create one...
if [ ! -f $locBin/umount-all-from-host.sh ]
then
echo '#!/bin/bash' > $tempWork/umount-all-from-host.sh
echo "sudo umount -a -t vboxsf" | sudo tee -a $tempWork/umount-all-from-host.sh
echo "echo 'unmounted all VirtualBox shared folders'" | sudo tee -a $tempWork/umount-all-from-host.sh
echo "exit 0" | sudo tee -a $tempWork/umount-all-from-host.sh
fi
chmod +x $tempWork/*
sudo mv -f $tempWork/* $locBin/
rm -rf $tempWork/*
fi
sudo rm -rf $tempWork
sudo /sbin/reboot
exit 0
+1 VBoxのために、それは非常に良い性能を持っています。一般的に、 'sudo mount -t vboxsf/hostFolder/guestFolder'経由でコンソールを使ってsharedfoldersを管理しています。サーバポートをホストと共有します。また、私はVBOXを開発のためだけでなく、一般的なGoogle検索ページを訪問するために使用しているので、私はスナップショットを使用しています。私のチームの誰かがVBoxに興味があれば、自分のvboxイメージを共有しています。 – HRgiger
- 1. maven pomからlinux環境変数にアクセスする方法は?
- 2. EclipseでJavaリモート開発環境を設定する方法
- 3. linuxのデスクトップ環境の開発
- 4. haskell開発環境用ツール? (Linux)の
- 5. 開発環境Java 6、Maven 2.x、Eclipse 3.4.x、JBoss 5、JBoss Seam
- 6. Docker - 開発環境用のnpmインストール
- 7. Linuxにjdkをインストールする
- 8. マルチサービスWebアプリケーション(Linux上)のドッカー開発環境を自動起動する方法
- 9. テンソルフロー開発環境の設定方法
- 10. 実稼働環境に開発ツールをインストールする
- 11. ローカル開発環境にspeeqe(XMPP/ejabberd)をインストールする
- 12. 既存のWeb開発環境にGit/TortoiseGitをインストールする
- 13. 開発環境用のhttps環境/ SSL証明書をシミュレートする方法は?
- 14. LinuxとWindowsをターゲットとするLinuxで開発環境を設定する
- 15. Java OutOfMemory Linux環境のみ
- 16. オンラインレール開発環境
- 17. ハイブリッド開発環境
- 18. 開発環境(ワードプレス)
- 19. phonegap開発環境
- 20. デザイナーの開発環境用にDjango/Apacheをセットアップする方法
- 21. アセットを開発環境用にのみ要求する方法
- 22. シームレスにプロダクションに移行するApache環境の開発環境
- 23. 複数の開発者Biztalk環境をセットアップする方法は?
- 24. GAE開発 - 開発環境セットアップ(HotSwap)
- 25. bigbluebuttonの開発環境の使い方
- 26. DebianでJava EE開発環境を設定する
- 27. C#またはJava開発環境を提供するWebサイト?
- 28. SharePoint開発環境を設定する
- 29. 開発環境のイニシャライザをスキップする
- 30. 軽量WebLogic開発環境
その非常に興味深い**の記事を参照してください、と私はそれが一部のユーザーのために有用であることが証明できましたが、それは本当にQ&stackoverfowの形式に適合しないと確信しています。私は質問のようにあなたの "質問"をフォーマットして、それにあなた自身の答えを与えることをお勧めします。とにかく、[よくある質問](http://stackoverflow.com/faq)と[自分の質問に答えるための情報]をチェックしてください(http://blog.stackoverflow.com/2011/07/its-ok-あなた自身の質問に答えてください)。 –
@Qspヘッドアップありがとうございました...注目と再フォーマット。 – thejartender
いいえ問題はありません:-) –