Autofcc

Från FBNwiki

Hoppa till: navigering, sök
Autofcc.png

Innehåll

Automatiskt installationsskript för FirstClass Linux

Välkommen till wikisidan för skriptet Autofcc! OBS: Detta skript utvecklas inte längre då FC-klienten för Linux är i version 10 och inte finns för FirstClass 11. Nu finns istället Autofcc2.

Bakgrund

Under oktober 2010 släpptes Ubuntu 10.10 Maverick Meerkat där det visar sig att vissa tredjeparts programpaket inte går att installera, däribland deb-paketet för FirstClass. Detta beror antagligen på en bugg i aptdeamon (pakethanteraren) vilket är rapporterat här. Om man vill installera FirstClass Linuxklinent så måste man då packa upp ett alternativt paket av firstclass och installera detta genom terminalkommando vilket inte är helt enkelt, speciellt om man inte är van vid att använda det textbaserade gränsnittet. Därför fanns det behov för ett script för att installera!

Beskrivning

Detta shellskript laddar hem och installerar FirstClass klientprogram. Man kan även av-installera FirstClass med detta skript. Två olika typer av installation kan väljas; antingen från tar-paket (för Ubuntu 10.10) eller som deb-paket (för Ubuntu 10.04 och tidigare). Dessutom läggs en fcapps-fil till (används för att ange vilket program som ska öppna bilagor utifrån filens tilläggsnamn) som är anpassad till Ubuntus standardprogram.

Skriptet är tänkt att fungera så mycket som möjligt i det grafiska gränssnittet och använder sig av dialogrutor med hjälp av Zenity och enbart ett kommando krävs i terminal. Syftet med detta är för att "sänka tröskeln" för ovana användare som kanske känner sig osäkra att använda terminalen och att ge användaren en tydlig information och klara valmöjligheter om vad som görs och händer när skriptet körs.


Skriptet är testat framgångsrikt i dessa miljöer:

Skriptet är testat med problem i dessa miljöer:

  • Ubuntu 10.10 i386 (Acer 1410 2 GB Ram, Intel Celeron) Problem med att klienten hänger sig när bilagor öppnas /LQ - Troligtvis problem med filen fcapps? Kontrollera denna fil i hemmamappen "firstclass" och ersätt innehållet med det som finns i /opt/firstclass/fcapps /JQ
  • Ultimate edition x64 (orsak är troligtvis problem med libqt-mt.so i ett 64-bitarssystem. Manuell lösning i terminal efter man installerat fcc, delvis hämtat från http://ubuntuforums.org/showpost.php?p=9606819&postcount=10):
wget http://frozenfox.freehostia.com/cappy/getlibs-all.deb
sudo dpkg -i getlibs-all.deb
sudo getlibs /opt/firstclass/fcc

Instruktioner (Screenshots)

Innan du börjar: Du måste ha administrativa rättigheter i Ubuntu för att köra detta skript.

  1. Högerklicka och Spara länk somdenna länken.

    Autofcc pre01 spara1.png

  2. Spara autofcc.sh i din hemkatalog

    Autofcc pre02 hemkat.png

    Autofcc pre03 hemkat.png

  3. Högerklicka på den ledladdade filen och välj Egenskaper

    Autofcc pre04 egenskaper.png

  4. Klicka på fliken Rättigheter

    Autofcc pre05 flik rattigheter.png

  5. Bocka i "Tillåt köring av filen som ett program"

    Autofcc pre06 bock tillat kornig.png

  6. Tryck CTRL + ALT + T så att en terminal öppnar sig
  7. I terminalen skriv gksudo ./autofcc.sh och tryck enter, ange därefter ditt lösenord

    Autofcc00.png

  8. Välj i valmenyn om du vill installera eller ta bort

    Autofcc01.png

  9. Klicka Ja om du vill fortsätta

    Autofcc02.png

  10. Välj den server du vill ladda ner från

    Autofcc03.png

  11. Välj installationstyp - tänk på att DEB inte funkar i Ubuntu 10.10!

    Autofcc04.png

  12. Vänta medan installationen genomförs

    Autofcc05.png

  13. Installationen är nu klar!

    Autofcc06.png

  14. Gå in i Ubuntus program-menyn och starta FirstClass

    Autofcc07.png

  15. Klicka på den blå knappen med pilen i nedre vänstra hörnan vid Advanced

    Autofcc08.png

  16. Inloggningsrutan expanderar nedåt, klicka på Setup

    Autofcc09.png

  17. Fyll i fc.folkbildning.net i rutan Server och klicka på Save

    Autofcc10.png

  18. Logga in med dina inloggningsuppgifter

    Autofcc11.png

  19. Grattis! Du är nu inne på Folkbildningsnätet! :-)

    Autofcc12.png

