App Install
Occasionally Amahi applications fail to install properly. This is often noted by error messages in the application install log (/var/log/amahi-app-install.log).
======= app install begin @ 2014-05-03 07:42:37 -0500 ========== Installing app id qf1tweahyo under /var/hda/platform/html/script/.. ENV=produc tion NOTICE: redirected 'http://downloads.sourceforge.net/project/linfo/Linfo%20Stabl e%20Releases/linfo-1.11.tar.gz' --> 'http://iweb.dl.sourceforge.net/project/linf o/Linfo%20Stable%20Releases/linfo-1.11.tar.gz' ... file /var/hda/tmp/amahi-download-cache/9306c736dc7197b9a3ed6b4c9395d4ab6e779a48 written in cache Your HDA services have been restarted. Your HDA services have been restarted. mv: cannot stat ‘unpack’: No such file or directory sed: can't read html/config.inc.php: No such file or directory chown: cannot access ‘html/lib’: No such file or directory /tmp/run_script20140503-14160-1huv0uh: line 47: html/config.inc.php: No such fil e or directory App: Linfo installed ======= app install end @ 2014-05-03 07:42:43 -0500 ==========
Other times, you may receive notice in the Dashboard.
We take these seriously and have incorporated additional error checking/prevention methods. Unfortunately they don't catch everything.
Reasons for Failure
Reasons for failure vary, but the most common are:
- Network connection
#<RuntimeError: run_script had to KILL this script. it was taking too long. sorry.>, /var/hda/platform/html/lib/system_utils.rb:66:in `run_script', /var/hda/platform/html/app/models/app.rb:241:in `block in install_bg', /var/hda/platform/html/app/models/app.rb:240:in `chdir', /var/hda/platform/html/app/models/app.rb:240:in `install_bg', /var/hda/platform/html/script/install-app:86:in `install_or_uninstall', /var/hda/platform/html/script/install-app:107:in `main', /var/hda/platform/html/script/install-app:119:in `<main>'
- Insufficient privileges
#<Errno::EACCES: Permission denied @ dir_s_mkdir - /var/hda/web-apps/bandwidthd>, /usr/share/ruby/fileutils.rb:252:in `mkdir', /usr/share/ruby/fileutils.rb:252:in `fu_mkdir', /usr/share/ruby/fileutils.rb:226:in `block (2 levels) in mkdir_p', /usr/share/ruby/fileutils.rb:224:in `reverse_each', /usr/share/ruby/fileutils.rb:224:in `block in mkdir_p', /usr/share/ruby/fileutils.rb:210:in `each', /usr/share/ruby/fileutils.rb:210:in `mkdir_p', /var/hda/platform/html/app/models/app.rb:364:in `mkdir', /var/hda/platform/html/app/models/app.rb:440:in `install_webapp', /var/hda/platform/html/app/models/app.rb:208:in `install_bg', /var/hda/platform/html/script/install-app:86:in `install_or_uninstall', /var/hda/platform/html/script/install-app:107:in `main', /var/hda/platform/html/script/install-app:119:in `<main>'
- To correct, as root user (or precede with
sudo
) do:
chown -R apache:users /var/hda/web-apps
- New version
- File moved
- Wrong SHA1 hash
WARNING: primary downloaded file /tmp/amahi-download- cache/b224eae4f30c011cbe6eae3c81d662f199eaa85f did not pass signature check - got 2da58737f99c63f47983db27789cf4b989975220, expected b224eae4f30c011cbe6eae3c81d662f199eaa85f
#<Errno::ENOSPC: No space left on device @ io_write - /var/hda/tmp/amahi-download-cache/3ab7164c607c124b97e08dd25d3a9712afebde2b>, /var/hda/platform/html/lib/downloader.rb:100:in `write', /var/hda/platform/html/lib/downloader.rb:100:in `block in download', /var/hda/platform/html/lib/downloader.rb:100:in `open', /var/hda/platform/html/lib/downloader.rb:100:in `download', /var/hda/platform/html/lib/downloader.rb:50:in `download_and_check_sha1', /var/hda/platform/html/app/models/app.rb:200:in `install_bg', /var/hda/platform/html/script/install-app:86:in `install_or_uninstall', /var/hda/platform/html/script/install-app:107:in `main', /var/hda/platform/html/script/install-app:119:in `<main>'
- Empty the /var/hda/tmp/amahi-download-cache directory.
rm -rf /var/hda/tmp/amahi-download-cache/*
Recipe for Success
There are some recommendation users can follow to help correct or prevent these problems.
DON'T
- Refresh your web browser or navigate from the page while an application is installing.
- Try to install an application after it initially fails. Need to diagnose issue.
DO
- Look at the log for details of why the app install failed.
- View the Dashboard Apps tab, Installed section for the app.
- Check /var/hda/web-apps to ensure the app did not partially install.
- Search the forums for a similar issue and potential solution.
- Visit the IRC, #amahi channel for immediate assistance.
- Submit a bug report. Provide details to help with debugability of the issue.
Clean Up Failed Web App Install
NOTE: We will use owncloud as an example of the application that failed to install.
A web app install was unsuccessful, but it appears partially installed. This often happens and repeatedly trying to install without clean up results in multiple failed attempts. For example, 4 failed attempts of ownCloud would create owncloud, owncloud1, owncloud2, owncloud3.
To return your HDA to a safe state for another install attempt, the following may help:
- Navigate to the Network tab, DNS Aliases section in the Amahi Dashboard
- Make note of the URL name(s)
- Remove each entry for the failed application by selecting Delete
- If the app has a database, execute the following command:
hda-create-db-and-user -d owncloud
- The next steps must be done from the command line as root user:
- Navigate to /etc/httpd/conf.d and determine file(s) to remove ls -al
- Remove each ####-app.conf (substitute the number for #### and URL name for app) file cd /etc/httpd/conf.d rm -rf 1001-owncloud.conf rm -rf 1002-owncloud1.conf rm -rf 1003-owncloud2.conf rm -rf 1004-owncloud3.conf
- Then as root user, restart apache sysemctl restart httpd
- Next, navigate to /var/hda/web-apps cd /var/hda/web-apps
- Remove each app directory rm -rf owncloud rm -rf owncloud1 rm -rf owncloud2 rm -rf owncloud3
- Finally check the HDA database hda_production (webapps table).
- Look to see if there is an entry for each app that failed to install correctly.
- Remove the row(s) that exist for the app (i.e. id 4, 5, 6, and 7)
- EXAMPLE
MariaDB [hda_production]> select id,name from webapps; +----+------------+ | id | name | +----+------------+ | 1 | phpsysinfo | | 4 | owncloud | | 5 | owncloud1 | | 6 | owncloud2 | | 7 | owncloud3 | +----+------------+ 5 rows in set (0.00 sec)
The safest way is to use a web application such as Adminer or phpMyAdmin. TO do it via command line, execute the command below for each id' that needs to be deleted from the database:
echo "delete from webapps where id=2" | mysql -uroot -phda hda_production
Once these steps are complete, it should be safe to try and install the application. Monitor the /var/log/amahi-app-installer.log file for progress and errors via command line:
tail -f /var/log/amahi-app-installer.log
If the app continues to fail, recommend you seek professional assistance by submitting a bug report.