Difference between revisions of "Linux installation from source (Ubuntu)"
(28 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | + | Intallation notes to install micro-manager from source on Ubuntu systems. These instructions can also be used without modifications for installations on [http://debian.org Debian systems] (tested on Debian Wheezy and Debian Jessy). | |
− | + | ||
− | + | {{Note|These instructions are for Micro-Manager 1.4 and needs updates for Micro-Manager 2.0 (which uses JDK 8 and has source code on [https://github.com/micro-manager/micro-manager github] rather than in a subversion repository.}} | |
− | + | {{Note|This page has been updated for the build system changes of r13120, based on testing on Ubuntu 12.04 LTS.}} | |
− | [http:// | + | See also: <code>doc/how-to-build.md</code> in the source tree. |
+ | |||
+ | = Preparation = | ||
+ | |||
+ | |||
+ | == Install JDK == | ||
+ | |||
+ | If you are building the Micro-Manager Java GUI, Java 1.6 or 1.7 is recommended[http://imagej.1557.x6.nabble.com/Java-error-when-compiling-a-plugin-tp5004378p5004386.html]. The simplest way is to use OpenJDK: | ||
{{MessageBox|1=Commandline|2=<pre> | {{MessageBox|1=Commandline|2=<pre> | ||
− | + | sudo apt-get install openjdk-6-jdk | |
− | sudo | + | |
− | + | ||
− | + | ||
− | + | ||
</pre>}} | </pre>}} | ||
− | + | (You can also use <code>openjdk-7-jdk</code>.) | |
− | + | == Install ImageJ == | |
− | + | [http://rsb.info.nih.gov/ij/download.html Download the Linux version of ImageJ] from the NIH website. From a terminal, unzip to <code>/usr/local/</code>, and remove the embedded JRE, as we already have one installed. | |
− | < | + | {{MessageBox|1=Commandline|2=<pre> |
− | + | ||
− | + | cd ~/Downloads/ | |
− | + | sudo unzip ij*-linux*.zip -d /usr/local/ | |
− | + | sudo rm -rf /usr/local/ImageJ/jre | |
− | + | sudo chmod a+Xr /usr/local/ImageJ | |
− | + | </pre>}} | |
− | + | ||
− | + | ||
− | </ | + | |
− | + | == Install Build Programs and Libraries == | |
You will need a subversion client to checkout the source code, several libraries, and build tools. Install them with: | You will need a subversion client to checkout the source code, several libraries, and build tools. Install them with: | ||
Line 40: | Line 39: | ||
{{MessageBox|1=Commandline|2=<pre> | {{MessageBox|1=Commandline|2=<pre> | ||
− | sudo apt-get install subversion build-essential automake libtool \ | + | sudo apt-get install subversion build-essential autoconf automake libtool \ |
− | libboost-all-dev zlib1g-dev swig | + | libboost-all-dev zlib1g-dev swig ant |
</pre>}} | </pre>}} | ||
You may also need to install additional packages (for cameras and special hardware). See the full list in [[#Dependencies]] | You may also need to install additional packages (for cameras and special hardware). See the full list in [[#Dependencies]] | ||
− | + | == Fetch Source Repositories == | |
Create a directory for the the subversion repositories, such as <code>~/mm</code>. Besides the source tree, additional binary dependencies are stored in the <code>3rdpartypublic</code> repository. The build scripts in the source tree assume <code>3rdpartypublic</code> is in the same parent folder level: | Create a directory for the the subversion repositories, such as <code>~/mm</code>. Besides the source tree, additional binary dependencies are stored in the <code>3rdpartypublic</code> repository. The build scripts in the source tree assume <code>3rdpartypublic</code> is in the same parent folder level: | ||
{{MessageBox|1=Commandline|2=<pre> | {{MessageBox|1=Commandline|2=<pre> | ||
− | |||
mkdir ~/mm | mkdir ~/mm | ||
cd ~/mm | cd ~/mm | ||
− | svn co https:// | + | svn co https://valelab4.ucsf.edu/svn/micromanager2/trunk/ micro-manager1.4 |
− | svn co https:// | + | svn co https://valelab4.ucsf.edu/svn/3rdpartypublic/ |
</pre>}} | </pre>}} | ||
Line 64: | Line 62: | ||
</pre> | </pre> | ||
− | + | Subversion (svn) will likely complain saying that it cannot verify the https certificate. Typing **t** to temporarily trust the certificate allows to retrieve the repository. | |
− | + | Also, when retrieving large repository (like the 3rdpartypublic/ repository), svn can hung in the middle of the process, with an error message: | |
− | + | <pre> | |
− | + | svn: REPORT de '/svn/3rdpartypublic/!svn/vcc/default': | |
+ | Could not read chunk delimiter: Secure connection truncated (https://valelab4.ucsf.edu) | ||
+ | </pre> | ||
+ | |||
+ | This can be [http://stackoverflow.com/questions/4031845/svn-resuming-aborted-checkout#13789596 solved] by typing: | ||
+ | |||
+ | {{MessageBox|1=Commandline|2= | ||
+ | <pre> | ||
+ | svn cleanup 3rdpartypublic/ | ||
+ | svn update 3rdpartypublic/ # This command might be executed several times | ||
</pre>}} | </pre>}} | ||
− | + | = Building Micro-Manager = | |
+ | |||
+ | == Create the Autotools files == | ||
{{MessageBox|1=Commandline|2=<pre> | {{MessageBox|1=Commandline|2=<pre> | ||
− | + | cd ~/mm/micro-manager1.4 | |
+ | ./autogen.sh | ||
+ | ./configure --enable-imagej-plugin=/usr/local/ImageJ | ||
</pre>}} | </pre>}} | ||
− | == | + | == Download build dependencies == |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
{{MessageBox|1=Commandline|2=<pre> | {{MessageBox|1=Commandline|2=<pre> | ||
− | + | make fetchdeps # Required since SVN r14001-r14016 | |
− | + | ||
− | + | ||
</pre>}} | </pre>}} | ||
− | + | == Compile == | |
{{MessageBox|1=Commandline|2=<pre> | {{MessageBox|1=Commandline|2=<pre> | ||
Line 99: | Line 104: | ||
</pre>}} | </pre>}} | ||
− | + | == Install == | |
{{MessageBox|1=Commandline|2=<pre> | {{MessageBox|1=Commandline|2=<pre> | ||
sudo make install | sudo make install | ||
− | |||
</pre>}} | </pre>}} | ||
− | + | = Post Install = | |
− | == | + | == Editing the startup script == |
− | + | A script named <code>mmimagej</code> will have been installed in <code>/usr/local/ImageJ</code>. You might want to edit its contents to pass extra flags to Java. You may also want to put this script in your <code>PATH</code>. | |
− | + | = Running Micro-Manager = | |
− | + | Start Micro-Manager by typing: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
{{MessageBox|1=Commandline|2=<pre> | {{MessageBox|1=Commandline|2=<pre> | ||
− | + | /usr/local/ImageJ/mmimagej 2>&1 >/dev/null & | |
</pre>}} | </pre>}} | ||
− | + | To view the Core logging in the terminal while Micro-Manager is running, start simply as: | |
− | + | ||
− | + | ||
{{MessageBox|1=Commandline|2=<pre> | {{MessageBox|1=Commandline|2=<pre> | ||
− | + | /usr/local/ImageJ/mmimagej | |
</pre>}} | </pre>}} | ||
− | + | = Appendix = | |
− | + | ||
− | + | ||
− | + | == Dependencies == | |
{| class="wikitable" | {| class="wikitable" | ||
Line 157: | Line 147: | ||
| GNU C++ || <code>build-essential</code> | | GNU C++ || <code>build-essential</code> | ||
|- | |- | ||
− | | GNU Autotools || <code>automake</code> | + | | GNU Autotools || <code>autoconf</code>, <code>automake</code> |
|- | |- | ||
| GNU Libtool || <code>libtool</code> | | GNU Libtool || <code>libtool</code> | ||
Line 167: | Line 157: | ||
| Simplified Wrapper and Interface Library || <code>swig</code> | | Simplified Wrapper and Interface Library || <code>swig</code> | ||
|- | |- | ||
− | | | + | | OpenJDK || <code>openjdk-6-jdk</code> or <code>openjdk-7-jdk</code> |
|- | |- | ||
|colspan="2" style="background: #ddd; border-top: 1px solid gray; padding: 5px; text-align: center"| Optional Dependencies: | |colspan="2" style="background: #ddd; border-top: 1px solid gray; padding: 5px; text-align: center"| Optional Dependencies: | ||
+ | |- | ||
+ | | Python || <code>python-dev</code>, <code>python-numpy-dev</code> | ||
|- | |- | ||
| Firewire Camera Library || <code>libdc1394-*-dev</code> | | Firewire Camera Library || <code>libdc1394-*-dev</code> | ||
|- | |- | ||
| Open Source Computer Vision Library || <code>libopencv-dev</code> | | Open Source Computer Vision Library || <code>libopencv-dev</code> | ||
+ | |- | ||
+ | | GPhoto2 || <code>libgphoto2-2-dev</code> | ||
+ | |- | ||
+ | | FreeImagePlus (used by GPhoto device adapter) || <code>libfreeimage-dev</code> | ||
+ | |- | ||
+ | | libusb 0.1 || <code>libusb-dev</code> | ||
+ | |- | ||
+ | | Andor SDK 2/3 || N/A - request from Andor website | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
{{Programming_Sidebar}} | {{Programming_Sidebar}} |
Latest revision as of 14:08, 12 March 2020
Intallation notes to install micro-manager from source on Ubuntu systems. These instructions can also be used without modifications for installations on Debian systems (tested on Debian Wheezy and Debian Jessy).
See also: doc/how-to-build.md
in the source tree.
Preparation
Install JDK
If you are building the Micro-Manager Java GUI, Java 1.6 or 1.7 is recommended[1]. The simplest way is to use OpenJDK:
sudo apt-get install openjdk-6-jdk
(You can also use openjdk-7-jdk
.)
Install ImageJ
Download the Linux version of ImageJ from the NIH website. From a terminal, unzip to /usr/local/
, and remove the embedded JRE, as we already have one installed.
cd ~/Downloads/ sudo unzip ij*-linux*.zip -d /usr/local/ sudo rm -rf /usr/local/ImageJ/jre sudo chmod a+Xr /usr/local/ImageJ
Install Build Programs and Libraries
You will need a subversion client to checkout the source code, several libraries, and build tools. Install them with:
sudo apt-get install subversion build-essential autoconf automake libtool \ libboost-all-dev zlib1g-dev swig ant
You may also need to install additional packages (for cameras and special hardware). See the full list in #Dependencies
Fetch Source Repositories
Create a directory for the the subversion repositories, such as ~/mm
. Besides the source tree, additional binary dependencies are stored in the 3rdpartypublic
repository. The build scripts in the source tree assume 3rdpartypublic
is in the same parent folder level:
mkdir ~/mm cd ~/mm svn co https://valelab4.ucsf.edu/svn/micromanager2/trunk/ micro-manager1.4 svn co https://valelab4.ucsf.edu/svn/3rdpartypublic/
This creates 2 new folders in the mm
directory:
~/mm/micro-manager1.4 ~/mm/3rdpartypublic
Subversion (svn) will likely complain saying that it cannot verify the https certificate. Typing **t** to temporarily trust the certificate allows to retrieve the repository.
Also, when retrieving large repository (like the 3rdpartypublic/ repository), svn can hung in the middle of the process, with an error message:
svn: REPORT de '/svn/3rdpartypublic/!svn/vcc/default': Could not read chunk delimiter: Secure connection truncated (https://valelab4.ucsf.edu)
This can be solved by typing:
svn cleanup 3rdpartypublic/ svn update 3rdpartypublic/ # This command might be executed several times
Building Micro-Manager
Create the Autotools files
cd ~/mm/micro-manager1.4 ./autogen.sh ./configure --enable-imagej-plugin=/usr/local/ImageJ
Download build dependencies
make fetchdeps # Required since SVN r14001-r14016
Compile
make
Install
sudo make install
Post Install
Editing the startup script
A script named mmimagej
will have been installed in /usr/local/ImageJ
. You might want to edit its contents to pass extra flags to Java. You may also want to put this script in your PATH
.
Running Micro-Manager
Start Micro-Manager by typing:
/usr/local/ImageJ/mmimagej 2>&1 >/dev/null &
To view the Core logging in the terminal while Micro-Manager is running, start simply as:
/usr/local/ImageJ/mmimagej
Appendix
Dependencies
Name | Equivalent Synaptic package name |
---|---|
Required Dependencies: | |
Subversion | subversion
|
GNU C++ | build-essential
|
GNU Autotools | autoconf , automake
|
GNU Libtool | libtool
|
Boost libraries | libboost-all-dev
|
zlib compression library | zlib1g-dev
|
Simplified Wrapper and Interface Library | swig
|
OpenJDK | openjdk-6-jdk or openjdk-7-jdk
|
Optional Dependencies: | |
Python | python-dev , python-numpy-dev
|
Firewire Camera Library | libdc1394-*-dev
|
Open Source Computer Vision Library | libopencv-dev
|
GPhoto2 | libgphoto2-2-dev
|
FreeImagePlus (used by GPhoto device adapter) | libfreeimage-dev
|
libusb 0.1 | libusb-dev
|
Andor SDK 2/3 | N/A - request from Andor website |