Skriptets innehåll (Source)

#!/bin/sh 
# 
# Auto Installer FirstClass® client for Linux 
# http://sajtverkstan.net/FBNwiki/Autofcc 
# 
# Made for Folkbildning.net in October/November 2010 
# Mainly for Ubuntu 10.10 Maveric Meerkat 
# because of deb package install problems. 
# May work in other Linux distributions and 
# requires GTK+, Gnome, atp-get, dpkg etc. 
# 
# License: GPL >= V3 
# http://www.gnu.org/licenses/gpl.html 
# 
# You may not change or alter any portion of this comment or credits 
# of supporting developers from this source code or any supporting source code 
# which is considered copyrighted (c) material of the original comment or credit authors. 
# The author is not responsible if your system breaks. 
# 
# This program is distributed in the hope that it will be useful, 
# but WITHOUT ANY WARRANTY; without even the implied warranty of 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
# 
# Author: Jorgen Qvartsenklint <jorgen.qvartsenklint.glokala@folkbildning.net> 
# 
# FirstClass is a registered trademark of Open Text Corporation. 
# http://www.firstclass.com 
# 
# Script Version: 0.3 beta 
# Script Updated Date: 2011-03-07 
 
# Set up some var stuff 
AIFCL_VER="0.3 beta" 
FC_VER="10.009" 
INSTALL="Installera FirstClass® Linux Client $FC_VER (Eng)" 
FC_DEB="Installera från DEB-paket (Rekommenderas för Unbuntu 10.04 och tidigare)" 
FC_DEB_FILENAME="fcc-10.009-Linux.i686.deb" 
FC_ERROR="" 
FC_DOWNLOAD_SERVER_NAME_1="Folkbildningsnätet (folkbildning.net)" 
FC_DOWNLOAD_SERVER_URL_1="http://www.folkbildning.net/clientdownloads/" 
FC_DOWNLOAD_SERVER_NAME_2="FirstClass Sverige (firstclass.se)" 
FC_DOWNLOAD_SERVER_URL_2="http://www.firstclass.se/ClientDownloads/klienter/" 
FC_DOWNLOAD_SERVER_NAME_3="FirstClass Canada (firstclass.com)" 
FC_DOWNLOAD_SERVER_URL_3="http://www3.firstclass.com/ClientDownloads/FC100ClientDownloadFiles/" 
FC_TARGZ="Installera från TAR.GZ-paket (Rekommenderas för Unbuntu 10.10!)" 
FC_TARGZ_FILENAME="fcc-10.009-Linux.i686.tar.bz2" 
FCAPPS_URL_FILE="http://sajtverkstan.net/FBNimage/download/fcapps" 
REMOVE="Ta bort FirstClass® Linux Client $FC_VER (Eng)" 
 
# This script needs to be run with sudo 
if [ $(id -u) -ne "0" ]; then 
	zenity --warning --text="Detta skript måste köras med administrativa rättigheter\!\n\n \ 
Öppna en terminal genom att trycka CTRL + ALT + T\n \ 
och skriv nedan kommando i terminalen:\n\n \ 
    gksudo ./autofcc.sh\n\n \ 
Kontrollera först att du är i rätt mapp (med cd mappnamn)." 
	exit 
fi 
 
# Take a check if there are other package apps running (thanks to Alin Andrei, http://www.webupd8.org) 
sleep 1 
for lock in synaptic update-manager software-center apt-get dpkg aptitude 
do 
if ps -U root -u root u | grep $lock | grep -v grep > /dev/null; then  
	zenity --warning --text="Installationen kan inte fortsätta.\nStäng $lock först och försök igen."; 
	exit 
fi 
done 
 
