Part Three – Configuring Ubuntu to use your newly installed Java JRE and SDK
There are a lot of technical steps in this part, and I figured them out mostly through heavy internet searching, piecing together information from other blogs, and trial and error. The main issues were caused by every site expecting you to already have some key components installed before trying to get this working. So when I tried to follow their guides they never worked. That is why we are here now, using a fresh and clean Ubuntu installation.
- cd /opt/java && sudo ln -s /opt/java/jdk1.6.0_21 /opt/java/jdk-linked && sudo ln -s /opt/java/jre1.6.0_24 /opt/java/jre-linked – this moves back to the /opt/java directory and creates a link to the jdk folder that we can use to reference to later, that way if we ever install a newer version of java all you have to do is remove the links and create new ones, not have to go through this whole process again! you can test by typing cd jdk-linked && ls – and you will see the contents of /opt/java/jdk1.6.0_21 (don’t forget you can use [tab])
- sudo update-alternatives –install “/usr/bin/java” java “/opt/java/jre-linked/bin/java” 10 && sudo update-alternatives –set java /opt/java/jre-linked/bin/java – this updates Ubuntu so it can find your new jre and makes it the default jre to be used by the system (again future proofed because we used the linked location)
- if you want to, we can setup java for Firefox too
- mkdir ~/.mozilla/plugins/ && ln -s /opt/java/jre-linked/lib/i386/libnpjp2.so ~/.mozilla/plugins
- cd && vi .profile
- [ctrl+f]
- [o]
- EXPORT JAVA_HOME=/opt/java/jdk-linked
- [enter]
- EXPORT PATH=$PATH:$JAVA_HOME:$JAVA_HOME/bin
- [esc]
- :wq!
- now we need to repeat the next set of instruction with the following items placed in [java] (everytime you see [java] put one of the following until you have done these steps for each of the following), I have noted after each one if you need a jre or jdk, or both lines for it, if both, replace the 10 with a 5 on the jdk (this will add both the jre and the jdk alternatives to the list making the jre ones the default). Or, just use this script. (remember to look at the script first to make sure it does what I said, and to set it as executable! cat java-update|more && chmod +x java-update then execute it with sudo ./java-update)
- java – jre/jdk
- jar – jdk
- jarsigner – jdk javac – jdk
- javadoc – jdk
- javah – jdk
- native2ascii – jdk
- rmic – jdk
- rmid – jre/jdk
- rmiregistry – jre/jdk
- serialver – jdk
- sudo update-alternatives –install “/usr/bin/[java]” [java] “/opt/java/jre-linked/bin/[java]” 10
- sudo update-alternatives –set [java] /opt/java/jre-linked/bin/[java]
- mkdir ~/source-build && cd ~/sourcebuild && sudo apt-get install debhelper gcj-4.4-base gcj-jdk m4 debiandoc-sgml python-docutils cdbs – moving on, we need to install some things before the adding Titanium to the system, this group (plus their dependencies, you don’t want to know what I went through to get this list exactly correct, it took a couple of months the first time I worked on getting this installed) takes up 823MB and took me 16 minutes to download and 2.5 minutes to install. as an fyi, I figured these out by not having them installed the first time around and spent weeks trying to figure each part out, because these files are not what causes the failed instal, linux will pull the dependencies for you when you install something, but there are dependencies of dependencies of dependencies… and somewhere down that line linux fails to grab the final set! So you need to install them in this order, I then spent another week or 2 finding out that those in particular have to be installed before the next set or the next set fails to install!
- sudo rm /var/lib/apt/lists/* && sudo apt-get update – this will resolve an issue with the sources of the next step
- sudo apt-get install llvm-gcc-4.5 && sudo apt-get build-dep llvm-gcc-4.5 && sudo apt-get -b source python-defaults ruby-defaults && sudo apt-get update && sudo apt-get dselect-upgrade && sudo apt-get autoremove – this set downloads the source files for each of these and builds them specifically for your system and then cleans itself up, this did not prompt me for the additional storage space until it got to the apt-get dselect upgrade step (some 48kb) but the build process took about 20 to 45 seconds on my machine.
- sudo apt-get install ispell – I have found a few other things that are necessary for titanium to work
- restart your development VM
- mount your shared drives and take a new snapshot after the system comes back up, called pre Android SDK, and comments “OS, java jre&jdk, and compilers installed”
maybe you don’t really need all of this, but I don’t want to find out while I am writing my Android app that I missed a step, as then you won’t be able to re-use the snapshots in case of an emergency (also called a mistake!). One other note, if you noticed I made a new directory and used it for the source builds, this is because at least the python source build requires several chown commands to run and if you try to execute them on a VM share mount it will fail and you cannot complete the build. Congratulations! I know this was a tough part to do, and I’ll have to check it over sometime in the future to recreate the entire process step by step and make sure it all works again (never know where there might be a typo!). Next time we meet it will be to install the Android SDK and Titanium. After that we will build a short crappy Android app to test everything and then make an .iso Live CD of the whole VM! The final file was pretty big, I’m not sure if a Live DVD would cover it all! I’ll test this idea and add it to the final post if it works. I will be heading out of town for a couple of days so don’t expect anything before monday!
again, after I finish this series up, I’ll add in resource links
Part Two – installing the Java SDK
Let just get right into it! open up your terminal session and lets continue!
- mkdir -p ~/android/environment/system – this will make both the environment and system folders with one command (I love -p!)
- sudo mount -a && cd ~/Downloads && ls – make sure everything that should be there is actually there
- wget http://javadl.sun.com/webapps/download/AutoDL?Bundleid=47143 – 32-bit Linux java
- open the default firefox web browser (should be an icon at the top next to the System pull-down menu), http://java.sun.com/javase/downloads/widget/jdk6.jsp – note, now that oracle owns sun, this link may change!
- click the big download button
- select linux as your operating system and click continue
- then download the file that does NOT say rpm, by clicking on it
- choose save – this will automatically put the file in your Downloads folder (which is mapped to your host computer, so if you have to start over, you won’t have to download it again
- sudo mkdir /opt/java && sudo cp ./AutoDL?Bundleid=47143 /opt/java/sun-java6-jre.bin && sudo cp ./jdk-6u21-linux-i586.bin /opt/java/ – remember to use [tab] after typing Auto or jdk so you can use this even if the version gets updated
- cd /opt/java && sudo ./sun-java6-jre && sudo ./jre-6u21-linux-i586.bin – again remember to use [tab], during the install you’ll have to press [enter] when the jdk is almost done to exit out (it will open a firefox window asking you to register, you can just close it)
- sudo apt-get install galternatives
- sudo rm /opt/java/*.bin – this will remove almost 200MB from your VM HDD
- and restart the VM again
- after the VM comes back up mount your shares again and take a second snapshot, we’ll name this one Java jre & jdk installed, in the comments note that you have also added galternatives
We will finish up part two here, the next section is where a little mistake will have you reverting to this last snapshot, so you will be happy we made it (I did not make the second snapshot the first time through and while all the way at the end of part three I had to revert back to the end of part one and redo this section again).
As a follow-up to my most popular post ever, installing KUbuntu 10.04 32-bit on VirtualBox and Appcelerator’s Titanium Mobile Developer, I am going to do another version for Ubuntu 10.10 32-bit running on VMware workstation 7.1.3. the installation process is mostly the same on VirtualBox, you [...]
As a follow-up to my most popular post ever, installing KUbuntu 10.04 32-bit on VirtualBox and Appcelerator’s Titanium Mobile Developer, I am going to do another version for Ubuntu 10.10 32-bit running on VMware workstation 7.1.3. the installation process is mostly the same on VirtualBox, you will just have to follow a different method for setting up shared folders (you can use my previous post for that). Several things have changed in the last year and I haven’t done 10 minutes of development work, not to mention I am not even sure where the files for the 10.04 VM are! (update, I found them, but they failed to boot, might be the 600 freaking virtualbox updates since then!!) This has taken me 6 days to write up, I’m almost, but not quite done, AND it is close to 3000 words at this point, so I am going to post it in three four parts, so in any case let’s get started.
**anything in bold is either a heading or a command for you to type into a terminal window! (heading should also be underlined)
Part one – setting up Ubuntu 10.10 32-bit
(this is hoping you already have VMware workstation installed on your system, as I am not going to go through that process again! it was a nightmare and took weeks to get going on my current system. As background I am running Ubuntu (not KUbuntu like last time) 10.10 x64 as my host machine, and Ubuntu 10.10 32-bit as the guest. I am installing all of the development files on the VM, because the first time I tried setting Appcelerator’s Titanium on my host machine, I had to format and reinstall the OS, now I have learned the power of home virtualization and run almost everything through it instead of on my actual desktop. The most important thing I have learned is only assign 1 cpu core to any VM until you find it runs at 100% when you perform tasks within it, then increase the number of cores by 1, the second most important thing I have learned using virtual machines is to never install a 64-bit OS, things are just easier to do with a 32-bit OS. (currently the only computer in my house running windows is my work laptop and I’d change that if I didn’t think it would get me fired!)
- have a working operating system
- install VMware workstation
- download ubuntu 10.10 32-bit and use the automatically install VM guest tools options to simplify
- I recommend naming the vm something useful, like android-dev, or titanium-mobile
- then set the host name the same
- make the Virtual HDD at least 20GB (I made mine 38GB and we shall see if that is satisfactory over time…)
- after testing with the kitchen sink I have not seen the RAM usage go over 450MB, so let’s assign 768MB of ram at this time
- go ahead and set 1 CPU with 2 cores, as having the Android Emulator running will peg 1 core at 100% all the time
- follow-up by setting the account password the same as the VM name, so if you don’t use it for 6 months after setting it up, you’ll still be able to log in
- next you need to setup shared folders in the VM, this is where we will store all of your work (on the host machine, incase something happens to the vm, you can always just wipe it and build another without losing your dev files.
- use the VMware workstation pull-down menu VM –> settings
- go to the options tab
- click shared folders
- select enabled
- add
- you should put what ever location you save your downloads to here, so you can get files from your host, then open them in the VM, I named this one “downloads”
- add a second shared folder, this one is where you want to keep your development environment, in case you need to reinstall Titanium on another machine later, I named this one “projects”
- log into the new Ubuntu VM and let’s change some settings
- (you might not have to do this, but I did) go to the System pull-down menu –> preferences –> monitors and change the resolution to something more appealing than 800×600, make sure it is at least 1280×900 or you won’t be able to create a UVGA854 display android VM (even that might not be enough, but it is just enough for a WXVGA800 AVD)
- click make default, enter your password, then close all of those windows
- go to the Applications pull-down menu –> accessories –> terminal
- sudo apt-get update |sudo apt-get install dpkg dpkg-dev |sudo apt-get dselect-upgrade
- now, while that runs, let’s do some other things, go to the System pull-down menu –> preferences –> screen saver
- uncheck Activate screensaver when computer is idle and uncheck lock screen when screensaver is active
- click power management at the bottom and set display to never
- click make default, enter your password, then close all of those windows
- go to the system pull-down menu –> administration –> login screen and click “unlock” enter your password, and set it to log in automatically, then close all of those windows
- in the top right hand corner of the VM desktop click the power button (should be red) and select Restart to complete Update
- now open up your terminal again (if you closed it)
- sudo apt-get autoremove
- the bad news is that you have to reinstall VMware tools, because you now have a new kernel
- go to the VMware pull-down menu VM –> reinstall VMware tools
- click ok on the popup
- the CD should auto-mount and open in a new window
- if not go to the Ubuntu Guest pull-down menu Places –>Computer
- on the left column go to File System –> /mnt –> open the VMware guest additions
- double click on the tar.gz file
- right click the folder vmware-tools-distrib
- select extract to…
- Put it in your downloads folder
- when it finishes, close all of these windows and go back to your terminal window
- navigate in the terminal to the vmware tools folder cd~/Downloads/vmware-tools-distrib
- sudo ./vmware-install.pl
- type yes to over-write the current installation
- press enter 10 times (when prompted!) to select the default installation locations (you will notice the script builds the tools from the source, which is nice), when it finishes, move on to the next step
- sudo vi /etc/fstab
- [Ctrl+f] – this should move the cursor to the last line
- o – this should insert a blank line at the end of the file and begin editing mode, copy and paste the following section and edit to fit the names you used or an alternate location if you don’t like mine.
- [Esc]
- : wq!
- [enter] – this will (in order) exit edit mode, save and quit the vi editor
- mkdir ~/android – you have to have an existing directory or the mount will fail!
- go to the power button in the top left corner of the guest screen (notice that it is grey this time, not red as there is not an update restart required)
**note – it would appear that the vmware guest tools do not install and mount the shares before the mounting process for the OS (which makes sense if you think about it), this means every time you restart this VM you will have to type “s” twice to skip the failed mounting of these two bind mounts. an inconvenience, but remembering to type sudo mount -a is a lot easier than almost anything else you could do as an alternative, only because mount requires super user rights and during the login process you cannot respond to a prompt for your password.
- goto the VMware workstation pull-down menu VM –> Snapshot –>Take Snapshot
- change the snapshot name to: pre-java install
- put the description as: OS installed, configured, updated, restarted, VMware tools reinstalled for new kernel, restarted again. ready for Java SDK installation
- click ok to start the snapshot
/mnt/hgfs/downloads /home/sdk/Downloads none bind,rw,user,auto,exec 0 0
/mnt/hgfs/projects /home/sdk/android none bind,rw,user,auto,exec 0 0
Ok, this is the end of part one, here we have installed our Ubuntu 10.10 32-bit OS, updated it and created a snapshot so we have a quick easy back-out in case anything screws up during the java setup (this has happened to me more than once in the past!). Before continuing on, go to your home folder and make sure the 2 shared folders show up where you put them! else this next part might not be very pretty for you…
First off, let me say it is not pretty, second the instructions on the Abode website are better suited for trying to get a man on Mars than getting
First off, let me say it is not pretty, second the instructions on the Abode website are better suited for trying to get a man on Mars than getting Air to work in Linux x64, and they are specific for Fedora 9 and 10 x64… There are also instructions for installing Adobe Air 2 on Fedora 11, but 2 is not an available install from the drop down menu on the install page. One last important point, then we shall get started… once again Adobe has ONLY MADE A 32bit APPLICATION VERSION, which is why there is an issue in the first place, the second issue is that once again the great big $$$ hungry corporation has no clue how to design an installation for Linux. I hope someone from Adobe reads this one days and learns that *nux packages can have DEPENDENCIES listed in the package and the system will attempt to download and install them during installation if they are missing from the local system. This is one of the top reasons why I switched to *nix after being a Microsoft Partner.
Ok, so the first thing in getting an install that does not want to work is to find instructions from someone who has gotten it to work. I value my time greatly, and do not believe in re-inventing the wheel (when not necessary).
next problem, Adobe Air requires the Gnome-keyring (boo…. bad, hisss…. yuk yuk yuk) or the KWallet (I don’t think they still make this app, it is now “The KDE Wallet” (filename is KDEWallet instead of KWallet) and can be found by going to System Settings –> Advanced –> KDE Wallet. I went in and setup a default profile, very easy to do, just hunt around as there are only about 7 things to do in the control panel and if you have not done this already you will find a drop down field that is blank. now I am getting an issue when attempting to install, or I would not have taken time to write this (unfortunately I had the issue yesterday and did my research for getting around it, then started up again today and as the first set of instructions did not work I am consequently writing this post. so the bad news is I may not get the same error right now when I try again so I can copy it to this post… yeah… it is working right now… sorry about that, but the main part of the error was “Gnome-keyring or KWallet is necessary to install Adobe Air” Thankfully (for all) this means a shorter post. I did a bunch of things and not all of them worked. Here are the 5 steps I followed so you can copy and paste, start out in a terminal window in the directory that you have downloaded the Adobe Air installer to (most likely ~/Downloads).
Step #2 is from the Adobe website (combined from several steps into one command, obviously the guys techs at Adobe are not Linux people), I had lots of error messages here (not found, already installed, conflicts with installed version, copies files already installed from installed package <name-o-package> and maybe one or two more). I would bet a couple of $$$ that you can skip this line, but as I have already done it, I don’t know. (the short version: you should be able just skip step 2) The remaining instructions came from the website that is referenced from the first link in this post
- cd ~/Downloads
- sudo yum install lib32asound2 lib32gcc1 lib32ncurses5 lib32stdc++6 lib32z1 libc6 libc6-i386 libnss3.so.1d libnssutil3.so.1d libsmime3.so.1d libssl3.so.1d libnspr4.so.0d libplc4.so.0d libplds4.so.0d ld-linux.so.2 gtk2-devel.i386 libxml2.i386 nss.i386 libXt.so.6 gnome-keyring.i386 xterm rpm-libs.i386
- touch ~/.airinstall.log ~/.airappinstall.log
- sudo chmod +x AdobeAIRInstaller.bin
- sudo yum install -y gtk2-devel.i686 nss.i686 nss-softokn.i686 libxml2-devel.i686 libxslt.i686 gnome-keyring.i686 rpm-devel.i686 alsa-plugins-pulseaudio.i686 PackageKit-gtk-module.i686 libXt.i686 gtk2-engines.i686 libcanberra-gtk2.i686 xterm
- sudo ./AdobeAIRInstaller.bin
That did it for me, I clicked “install” “accept” “done” and that was a wrap. now to test it…
oops… the directions on that blog post go on to say “On Fedora 12, you would not be able to install or run any AIR application. This is probably due to SELinux security policy with the certificate in Adobe AIR.”
The good news… there is a solution, the bad news, as displayed in the blog post it will not work due to a syntax error (tried in BASH, SH, KSH, and TCSH all gave the syntax error except TCSH which gave an illegal variable error) lucky us the blogger posted the reference link for the solution and I went to check it out. No help there it is letter for letter correct. I am lucky I do have a small brain that can occasionally come up with solutions to technical based problems. here is what I did and, yes it did work.
- cd ~/Downloads (you can skip this if you are still there from my previous instructions above)
- touch crypt
- sudo chmod +x crypt
- echo ‘for c in /etc/opt/Adobe/certificates/crypt/*.0; do aucm -n $(basename $c) -t true; done’ >crypt
- sudo ./crypt
piece of cake! something I learned from an AIX training class I had last year, if it doesn’t work from a command line, then darn it, put it in a shell script file!!!
There are also instructions on that original blog post for installing and uninstalling Adobe Air Apps, the install part is pretty straight forward, go to the website that has the app, click install. the uninstall instructions have a couple of steps. when I get around to uninstalling something I’ll add them to this post (probably in the next 2 hours!!)
Twitter: finndo77
- New blog post... Diablo III closed Beta http://t.co/dKC2ChWm 01:36:32 PM December 07, 2011 from joelperryproductions.com ReplyRetweetFavorite
- New blog post... resolving video problems with K-L-Ubuntu and XFX Radeon 6850 http://t.co/H6bXuMqi 06:59:18 AM October 22, 2011 from joelperryproductions.com ReplyRetweetFavorite
- New blog post... Computer upgrades http://t.co/6PWVNy4m 01:39:35 PM October 20, 2011 from joelperryproductions.com ReplyRetweetFavorite
- $7 for $15 Worth of Hand-Tossed Pizza, Calzones, and Drinks at Andolini's Pizza Charleston, SC http://t.co/QnKwPwB 11:49:26 AM August 29, 2011 from Tweet Button ReplyRetweetFavorite
- New blog post... is zdnet.com/news down http://t.co/DThuI4r 07:57:28 AM August 17, 2011 from joelperryproductions.com ReplyRetweetFavorite
- New blog post... Netflix Down? http://bit.ly/q74Svu 07:39:30 PM August 08, 2011 from joelperryproductions.com ReplyRetweetFavorite
Blogroll
programming
Tech Websites
- a good coder I found on CodeProject
- Barebones HTML coding chart
- Code Project
- Extreme Overclocking
- FreeBSD blog
- Legit Reviews – Tech Hardware Review
- Linuxtopia
- Notion Ink – homepage
- Plug Computing web site and forums
- Tablet Roms – used to be – Notion Ink Hacks
- Ubuntu Forums post on the mount command and fstab file
- VMWare ESX blogger
- Wikipedia.org main page
- ZDNet's blog pages



