Autofcc
Från FBNwiki
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:
- Ubuntu 10.04 i386 (ASUS K70IO Laptop, Intel Dual Core T6600 2.2 Ghz, 4GB RAM, 500GB HD) /JQ
- Ubuntu 10.04 i386 (Acer AspireOne ZG8 Netbook, Intel Atom N270 1.60 Ghz, 2GB RAM, 250GB HD) /JQ
- Ubuntu 10.10 i386 (Virtuellt via VirtualBox version 3.2.10, 1GB RAM, 8GB HD) /JQ
- Mint 9 LXDE (IBM Thinkpad T41, Intel Pentium M 1.7Ghz, 1GB RAM, 60GB HD- Valde tar-installation för Ubuntu 10.10) /PA
- Ubuntu 10.04 i386 (Siemens ScaleoT, Intel Pentium4 3.4Ghz, 1GB RAM, tar-installation) /JS
- Ubuntu.se Remix 10.04.2 AMD64 på Desktop-USB-minne (ASUS K70IO Laptop, Intel Dual Core T6600 2.2 Ghz, 4GB RAM, 500GB HD) /JQ
- Ubuntu 11.04 i386 (Compaq Evo D310, Pentium4 2.5Ghz, 1.5GB RAM) /JS
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.
- Högerklicka och Spara länk som på denna länken.

- Spara autofcc.sh i din hemkatalog


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

- Klicka på fliken Rättigheter

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

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

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

- Klicka Ja om du vill fortsätta

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

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

- Vänta medan installationen genomförs

- Installationen är nu klar!

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

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

- Inloggningsrutan expanderar nedåt, klicka på Setup

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

- Logga in med dina inloggningsuppgifter

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

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)
- Ubuntustart script by Alin Andrei - http://www.webupd8.org/2010/04/what-to-do-after-fresh-ubuntu-install.html
- http://linux.byexamples.com/archives/259/a-complete-zenity-dialog-examples-1/
- http://www.freesoftwaremagazine.com/columns/more_fun_zenity_shell_script_gui_interactivity
- http://library.gnome.org/users/zenity/stable/
- http://www.thinkplexx.com/learn/howto/linux/packaging/dpkg-check-that-unix-package-is-installed-example-install-package-if-not-present
- http://www.linuxformat.co.uk/forums/viewtopic.php?p=75881
- http://ubuntuforums.org
- Testare Per Andersson (Mint 9 LXDE)
- Testare Jörgen Stigberg (Ubuntu 10.04 LTS Ubuntu 11.04)
- Testare Ernie Karlsson (Ultimate Edition x64)
- Testare Mathias Friman (Ubuntu 10.04 LTS)
- Testare Lars Qvist (Ubuntu 10.10)