# Do a check if we have an active internet connection (thanks to Alin Andrei, http://www.webupd8.org) 
TESTCONNECTION="wget --tries=3 --timeout=15 www.google.com -O /tmp/testinternet &>/dev/null 2>&1" 
if [ $TESTCONNECTION != 0 ]; then 
	zenity --error --text="Det finns ingen Internetförbindelse. Kontrollera och försök igen." 
	exit 
else 
	echo "Internet - OK" 
fi 
 
# Let's make a option screen to the happy linux user 
AIFCLOPT=$(zenity  --list \ 
	--title="Auto Installer FirstClass® Linux v.$AIFCL_VER" \ 
	--text "Välkommen till installationsprogrammet för FirstClass Linux\!\n\nVälj vad du vill göra:" \ 
	--radiolist \ 
	--column "Val" \ 
	--column "Alternativ" \ 
	TRUE "$INSTALL" \ 
	FALSE "$REMOVE");  
if [ "$AIFCLOPT" = "" ]; then 
	zenity --error --text "Program avbrutet" 
	exit 
fi 
 
# Last chance to quit 
zenity --question --text "Är du säker på att du vill $AIFCLOPT ?"; GO=$? 
if [ "$GO" = "1" ]; then 
	if [ "$AIFCLOPT" = "$REMOVE" ]; then 
		zenity --warning --text "Avinstallation avbruten" 
	fi 
	if [ "$AIFCLOPT" = "$INSTALL" ]; then 
		zenity --warning --text "Installation avbruten" 
	fi 
	exit 
fi 
 
# Remove FCC 
if [ "$AIFCLOPT" = "$REMOVE" ]; then 
	# Check if FC deb package is there 
 	DEBCHK=$(dpkg-query -f'${Status}' --show fcc) 
 	if [ "$DEBCHK" = "install ok installed" ]; then 
		( 
		echo "# Kontrollerar om deb-paket finns" ; sleep 1 
		echo "# FirstClass deb-paket hittat" ; sleep 1 
		echo "# Kör apt-get remove fcc" ; sleep 1 
		sudo apt-get --force-yes --yes remove fcc 
		) | 
     		zenity --progress --pulsate --auto-close --title="Ta bort" --text="Söker paket" 
 		if [ "$?" = -1 ] ; then 
			zenity --warning --text="Borttagning av deb-paket avbruten\!" 
			exit 
        	fi 
		zenity --info --text "Borttagning av FirstClass som deb-paket klar\!" 
		exit 
	else 
		( 
		echo "# Kontrollerar om deb-paket finns" ; sleep 1 
		echo "# Inget FirstClass deb-paket hittat, kollar tar-installation..." ; sleep 1 
		) | 
		zenity --progress --pulsate --auto-close --title="Ta bort" --text="Söker paket" 
 		if [ "$?" = -1 ] ; then 
			zenity --error --text="Borttagning av deb-paket avbruten\!" 
			exit 
        	fi 
		# Check if fcc binary is there 
		if [ -f /opt/firstclass/fcc ] ; then 
			# Now delete fcc 
			( 
			sleep 1 
			echo "# Tar bort FirstClass programkatalog" ; sleep 1 
			sudo rm -rf /opt/firstclass 
			echo "# Tar bort FirstClass desktop-ikon" ; sleep 1 
			sudo rm -rf /usr/share/applications/fcc.desktop 
			) | 
			zenity --progress --pulsate --auto-close --title="fcc" --text="Hittade fcc. Tar bort..." 
 			if [ "$?" = -1 ] ; then 
				zenity --error --text="Borttagning av FirstClass avbruten\!" 
				exit 
        		fi 
	 
			zenity --info --text "Borttagning av FirstClass installerat från tar-arkiv klar\!" 
			exit 
 
		else 
			zenity --error --text "Hittade inte FirstClass\! Avslutar." 
			exit 
		fi 
	fi 
fi 
 
