FreeMind on Linux: Difference between revisions
TacarAcchi (talk | contribs) (http://rappahannockinc.com/portfolio/images/topic1026.htm) |
m (Reverted edit of TacarAcchi, changed back to last version by Jim.mack) |
||
Line 1: | Line 1: | ||
<table><tr> | <table><tr> | ||
<td valign=top> | <td valign=top> |
Revision as of 12:18, 26 August 2008
Installation (0.8.0)FreeMind is a Java program, hence you need Java to make it work. There is the "Java runtime engine" (JRE or J2RE) required to run (use, start) FreeMind, and there is the "Java Development Kit" (JDK or J2DK) if you want to compile FreeMind (If you don't know what compile means, then you need only the JRE. In the following lines, I will concentrate on making FreeMind run and the JRE installation). Once Java has been installed, only then does it make sense to install FreeMind. You can use packages (.deb or .rpm), which is a bit more work to setup but much easier to update, or you can use the more simple installation from a ZIP file (as described in the UN*X section). The Debian installationThis description should be valid for any Debian based distribution, in particular (K)ubuntu.
Install Java the Debian wayMost easiest wayMake sure that the Java 5 JRE under Debian resp. Java 5 JRE under Ubuntu (FreeMind 0.8.0 doesn't support Java 6) is installed, using e.g. aptitude install sun-java5-jre (for Sarge, you will need to add first the backport repositories). You can make Java 5 the default JRE by using the command update-java-alternatives -s java-1.5.0-sun, but you don't need to. For Debian versions older than Sarge, or if you need Java 1.4As Java isn't really free or open, there was no official Debian package for it. The procedure is hence to install java-package from the contrib section, e.g. as root with: # apt-get install java-package Read the instructions delivered with the package, and create your own little Java package(s). In a nutshell, download the Java Runtime Environment (JRE) from Sun (Linux self-extracting file), called something like j2re-1_4_2_10-linux-i586.bin or jre-1_5_0_02-linux-i586.bin. Use the command from the java-package called make-jpkg along with fakeroot as in: $ fakeroot make-jpkg j2re-1_4_2_10-linux-i586.bin noting that the filename depends on your version. When you have this, you can install the package as root: # dpkg -i sun-j2re1.4.deb
Installing FreeMind under DebianYou can always download the required .deb files from the Files section and install them by hand, using dpkg or whatever, but the comfortable way is to add the following lines to your /etc/apt/sources.list: deb http://eric.lavar.de/comp/linux/debian/ <version>/ deb-src http://eric.lavar.de/comp/linux/debian/ <version>/
Then call as root the two (or three) following commands: # apt-get update # apt-get install libbatik-java/testing libjcalendar-java/testing # apt-get install freemind/experimental freemind-plugins-svg/experimental \ freemind-plugins-time/experimental freemind-plugins-help/experimental \ libjgoodies-forms-java/testing (it's more comfortable because, each time you call "apt-get upgrade", you'll get automatically the new freemind package) Some additional notes:
deb http://ftp.XX.debian.org/debian testing main contrib non-free deb-src http://ftp.XX.debian.org/debian testing main contrib non-free
Ubuntu & KubuntuEasiest method (tested under Gutsy Gibbon)This is how to install the most-recently-packaged version of FreeMind. Start the Synaptic Package Manager (under the System menu), and then do the following:
2008-04-18 Synaptic shows JAVAHELP2 has been packaged. When you search for JAVAHELP, you may see javahelp2 - the 2 is a version number). Synaptic shows FreeMind 0.8.1 has been packaged. FreeMind 0.8.0 doesn't work properly with Java 6. 0.9.0.betaX is not yet packaged, check therefore the UN*X installation method Old instructionsInstallation on Ubuntu requires two steps. Install a Java runtime environment, then install FreeMind. Newer versions of Ubuntu (since 6.10?) install Java by default. So chances are that you can skip most of the following instructions. You might want to check, if Java is installed and what version is active. Open a Terminal and type java -version Java 1.4 or higher should be fine. See also Ubuntu's community documentation on Java. Install Java ManuallyThese instructions (and these notes) are also known to work on Ubuntu 6.10 (EdgyEft). See the Talk Page. I got my hand on a Kubuntu 5.10 installation, and am now able to give some hints about the specificas of the (K)Ubuntu installation:
Package: * Pin: release o=Debian Pin-Priority: 200 You milleage may vary but if this doesn't work, consider looking at this link. Install FreeMind ManuallyAll the above required packages can be installed more easily within Kubuntu 6.10, even without installing a new java RE. I used the previous installed sun java 6 jdk (Freemind 0.8 gives a error message at start, that it might not run correctly, but it does afterwards). Notice that FreeMind 0.8.0 doesn't support Java 6 (FreeMind 0.9.0 will) and issues have been reported; use apt-get install sun-java5-jre if you want to be sure. After adding the multiverse and universe repositories add the FreeMind-specific repositories: deb http://eric.lavar.de/comp/linux/debian/ <version>/ deb-src http://eric.lavar.de/comp/linux/debian/ <version>/ (where <version> is unstable or experimental), apt-get install freemind (plus plugins packages if needed) seems to work without adding further Debian repositories. gdebi-gtkThis worked for me on Ubuntu Feisty Fawn and was very easy. Download the FreeMind .deb files to an empty directory. I put them in ~/Freemind. Open a terminal window and change directory to ~/Freemind. My directory contained the .deb files listed here: freemind_0.8.0-1_all.deb freemind-plugins-time_0.8.0-1_all.deb libbatik-java_1.5.1-1_all.deb freemind-plugins-svg_0.8.0-1_all.deb Since I had Sun Java installed already, I just ran these command lines: gdebi-gtk freemind_0.8.0-1_all.deb gdebi-gtk freemind-plugins-time_0.8.0-1_all.deb gdebi-gtk libbatik-java_1.5.1-1_all.deb gdebi-gtk freemind-plugins-svg_0.8.0-1_all.deb That was it. Last thing I did was to create a new launcher on my desktop that called "freemind". I dragged the launcher to the task bar where a single click launches the application. It seems to work well. I didn't bother installing the help .deb because the dependencies reported by gdebi-gtk were too complicated for me to resolve. Good luck! I hope your installation works as well as mine. The RPM installationStarting with version 0.8.0 of FreeMind, I've started to orient my packaging work towards JPackage compatibility, so that the same packages should work for all distributions with JPackage's packages, especially SuSE 9.x and 10.x, Mandrake/Mandriva 10.x, as well as Fedora Core. Installation of FreeMind 0.8.1 under SuSE 10.3
Installation of FreeMind 0.8.1 under Fedora Core 8
Install Java the JPackage wayFreeMind only works with Sun's or Blackdown's Java. Taking the example of Sun's Java, there are three possibilities to install Java:
Install JavaHelp2 the JPackage wayJIf you want to install freemind-plugins-help, you'll need to install JavaHelp2. For licensing reasons, JavaHelp2 can't be redistributed by OpenSource distributions, hence you'll need to build the package yourself:
Install FreeMind with RPM, the stupid and easy way ;-)Install Sun's or Blackdown's Java the JPackage way. Install JavaHelp2 the JPackage way if you need freemind-plugins-help. Download all the RPMs from the Files section (don't forget jcalendar and jgoodies-forms) in a directory. Install all these RPMs using the rpm command, e.g.: # rpm -ivh freemind*.rpm jcalendar*.rpm jgoodies-forms*.rpm For each missing dependency, go to the JPackage site, search and download the package(s) using the same kind of rpm command. Here is a list of dependencies:
Install FreeMind using apt4rpmmethod tested with SuSE 10.1 - work in progress
$ wget http://linux01.gwdg.de/~scorot/install-apt4suse.rpm (become root) # rpm -Uvh install-apt4suse.rpm
method tested with SuSE 9.2 It sounds easy but actually the first step can be a bit tricky: you first need to setup apt4rpm, as described following the links given in this Jpackage Repository page. The good news is that always more distribution are coming standard with apt on board (if you are able to call apt-get as root, you already have it). Add the JPackage repository to your /etc/apt/sources.list file as described in the same above page. Add also the two following lines (the 2nd one is optional, for sources) to the same file: rpm http://eric.lavar.de/comp/linux/rpm noarch java rpm-src http://eric.lavar.de/comp/linux/rpm noarch java Then call as root the two following commands: # apt-get update # apt-get install freemind freemind-plugins-svg freemind-plugins-time freemind-plugins-time (it's more comfortable because, each time you call "apt-get upgrade", you'll get automatically the new freemind package) Some additional notes:
Install FreeMind using urpmimethod tested with Mandriva 2006 Use Easy Urpmi to setup a first set of urpmi repositories. Then add the JPackage repositories. See JPackage Project Repositories for details, but in a nutshell: # urpmi.addmedia jpackage-1.6-generic MIRROR/1.6/generic/free with hdlist.cz # urpmi.addmedia jpackage-1.6-generic-non-free MIRROR/1.6/generic/non-free with hdlist.cz Install Sun's or Blackdown's Java the JPackage way. Install JavaHelp2 the JPackage way if you need freemind-plugins-help. Add FreeMind's repository: # urpmi.addmedia freemind http://eric.lavar.de/comp/linux/rpm/noarch/ As of Mandriva 2008 this does not work as the urpmi.addmedia requires a hdlist file. Using the --no-probe does not work. And then install FreeMind and its plugins: # urpmi freemind freemind-plugins-svg freemind-plugins-time freemind-plugins-help The Gentoo installationInstall Java the Gentoo wayBasically, simply do the following: # emerge -av virtual/jdk See the Gentoo Java Guide for more information and further instructions. Install FreeMind the Gentoo wayTo ensure you are up-to-date in portage: # emerge sync (or emerge-websync) The latest version of FreeMind in Portage may be masked. To use this "unstable" version you may have to unmask the package. To make sure you know what is going to install, use the --ask flag to emerge. Answer `yes' if you want to emerge dependencies: # emerge --ask app-misc/freemind On any UN*X kind of system (also Linux)Install Java on UN*XIt doesn't really matter, just install some Java from Sun or Blackdown. Download the Java Runtime Environment (JRE) from Sun (Linux self-extracting file), called something like j2re-1_4_2_07-linux-i586.bin or jre-1_5_0_02-linux-i586.bin, or from Blackdown. Before doing anything though, check to see if a usable Java is already on the system. Any Solaris (version 9 or newer) has one, for example. Install FreeMind on UN*Xstraight-forward installation methodDownload the file called something like freemind-bin-max-0_8_0.zip (or freemind-bin-0_8_0.zip if you don't need the plugins), create somewhere a sub-directory and unpack there the file (as normal user or root, depending where you created the sub-directory): $ unzip .../freemind-bin-max-0_8_0.zip $ chmod +x freemind.sh You're done, on any system where /bin/sh is a POSIX-compliant shell. That's true on most Linux systems, but not on Solaris. On Solaris, edit the first line of freemind.sh and change /bin/sh to /bin/bash. Now you're done. NB: If you want to use beta 0.9: There are zip-Files available for 0.9, too. more subtile installation methodConsidering you're installing FreeMind locally, you should get root and do the following: # mkdir -p /usr/local/share/freemind # unzip freemind*.zip -d /usr/local/share/freemind # chmod +x /usr/local/share/freemind/freemind.sh # ln -s /usr/local/share/freemind/freemind.sh /usr/local/bin/freemind This will copy the contents of the zip file to /usr/local/share/freemind and create a symbolic link to the FreeMind script in the /usr/local/bin directory. The link to the script will only work if you unzip FreeMind in a directory for which # path to the installation directory of FreeMind FREEMIND_BASE_DIR="/opt/FreeMind" Starting FreeMindInstalled from RPM or DEB packageJust type "freemind" in a console or an Alt+F2 command line, you're normally done. There should also be a menu entry under "Applications" in KDE and GNOME (under Debian, in any window manager).
Installed from ZIP fileYou'll need to use a console, or the Alt+F2, or create your own menu entry, using one of the following commands:
$ /some/directory/path/freemind.sh
Frequently and less frequently Asked QuestionsFreeMind aborts with an 'xcb_xlib' errorWhen trying to start FreeMind, it aborts with an error as follows: java: xcb_xlib.c:52: xcb_xlib_unlock: Assertion `c->xlib.lock' failed. This is a known Java error and one possible solution is to set the following environment variable: export LIBXCB_ALLOW_SLOPPY_LOCK=1 (helps on SuSE 10.3) On gentoo, the following command line fixes the issue: locate libmawt.so|grep /opt/sun-j.*/lib/i386/.*libmawt.so|xargs sed -i 's/XINERAMA/FAKEEXTN/g' For 64-bit: locate libmawt.so|grep /opt/sun-j.*/lib/amd64/.*libmawt.so|xargs sed -i 's/XINERAMA/FAKEEXTN/g' I can't paste branches copied from FreeMind into other applicationsTry to use the middle mouse button to paste the content copied from FreeMind. Under KDE, you can use klipper and set the option "Synchronize contents of the clipboard and the selection", so that you can also use Ctrl+V or Shift+Ins to paste. I want to add an icon for my Link to FreeMind on my Desktop. Is there one?The icon is compressed inside the freemind.jar file you can find in the FreeMind installation directory, e.g. /usr/(local/)share/freemind. Once the file located, use a command similar to: $ unzip $FREEMIND_BASE_DIR/lib/freemind.jar \*/FreeMindWindowIcon.png -d /tmp This will create a folder images in the tmp directory containing the FreeMindWindowIcon.png file - your icon! When starting FreeMind, it says "java: command not found". What's wrong?It's a problem from Fedora Core, Mandrake and the Java Sun RPM, which neither add the java command to the PATH nor defines properly the variable JAVA_HOME. Add the following two lines to one of the startup scripts (/etc/profile and/or /etc/bash.bashrc for all users, or $HOME/.profile and/or $HOME/.bashrc only for you): export PATH=$PATH:/usr/java/j2re1.4.2_04/bin export JAVA_HOME=/usr/java/j2re1.4.2_04 (the part in italic depends on your installation)
Why do I get a "No print service found" whenever I attempt to print?At least up to version 1.4, the java runtime under Linux is using the BSD printing system (also known as the lp commands, or old lp). Most modern distributions offer the CUPS printing system, which needs a compatibility layer to work with Java:
Install this package and you should be able to print from FreeMind. If CUPS is not installed on your system, it is easier to install the traditional lpr/lpd system. On Debian, the package is just lpr, apt-get install lpr should be enough. Sun's Java 1.5 supports CUPS out of the box. If, however, printing still doesn't work it may be because the CUPS printer names contain '-' characters. There's a Java bug that prevents this from working properly [3], and it doesn't seem fully fixed yet (build 1.5.0_06-b05). Work-arounds are:
Small test code to regenerate the error fast: DummyPrinter.java import java.awt.print.PrinterJob; class DummyPrinter { public static void main(String[] args) { try { PrinterJob printJob=PrinterJob.getPrinterJob(); printJob.printDialog(); System.exit(0); } catch( Exception e) { e.printStackTrace(); } } }
I get an error java.lang.NoClassDefFoundError or java.lang.NullPointerException when starting FreeMindWhen trying to start FreeMind from a console, you get the following error messages and FreeMind doesn't start: ./lib/freemind.jar java.lang.NoClassDefFoundError: javax/swing/JFrame at java.lang.ClassLoader.defineClass0 (ClassLoader.java) at java.lang.ClassLoader.defineClass (ClassLoader.java:179) at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:33) at kaffe.lang.AppClassLoader$JarSource.findClass (AppClassLoader.java:143) at kaffe.lang.AppClassLoader.findClass (AppClassLoader.java:291) at java.lang.ClassLoader.loadClass (ClassLoader.java:142) at java.lang.ClassLoader.loadClass (ClassLoader.java:121) at kaffe.jar.ExecJarName.main (ExecJarName.java:55) at kaffe.jar.ExecJar.main (ExecJar.java:75) or update UI not overwritten in class: javax.swing.JLayeredPane[0,0,0x0,invalid,translucent,alignmentX=0.0,alignmentY=0.0,border=, maximumSize=java.awt.Dimension[width=2147483647,height=2147483647],minimumSize=java.awt.Dimension [width=0,height=0],preferredSize=java.awt.Dimension[width=0,height=0]] [Freemind-Developer-Internal-Warning (do not write a bug report, please)]: Tried to get view without being able to get map module. Exception during event dispatch: java.lang.NullPointerException at javax.swing.plaf.basic.BasicComboBoxEditor.setItem(java.lang.Object) (/usr/lib/libgcj.so.6.0.0) This is because you use kaffe (the same applies to libgcj, sablevm and a few others), which doesn't offer all features of Sun's Java. Blackdown's Java do es as well work, I would have doubts on any other implementation (beside perhaps IBM's one). So, remove this Java version and install a version from Sun or Blackdown.
While installing a FreeMind package, it complains Java isn't installed, though I've installed it and Java programs do workYou've probably installed Java manually, and not from an RPM resp. DEB package. This means that the FreeMind RPM resp. DEB package can't know that Java is installed. Three solutions (from better to worse):
# rpm -Uvh -nodeps freemind....noarch.rpm
While installing a FreeMind RPM package, it complains Java isn't installed, though I've installed it from an RPM packageYou've probably installed the JDK package from Sun, which provides also a JRE but doesn't say it. Your best chance is to install the dummy package j2sdk-provides-j2re-1.4.2-2.noarch.rpm. The source package is available as well.
How can I make FreeMind use a specific Java Virtual Machine?If you've installed FreeMind from a package, you can make it use a different Java virtual machines than other programs by adding lines similar to the 2 following ones to /etc/freemind/freemindrc, for all users, or to $HOME/.freemind/freemindrc, for you, so that only FreeMind is impacted (and no other program): export PATH=/usr/java/j2re1.4.2_04/bin:$PATH export JAVA_HOME=/usr/java/j2re1.4.2_04 (the part in italic depends on your installation) Why doesn't the rebuild of the SRPM work under Fedora Core 2During rebuild of the RPM, lines similar to the following do appear and the build fails: compile: [mkdir] Created dir: /usr/src/redhat/BUILD/freemind-0.7.1/bin/classes [javac] Compiling 92 source files to /usr/src/redhat/BUILD/freemind-0.7.1/bin/classes [javac] /usr/src/redhat/BUILD/freemind-0.7.1/freemind/freemind/modes/MindMapLinkRegistry.java:38: error: '{' expected. [javac] }; [javac] ^ [javac] /usr/src/redhat/BUILD/freemind-0.7.1/freemind/freemind/modes/MindMapLinkRegistry.java:40: error: Public interface `freemind.modes.ID_Blank' must be defined in a file called `ID_Blank.java'. [javac] public interface ID_Blank extends ID_BasicState {}; [javac] ^ The ant package delivered with Fedora Core 2 seems to be broken (version is 1.5.2, but my ant version is 1.5.1 and it works). Installing ant (and dependencies) from the JPackage Project seems to solve the problem. Under Fedora Core 3, Java complains in libawt.so about missing libXp.so.6The exact error message is: Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/jre/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory In this case install the package xorg-x11-deprecated-libs-6.8.1-12.i386.rpm, e.g. using yum, this should solve the problem. FreeMind seems broken and I have the Gtk Look&FeelWe already had quite a lot of issues with the Gtk Look&Feel, sometimes in aspects nobody would have thought relevant to the Look&Feel (e.g. hangs on file system access). Hence we strongly recommend to change your Look&Feel to something else before even trying to pin down the issue. You can change it in the menu Tools → Preferences... → Appareance → Look and Feel. Should the problem be such that you can't even start the preferences menu (or FreeMind as a whole), edit the file ~/.freemind/user.properties to uncomment and modify the lookandfeel parameter, as in: lookandfeel = metal Instead of metal, other valid values are nothing (for no Look&Feel at all), default (the... default one), windows or motif; mainly a matter of taste.
And, yes, we know, Gtk looks sooo much better! (but we don't really care) When resizing the FreeMind window, the inner field doesn't resize properly (or other GUI strangeness)If you're using a 3D desktop (like Compiz or Beryl), that's most probably the reason for your issue. We don't have a fix yet and we even don't know if it's a FreeMind, a Java or a Compiz/Beryl issue. Hints are welcome. (This also happens with ratpoison and awesome.)
This problem can be circumvented at least partially by editing the $HOME/.freemind/auto.properties: #Wed Jun 13 15:58:31 EEST 2007 lastOpened= standardfont=SansSerif appwindow_state=0 appwindow_height=720 appwindow_width=1260 toolbarVisible=true leftToolbarVisible=true antialiasEdges=true antialiasAll=false Set the appwindow_height and appwindow_width to as high values as possible, so that you don't have to resize at all. If all toolbar icons fit to the screen, you're on the clear :). Another hint: setting the AWT_TOOLKIT=MToolkit environment variable seems to solve some of the problems. I had the problem that in compiz-fusion the freemind window appeared undecorated and was unmanageable (couldn't be moved, resized, etc.). Setting this environment variable before running freemind solves this problem. I found the solution here. **Addition: This fix (also) works for awesome 2.3, in both tiling and floating modes. TroubleshootingMost people seem to think that, because you're relatively knowledgeable, they can tell you that something doesn't work, and you will be able to find out the solution, just like this! Well, that's not exactly like this: first, I need to understand what the problem exactly is, and then I can try to solve it, especially if I've already seen and solved the problem. Think about your mechanic at the garage, if you give him a call and tell him "my car doesn't start" or "something is wrong with my car", would you expect him to tell you right away "Oh, yes, that's the plugs!". Most probably, he will ask to come by. Well, that's exactly the same here, I can't ask you to come by, but if you want good help, you'll need to give good information. It's easier than you might thought, just do the following steps, that should give us a good start:
On an RPM based system: DEBUG=1 freemind (quit freemind) /usr/bin/java -version rpm -qa | grep -i j rpm -qa | grep freemind env | grep -i j On a Debian based system DEBUG=1 freemind (quit freemind) /usr/bin/java -version dpkg -l \*j\* dpkg -l freemind\* env | grep -i j
The result should look somewhat like this (error messages are OK, I like error messages!): alice@wonderland:~> DEBUG=1 freemind DEBUG: Freemind parameters are . DEBUG: Using $PATH to find java virtual machine. DEBUG: Using '/usr/bin/java' as java virtual machine... DEBUG: Freemind Directory is '/usr/share/freemind'. Looking for user properties: /home/ericl/.freemind/user.properties User properties not found. It will be automatically created. Done. Default (System) Look & Feel: javax.swing.plaf.metal.MetalLookAndFeel [Freemind-Developer-Internal-Warning (do not write a bug report, please)]: Tried to get view without being able to get map module. alice@wonderland:~> /usr/bin/java -version java version "1.4.2-rc1" Java(TM) 2 Runtime Environment, Standard Edition (build Blackdown-1.4.2-rc1) Java HotSpot(TM) Client VM (build Blackdown-1.4.2-rc1, mixed mode) alice@wonderland:~> rpm -qa | grep -i j eject-2.0.13-26 joystick-2002.10.30-38 libjpeg-6.2.0-530 joe-2.9.8-179 jfsutils-1.1.1-25 jpilot-devel-0.99.6-0.pm.1 jpeg-6b-530 jhead-2.0-2 taskjuggler-1.4.2-10 j2sdk-provides-j2re-1.4.2-2 libjasper-1.600.0-75 jpilot-0.99.6-0.pm.1 jakarta-ant-1.5.1-37 java2-1.4.2-0.pm.0 java2-jre-1.4.2-0.pm.0 mjpegtools-1.6.2-1 alice@wonderland:~> rpm -q freemind freemind-0.7.1-6 alice@wonderland:~> env | grep -i j JRE_HOME=/usr/lib/java/jre PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:[etc...] JAVA_BINDIR=/usr/lib/java/bin JAVA_HOME=/usr/lib/java SDK_HOME=/usr/lib/java JDK_HOME=/usr/lib/java JAVA_ROOT=/usr/lib/java alice@wonderland:~>
|