Installation troubleshooting

From Amahi

If you do not install via the standard way (full DVD) or some packages did not install correctly for some reason, here are some tips to troubleshoot the Amahi installer:

Contents

If you cannot connect to localhost:2000

Simply run as root (may have to run 'su -' first):

    hda-install YOUR_INSTALL_CODE

(replace the second part with your actual install code)

If your installations freezes

Some times, package installation gets stuck at one number (10% or 30% ...).

This can be due to package installation from mirrors. The installer tries to pick the fastest mirror, but it may still slow. However, the installation still continues in the background. You can monitor it from a terminal as root as:

      tail -f /root/hda-install.log

and wait until you see progress ... the last 3 lines of a complete log look like this:

      Stopping NetworkManager daemon: [FAILED]
      Stopping unused services done.
      Amahi installed successfully! please reboot!

If they do, it worked we have a hard-to-trace bug in the installer - where it freezes at one percent number, but the installation works in the background!

Make sure you have all the packages

As root, type this:

          yum -y install ruby ruby-libs ruby-libs ruby-rdoc

also make sure you have the sinatra package:

          gem install --no-ri --no-rdoc --version 0.9.4 sinatra

Restart the amahi installer

          service amahi-installer restart

To start the install process, make a connection to:

          http://localhost:2000

And proceed from there!

If you already installed before, the installer will not start again. To force-start the installer you can do this:

          rm -f /var/cache/hdactl.cache
          service amahi-installer restart

Then connect to localhost:2000.

Checking the log files

When all else fails, there are some log files left in

           /tmp/amahi*install.log

which may shed some light as to what's going on. You can pastebin it with:

           egrep -v 'GET|POST|progress' /tmp/amahi-ruby-install.log | fpaste

You can also do:

           tail -f /root/hda-install.log

To keep a watch on the gory details of the installer progress in real-time.

Also, check in /tmp/amahi-web-installer-log/ (in particular stdout) as well as /root/hda-install.log

Running behind a Proxy

To install sinatra behind a proxy, type this (as root):

      gem --no-rdoc --no-ri --http-proxy http://yourproxyurl/ sinatra
      service amahi-installer restart

Installer is locked

Some people see "unable to connect from http://localhost:2000" when performing the initial Amahi install.

  • To correct this and resume with install, open a terminal window.
  • As root user, do the following:
rm -rf /var/lock/subsys/amahi-installer
service amahi-installer start
  • Now go back to your browser and try http://localhost:2000. You should now see the prompt for the install code.

A Log Checking Utility

Here is a simple script that displays all of the file updates and additions made to your hda and the date they happened. It simply reads the hda-updates.log file and parses out only the relevant changes.

I use this script periodically so I can see what might have changed recently.

Installation

Log into your hda and create a bin directory under your home directory (if you don't already have one). The reason for this is that ~/bin is already in your $PATH when you log in, so it will automatically find any scripts you put there:

   cd /usr/bin

Open up your favorite editor (I suggest gedit for this) and copy the code that follows into the editor. Save the file as hda-updates (or whatever you want to name it) and exit the editor.

Code:

#!/usr/bin/python
#
# Dump update information from /var/log/hda-updates.log
#!/usr/bin/python
#
# Display the date and files that were modified/installed.
#
# Reads the hda-updates log file and parses out just the file updates/additions.
# It helps to see what has been modified and when.
#
# radioz
# 11/8/2010
#

log = '/var/log/hda-updates.log'

f = open(log, 'r')
lines = f.readlines()
f.close()

gotUpdates = False
firstUpdate = False
dateInfo = ''
for ll in lines :
	l = ll.strip()
	# Ignore dependency heading
	if l == 'Installing for dependencies:' :
		continue
	if l == '' :
		# A blank line terminates the updates for a particular date
		if gotUpdates :
			# Display a blank line between dates
			print
			gotUpdates = False
		continue
	if gotUpdates :
		if firstUpdate :
			# Display the date above the first update
			print '%s:' % dateInfo
			firstUpdate = False
		# Reformat the file info slightly
		updateInfo = l.split()
		print '    %-16s %-6s %-20s %-16s %-5s %s' % (tuple(updateInfo))
	if 'hda update attempt' in l :
		# This header appears once per hour in the log. Very few represent real updates.
		# Save the date information in case this is a real update.
		dateInfo = ' '.join(l.split()[5:])
	if 'Updating:' in l :
		# This is a real update, set up the flags
		gotUpdates = True
		firstUpdate = True

Make the file executable:

   chmod +x hda-updates

Now you can run it.

Example

   hda-updates

Here is a snippet of its output on my system:

Sat Sep 4 15:02:32 PDT 2010:
   hdactl           i386   3.5.1-1              amahi            218   k
Sat Oct 30 22:02:14 PDT 2010:
   hda-greyhole     i386   0.6.28-1             amahi            47    k
   hda-platform     noarch 5.6-1                amahi            1.0   M
   hdactl           i386   3.6-1                amahi            218   k
Sun Nov 7 20:01:29 PST 2010:
   hda-platform     noarch 5.6-8                amahi            1.0   M