# Install FCC 
if [ "$AIFCLOPT" = "$INSTALL" ]; then 
	# Choose download server 
	PICK_SERVER=$(zenity  --list \ 
		--width=560 \ 
		--height=200 \ 
		--title="Server" \ 
		--text "Välj den server du vill ladda ner från:" \ 
		--radiolist \ 
		--column "Val" \ 
		--column "Alternativ" \ 
		TRUE "$FC_DOWNLOAD_SERVER_NAME_1" \ 
		FALSE "$FC_DOWNLOAD_SERVER_NAME_2" \ 
		FALSE "$FC_DOWNLOAD_SERVER_NAME_3"); 
	if [ "$PICK_SERVER" = "" ]; then 
		zenity --info --text "Program avbrutet" 
		exit 
	fi 
	# Choose install type 
	INSTALL_TYPE=$(zenity  --list \ 
		--width=560 \ 
		--height=200 \ 
		--title="Installationssätt" \ 
		--text "Välj hur du vill installera:" \ 
		--radiolist \ 
		--column "Val" \ 
		--column "Alternativ" \ 
		TRUE "$FC_TARGZ" \ 
		FALSE "$FC_DEB"); 
	if [ "$INSTALL_TYPE" = "" ]; then 
		zenity --info --text "Program avbrutet" 
		exit 
	fi 
	# Check if FC is there as a deb package 
	DEBCHK=$(dpkg-query -f'${Status}' --show fcc) 
 	if [ "$DEBCHK" = "install ok installed" ]; then 
		zenity --error --text "FirstClass är redan installerat som deb-paket\!" 
		exit 
	fi 
	# Check if FC is there as a binary 
	if [ -f /opt/firstclass/fcc ] ; then 
		zenity --error --text "FirstClass är redan installerat från tar-arkiv\!" 
		exit 
	fi 
	# Prepare download 
	if [ "$PICK_SERVER" = "$FC_DOWNLOAD_SERVER_NAME_1" ]; then 
		DL_SERVER=$FC_DOWNLOAD_SERVER_URL_1; 
	fi 
	if [ "$PICK_SERVER" = "$FC_DOWNLOAD_SERVER_NAME_2" ]; then 
		DL_SERVER=$FC_DOWNLOAD_SERVER_URL_2; 
	fi 
	if [ "$PICK_SERVER" = "$FC_DOWNLOAD_SERVER_NAME_3" ]; then 
		DL_SERVER=$FC_DOWNLOAD_SERVER_URL_3; 
	fi	 
	if [ "$INSTALL_TYPE" = "$FC_TARGZ" ]; then 
		DL_SERVER=$DL_SERVER$FC_TARGZ_FILENAME; 
	fi	 
	if [ "$INSTALL_TYPE" = "$FC_DEB" ]; then 
		DL_SERVER=$DL_SERVER$FC_DEB_FILENAME; 
	fi 
	# Create a temporary folder and download FirstClass 
	( 
	sleep 1 
	echo "# Skapar tillfällig nedladdningsmapp" ; sleep 1 
	mkdir /tmp/autofcc 
	echo "# Går till undermappen" ; sleep 1 
	cd /tmp/autofcc 
	echo "# Kör wget, nedladdning från $PICK_SERVER pågår..." ; sleep 1 
	wget $DL_SERVER 
	# Check if we got the file 
	if [ "$INSTALL_TYPE" = "$FC_TARGZ" ] ; then 
		if [ -f "$FC_TARGZ_FILENAME" ] ; then 
			echo "# $FC_TARGZ_FILENAME nerladdad" ; sleep 1 
		else 
			zenity --error --text="Kunde inte ladda ner $FC_TARGZ_FILENAME" 
			exit 
		fi 
	fi	 
	if [ "$INSTALL_TYPE" = "$FC_DEB" ] ; then 
		if [ -f "$FC_DEB_FILENAME" ] ; then 
			echo "# $FC_DEB_FILENAME nerladdad" ; sleep 1 
		else 
			zenity --error --text="Kunde inte ladda ner $FC_DEB_FILENAME" 
			exit 
		fi 
	fi 
 
	# Check if deb - install 
	if [ "$INSTALL_TYPE" = "$FC_DEB" ]; then 
		echo "# Kör dpkg på $FC_DEB_FILENAME" ; sleep 1 
		sudo dpkg -i $FC_DEB_FILENAME 
	fi 
	# Check if tar ball - install 
	if [ "$INSTALL_TYPE" = "$FC_TARGZ" ]; then 
		echo "# Flyttar tar-arkiv till fil-roten" ; sleep 1 
		sudo mv $FC_TARGZ_FILENAME / 
		echo "# Går till filsystems-roten" ; sleep 1 
		cd / 
		echo "# Packar upp $FC_TARGZ_FILENAME" ; sleep 1 
		sudo tar xvfj $FC_TARGZ_FILENAME 
		echo "# Uppdaterar atp-get" ; sleep 1 
		sudo apt-get --force-yes --yes update 
		echo "# Installerar eventuella extrapaket med apt-get" ; sleep 1 
		sudo apt-get --force-yes --yes install libqt3-mt libasound2 
		echo "# Städar bort tar-arkiv-fil i filsystems-roten" ; sleep 1 
		sudo rm $FC_TARGZ_FILENAME	 
	fi 
	# Get updated fcapps-file for Gnome/Ubuntu 
	echo "# Går till tillfällig undermapp" ; sleep 1 
	cd /tmp/autofcc 
	echo "# Laddar hem uppdaterad fcapps-fil" ; sleep 1 
	wget $FCAPPS_URL_FILE 
	# Check if we got the file 
	if [ -f "fcapps" ] ; then 
		echo "# fcapps nerladdad" ; sleep 1 
	else 
		zenity --error --text="Kunde inte ladda ner fcapps-fil" 
		exit 
	fi 
	echo "# Flyttar fcapps-fil till programkatalog" ; sleep 1 
	sudo mv fcapps /opt/firstclass/fcapps 
	# Check if we are in a x86_64 system - Thank's to Cappy (getlibs) http://ubuntuforums.org/showthread.php?t=474790 
	echo "# Kontrollerar ifall vi har ett 64-bitars system" ; sleep 1 
	architecture=`uname -m` 
	targetarch="x86" 
	if [ "$architecture" != "x86_64" ] && [ "$architecture" != "ia64" ]; then 
	    architecture="x86" 
	else 
	    architecture="x86_64" 
	fi 
	if [ "$architecture" = "x86_64" ]; then 
		echo "# Hittat 64-bitars system: hämtar getlibs" ; sleep 1 
		wget http://frozenfox.freehostia.com/cappy/getlibs 
		# Check if we got the file 
		if [ -f "getlibs" ] ; then 
		echo "# fcapps nerladdad" ; sleep 1 
		else 
			zenity --error --text="Kunde inte ladda ner getlibs från freehostia.com" 
			exit 
		fi 
		sudo chmod a+x getlibs 
		echo "# Uppdaterar atp-get och installerar ia32-libs och libqt3-mt" ; sleep 1 
		sudo apt-get --force-yes --yes update 
		sudo apt-get --force-yes --yes install ia32-libs libqt3-mt 
		echo "# Uppdaterar FCC för 64bit, vänta.... Om detta fönster är kvar efter 1 min så stäng det" ; sleep 1 
		sudo ./getlibs /opt/firstclass/fcc 
	else 
		echo "Hittade 32-bitars system: Fortsätter" ; sleep 1 
	fi 
	) | 
        zenity --progress --pulsate --auto-close --title="Installation" --text="Valt FirstClass-paket installeras." 
        if [ "$?" = -1 ] ; then 
                zenity --error --text="Installation avbruten" 
		exit 
        fi 
	zenity --info \ 
	--text "Installation slutförd\!\n \ 
För att starta FirstClass\n \ 
gå till meny\n \ 
Program -> Internet -> FirstClass Client" 
fi 
 
# Clean up and quit 
rm -rf /tmp/autofcc 
exit 

Kända problem (Knownbugs)

  • Problem med med getlib på 64-bitarssystem i slutfasen av installationen (?) gör att FCC kan hänga sig vid första starten. Workaround: Stäng fcc-processen och starta igen, alternativt kör getlib-installationen manuellt efter att Autofcc körts.
  • Problem med att öppna bilagor i Ubuntu 11.10 då FCC fryser när filen nästan är nerladdad och ska öppnas. Gäller både version 10.009 och 10.014. Workaround okänd.

Ladda ner (Download)

http://sajtverkstan.net/FBNimage/download/autofcc.sh

Historik (Changelog)

2011-03-07: Version 0.3 beta - lagt till automatisk kontroll och justering för 64-bitarssystem, plus justering av dependencies igen.

2010-11-23: Version 0.2 beta - uppdaterat apt-get dependencies att vara samma som deb-paketet vid tar-installation

2010-10-30: Version 0.1 alfa - första utkastet till Autofcc publicerad!

Önskemål (Features)

Skriv önskemål om Autofcc här:


Tack till och källor (Credits)


/Jörgen Q

Personliga verktyg