#!/bin/bash
########################################################################
#### Script Name: sm-lib-package-install
#### version: 3.4.37
#### Date: 2016-05-06
#### Copyright (C) Harald Hope 2005-2015
#### This program is free software; you can redistribute it and/or modify it under
#### the terms of the GNU General Public License as published by the Free Software
#### Foundation; either version 2 of the License, or (at your option) any later version.
#### 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. See the GNU General Public License for more details.
#### Get the full text of the GPL here:
#### http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#### Script Author: Harald Hope
#### This is a library file for smxi and cannot be run independently
#### Script URL: http://smxi.org/sm/sm-lib-package-install
#### Script SVN: http://code.google.com/p/smxi
#### Script Home page: http://techpatterns.com/forums/about736.html
########################################################################
DEFAULT_DM=''
########################################################################
#### FUNCTIONS
########################################################################
###---------------------------------------------------------------------
### utilities
###---------------------------------------------------------------------
# installs requested packages, 3 args: $1 type; $2 package; $3 optional for pre install
# procedures, full commands that is.
# installer also handles metapackage assignments
package_group_installer()
{
eval $LOGUS
local itemName=$2 packageName='' package='' packages=''
# select: default system/user set/wdm as default if nothing else, if kde, use kdm
# unless other default override is set
local dmUse=$( assign_display_manager $itemName )
local inxiDepends='coreutils gawk grep hostname pciutils procps'
local inxiXorg='mesa-utils x11-utils x11-xserver-utils'
local inxiRecommends='dmidecode file hddtemp iproute lm-sensors module-init-tools usbutils'
local pdfLight='epdfview' mlocate='mlocate' kioapt='kio-apt' kpdf='kpdf'
local karm='karm' ksvg='ksvg' katePlugins='kate-plugins' kpower='kpowersave'
local kmoon='kmoon' kickerApplets='kicker-applets' kdeAddonsKfile='kdeaddons-kfile-plugins'
local kdeMultimediaKfile='kdemultimedia-kfile-plugins'
local kdeBase='kdebase kdebase-kio-plugins kde-core kdelibs virtuoso-minimal'
local khelp='khelpcenter' kcolor='kcoloredit' plasmaWidgets=''
local qt4Config=''
local lxdeLMC='libmenu-cache0' lxdeMD='lxmenu-data' lxdeSE='lxsession-edit'
local lxdeIP='lxinput' lxdeM='lxmusic'
# note: these packages are not in every Debian level
if [ -z "$( check_package_status 'epdfview' )" ];then
pdfLight='xpdf'
fi
if [ -z "$( check_package_status "$mlocate" )" ];then
mlocate=''
fi
if [ "$2" == 'ms-core-fonts' ];then
if [ -n "$( check_package_status 'ttf-mscorefonts-installer' 'c' )" ];then
itemName='ttf-mscorefonts-installer'
elif [ -n "$( check_package_status 'msttcorefonts' 'c' )" ];then
itemName='msttcorefonts'
else
itemName='NA'
fi
fi
# handle incoming changes to kde as well
if [ -n "$( grep -i 'kde' <<< $2 )" ];then
if [ "$dmUse" == 'kdm' ];then
dmUse=''
fi
if [ -n "$( check_package_status 'kde-plasma-desktop' )" ];then
karm='ktimetracker'
katePlugins=''
kcolor='kcolorchooser'
kdeAddonsKfile=''
kdeBase='kde-plasma-desktop kaboom upower udisks polkit-kde-1 powerdevil'
kdeMultimediaKfile=''
khelp='khelpcenter'
kickerApplets=''
kioapt=''
kmoon=''
kpdf='okular okular-extra-backends'
kpower=''
ksvg=''
# plasma-widgets-workspace NOT in kde 5
plasmaWidgets='plasma-widgets-addons plasma-widgets-workspace'
qt4Config='qt4-qtconfig'
fi
fi
if [ -n "$( grep -i 'lxde' <<< $2 )" ];then
if [ -z "$( check_package_status $lxdeSE )" ];then
lxdeLMC=''
lxdeMD=''
lxdeSE=''
lxdeIP=''
lxdeM=''
fi
fi
# set these to null to avoid installing the desktop gunk unless needed
if [ "$dmUse" == 'kdm' -a -n "$( check_package_status 'kdm' 'i' )" ];then
dmUse=''
elif [ "$dmUse" == 'gdm' ];then
if [ -n "$( check_package_status 'gdm' 'i' )" -o -n "$( check_package_status 'gdm3' 'i' )" ];then
dmUse=''
elif [ -n "$( check_package_status 'gdm3' 'c' )" ];then
dmUse='gdm3'
fi
fi
# package groups, console stuff first so it's included in following
# apache/php/mysql
local apache2Main='apache2-mpm-prefork apache2-utils'
local apache2ModPerl='libapache2-mod-perl2'
local apache2ModPhp5='libapache2-mod-php5'
local apache2ModPython='libapache2-mod-python'
local apache2ModRuby='libapache2-mod-ruby'
local apacheRapache='rapache'
local mysql5Client='' # set these below
local mysql5Server=''
local mysqlTop='mytop mtop'
local php5Modules='php5-curl php5-gd'
local php5Mysql='php5-mysql'
local php5Postgre='php5-pgsql'
# handle different distro mysql package availability
if [ "$2" == 'mysql5-server' ];then
if [ -n "$( check_package_status 'mysql-server-5.7' 'c' )" ];then
mysql5Server='mysql-server-5.7'
elif [ -n "$( check_package_status 'mysql-server-5.6' 'c' )" ];then
mysql5Server='mysql-server-5.6'
elif [ -n "$( check_package_status 'mysql-server-5.5' 'c' )" ];then
mysql5Server='mysql-server-5.5'
elif [ -n "$( check_package_status 'mysql-server-5.4' 'c' )" ];then
mysql5Server='mysql-server-5.4'
elif [ -n "$( check_package_status 'mysql-server-5.3' 'c' )" ];then
mysql5Server='mysql-server-5.3'
elif [ -n "$( check_package_status 'mysql-server-5.2' 'c' )" ];then
mysql5Server='mysql-server-5.2'
elif [ -n "$( check_package_status 'mysql-server-5.1' 'c' )" ];then
mysql5Server='mysql-server-5.1'
elif [ -n "$( check_package_status 'mysql-server-5.0' 'c' )" ];then
mysql5Server='mysql-server-5.0'
else # just put in metapackage
mysql5Server='mysql-server'
fi
fi
if [ "$2" == 'mysql5-client' ];then
if [ -n "$( check_package_status 'mysql-client-5.7' 'c' )" ];then
mysql5Client='mysql-client-5.7'
elif [ -n "$( check_package_status 'mysql-client-5.6' 'c' )" ];then
mysql5Client='mysql-client-5.6'
elif [ -n "$( check_package_status 'mysql-client-5.5' 'c' )" ];then
mysql5Client='mysql-client-5.5'
elif [ -n "$( check_package_status 'mysql-client-5.4' 'c' )" ];then
mysql5Client='mysql-client-5.4'
elif [ -n "$( check_package_status 'mysql-client-5.3' 'c' )" ];then
mysql5Client='mysql-client-5.3'
elif [ -n "$( check_package_status 'mysql-client-5.2' 'c' )" ];then
mysql5Client='mysql-client-5.2'
elif [ -n "$( check_package_status 'mysql-client-5.1' 'c' )" ];then
mysql5Client='mysql-client-5.1'
elif [ -n "$( check_package_status 'mysql-client-5.0' 'c' )" ];then
mysql5Client='mysql-client-5.0'
else # just put in metapackage
mysql5Client='mysql-client'
fi
fi
# server/client packages/groups
local aTop='' iceDove='icedove' rdiff='rdiff-backup'
local alsaGroup='alsa-base alsa-utils'
if [ "$SERVER_CLIENT" == 'server' ];then
alsaGroup=''
aTop='atop'
iceDove=''
rdiff=''
fi
# standard groups
local sysvRcConf='sysv-rc-conf'
# starting upstart/systemd checks
if [ "$B_SYSTEMD" == 'true' ];then
sysvRcConf=''
fi
local consoleBrowsers='lynx links elinks links2 w3m'
local consoleTools="$aTop bc bzip2 ed htop irssi less nano gzip findutils mc $mlocate iproute p7zip-full p7zip-rar rcconf screen sysstat $sysvRcConf xz-utils zip unzip"
local baseLightPackages="$consoleBrowsers $consoleTools aterm dillo gpicview leafpad mc medit mousepad pcmanfm spacemanfm sudo vim xarchiver xchat xchat-common xfe xterm $pdfLight"
local ceniStuff="ifupdown libcurses-perl libcurses-ui-perl libexpect-perl libterm-readkey-perl udev wireless-tools wpasupplicant"
local fluxPackages="fluxbox fluxconf"
local fvwmCrystal="audacious audacious-plugins cdcd debhelper dpatch docbook-xsl fvwm fvwm-crystal fvwm-icons imagemagick mpd python python-support quodlibet rxvt-unicode rox-filer trayer xscreensaver"
local gnomeExtras="gnome-backgrounds gnome-extra-icons gnome-system-monitor gnome-netstatus-applet"
local gnomePackages="gnome-core"
if [ -n "$( grep -i 'gnome' <<< $2 )" ];then
if [ -n "$( check_package_status 'gnome-sytem-tools' 'c' )" ];then
gnomePackages="$gnomePackages gnome-sytem-tools"
fi
fi
local googleEarth='googleearth-package'
local kdeExtras="ark $karm $katePlugins $kcolor $kdeAddonsKfile $kdeMultimediaKfile kdemultimedia-kio-plugins $khelp $kickerApplets $kioapt kmenuedit kmix $kmoon knemo konq-plugins $kpower ksensors ksnapshot kuser $plasmaWidgets $qt4Config pulseaudio puvcontrol"
local kdePackages="$kdeBase konqueror konversation $kpdf $ksvg $dmUse kdm"
local kdepimPackages="akregator kmail $karm kontact korganizer kalarm"
local kofficePackages='koffice '
local lightOfficePackages="$pdfLight abiword abiword-plugins gnumeric gnumeric-plugins-extra"
local lxdePackages="$lxdeLMC lxappearance lxappearance-obconf lxde-core lxde-settings-daemon $lxdeMD lxrandr $lxdeSE lxterminal"
local lxdeExtras="$lxdeIP lxlauncher $lxdeM lxnm pcmanfm spacemanfm xfe"
local mozillaGroup="$iceDove iceweasel"
local openboxPackages="openbox obconf obmenu openbox-themes"
local rsyncGroup="rsync $rdiff"
local streamTuner='streamtuner2 streamripper'
local systemUtils="$alsaGroup acpid acpi-support anacron cpufrequtils dbus dbus-X11 gpm hal hddtemp hdparm lm-sensors lsb-core lsb-release iproute pmount powersaved sdparm udev"
# xfwm4 xfconf xfce4-panel thunar xfce4-utils gtk2-engines-xfce xfce4-session
# bad: xfce4-session xfce4-settings
local xfcePackages="gtk2-engines-xfce mousepad thunar-archive-plugin thunar-media-tags-plugin thunar-thumbnailers thunar-volman xfwm4 xfconf xfce4-panel thunar xfce4-session xfce4-settings xfce4-utils xfce4-terminal xfdesktop4 xfmedia xfce4-notify tango-icon-theme xfce4-mixer xfce4-volumed"
local xfceExtras="dillo gcolor2 light-locker lxterminal medit murrine-themes parole pcmanfm ristretto spacefm xfce4-datetime-plugin xfce4-goodies xfce4-indicator-plugin xfce4-power-manager xfce4-power-manager-plugins xfce4-pulseaudio-plugin xfce4-screenshooter xfce4-weather-plugin xfe xfwm4-themes "
local xorgPackages='libgl1-mesa-dri libglu1-mesa libxfont1 libgl1-mesa-glx mesa-utils xbase-clients xkb-data xfonts-base xfonts-100dpi xfonts-75dpi xfonts-scalable xserver-xorg xserver-xorg-input-all xserver-xorg-video-all xterm xutils'
echo $LINE
echo "${S}Installing ${C}$itemName${S}...${N}"
# transfer meta packages to package installer variable
case $itemName in
## apache2/php/mysql
apache2-configuration)
packageName="$apacheRapache"
;;
apache2-server)
packageName="$apache2Main"
;;
apache2-mod-perl)
packageName="$apache2ModPerl"
;;
apache2-mod-php5)
packageName="$apache2ModPhp5"
;;
apache2-mod-python)
packageName="$apache2ModPython"
;;
apache2-mod-ruby)
packageName="$apache2ModRuby"
;;
mysql5-client)
packageName="$mysql5Client"
;;
mysql5-server)
packageName="$mysql5Server"
;;
mysql-top)
packageName="$mysqlTop"
;;
php5-modules)
packageName="$php5Modules"
;;
php5-mysql)
packageName="$php5Mysql"
;;
php5-postgre)
packageName="$php5Postgre"
;;
## main packages
base-light-packages)
packageName="$baseLightPackages"
;;
ceni-stuff)
packageName="$ceniStuff"
;;
console-browsers)
packageName="$consoleBrowsers"
;;
console-tools)
packageName="$consoleTools"
;;
fluxbox)
packageName="$fluxPackages $dmUse"
;;
base-plus-fluxbox)
packageName="$fluxPackages $xorgPackages $dmUse"
;;
fvwm-crystal)
packageName="$fvwmCrystal $dmUse"
;;
base-plus-fvwm-crystal)
packageName="$fvwmCrystal $xorgPackages $dmUse"
;;
gnome)
packageName="$gnomePackages $dmUse"
;;
base-plus-gnome)
packageName="$gnomePackages $xorgPackages $dmUse"
;;
gnome-extras)
packageName="$gnomeExtras"
;;
inxi-depends)
packageName="$inxiDepends"
;;
inxi-recommends)
packageName="$inxiRecommends"
;;
inxi-xorg)
packageName="$inxiXorg"
;;
kde)
packageName="$kdePackages $dmUse"
;;
base-plus-kde)
packageName="$kdePackages $xorgPackages $dmUse"
;;
kde-extras)
packageName="$kdeExtras"
;;
kde-pim)
packageName="$kdepimPackages"
;;
koffice)
packageName="$kofficePackages"
;;
light-office)
packageName="$lightOfficePackages"
;;
lxde)
packageName="$lxdePackages $dmUse"
;;
base-plus-lxde)
packageName="$lxdePackages $xorgPackages $dmUse"
;;
lxde-extras)
packageName="$lxdeExtras"
;;
mozilla-group)
packageName="$mozillaGroup"
;;
openbox)
packageName="$openboxPackages"
;;
rsync-group)
packageName="$rsyncGroup"
;;
streamtuner)
packageName="$streamTuner"
;;
system-utilities)
packageName="$systemUtils"
;;
xfce)
packageName="$xfcePackages $dmUse"
;;
base-plus-xfce)
packageName="$xfcePackages $xorgPackages $dmUse"
;;
xfce-extras)
packageName="$xfceExtras"
;;
xorg)
packageName="$xorgPackages $dmUse"
;;
google-earth)
packageName="$googleEarth"
;;
# default: just install the package of $2 directly
*)
packageName=$itemName
;;
esac
if [ "$packageName" != 'NA' ];then
if [ -n "$3" ];then
eval $3 # this removes stuff, or does other operations, first
fi
update_sources $1
# now to make sure no missing packages are attempted, we'll check
# and only install ones in user system apt. This also future proofs and
# avoids install errors.
log_function_data "Raw packageName list to install:\n$packageName"
echo $LINE
echo "${S}Checking install package list for availability now...${N}"
for package in $packageName
do
if [ -n "$( check_package_status $package 'c' )" ];then
echo "${S}Adding ${C}$package${S} to install group.${N}"
packages="$packages$package "
else
echo "${M}Sorry, ${C}$package${M} is not available in ${C}Debian $SYSTEM_BASE${M}!${N}"
fi
done
log_function_data "Tested package list to install:\n$packages"
if [ -n "$packages" ];then
package_installer "$packages" 'install-user-ok'
else
echo "${E}Sorry, no packages from your requested group: ${C}$itemName${E} are available for installation.${N}"
fi
else
echo "${E}Sorry, no packages from your requested group: ${C}$2${E} are available for installation.${N}"
fi
eval $LOGUE
}
# args: $1 packages to be installed
set_server_client()
{
eval $LOGUS
local opt='' options='' repeat='' defaultString='default client setting'
if [ -n "$SERVER_CLIENT" ];then
defaultString="your current selection: ${C}$SERVER_CLIENT${S}"
fi
echo $MLINE
echo "${M}System Type Selector"
echo $MLINE
echo "${S}Please select which system type you are installing. Your choice will"
echo "determine some package group items in ${C}Package Install${S}."
echo
echo "You can change this setting any time by just returning to the main"
echo "package install menu and picking this option again."
echo $MLINE
echo "${C}1 - client${S} Default, everything included."
echo "${C}2 - server${S} Skips Alsa, Thunderbird, rsync-backup if you install those groups."
echo "${C}3 - skip-return-to-menu${S} Leave things alone, use $defaultString."
echo $LINE
echo -e $SLE
echo $LINE
options="client server skip-return-to-menu"
select opt in $options
do
log_function_data "opt selected: $opt"
case $opt in
client|server)
echo "${S}Package install is now set to use: ${C}$opt${N}"
SERVER_CLIENT=$opt
;;
skip-return-to-menu)
echo "${S}Ok, using $defaultString - not changing anything.${N}"
;;
*)
print_error opt
repeat='true'
;;
esac
break
done
eval $LOGUE
if [ "$repeat" == 'true' ];then
set_server_client
fi
}
###---------------------------------------------------------------------
### main package install group selectors
###---------------------------------------------------------------------
# main selector, pick which package group type to install
select_install_type()
{
eval $LOGMS
local repeat='' options='' opt=''
local officeString='LibreOffice'
if [ "$OFFICE_AVAILABLE" == 'ooo' ];then
officeString='OpenOffice.org'
fi
print_lib_info $LIB_PACKAGE_INSTALL
echo $MLINE
echo "${S}The following sections will be expanded over time, but these are your "
echo "current Package Install options (apt sources updated where needed):"
if [ -n "$SERVER_CLIENT" ];then
echo
echo "${M}You are using the following install type: ${C}$SERVER_CLIENT"
fi
echo $LINE
echo "${C}1${S} - ${C}office${S} Features $officeString installer. Language pack selector."
echo " Now also offers $officeString hold/install/update option as well."
echo
echo "${C}2${S} - ${C}non-free${S} Flash plugin, Java plugin, MS core fonts, Opera, Skype, Google Earth, Google Chrome (with Flash)."
echo
echo "${C}3${S} - ${C}utilities${S} tools: console browsers, networking (ceni), swiftfox, inxi, and more."
echo
echo "${C}4${S} - ${C}desktop-environment${S} Install Xorg, Gnome, Kde, Xfce, fVwm Crystal, Lxde."
echo
echo "${C}5${S} - ${C}servers${S} Install Samba, NFS, and Apache2 (+MySql,PHP) server components."
echo
echo "${C}6${S} - ${C}select-system-type${S} Set client/server system type flag. This will remove"
echo " or add a few items from package groups depending on your selection. Most people"
echo " can skip this, but if you're setting up a server, you might want to set this flag."
echo
echo "${C}7${S} - ${C}back-to-main-menu${S}"
echo $LINE
echo -e $SLE
echo $LINE
options="office non-free utilities desktop-environment servers select-system-type back-to-main-menu"
select opt in $options
do
case $opt in
office)
office_installer
repeat='true'
;;
non-free)
non_free_installer
repeat='true'
;;
utilities)
utilities_installer
repeat='true'
;;
desktop-environment)
desktop_environment_installer
repeat='true'
;;
servers)
server_group_selector
repeat='true'
;;
select-system-type)
set_server_client
repeat='true'
;;
back-to-main-menu)
echo "${S}Thanks for checking out the Package Installer.${N}"
;;
*)
print_error opt
repeat='true'
;;
esac
break
done
eval $LOGME
if [ "$repeat" == 'true' ];then
select_install_type
fi
}
# install office suites, languages packs, etc
office_installer()
{
eval $LOGPS
local repeat='' options='' opt=''
local officeString='LibreOffice' officeOpt='libreoffice'
local installedOfficeString='LibreOffice' installedOfficeOpt='libreoffice'
if [ "$OFFICE_AVAILABLE" == 'ooo' ];then
officeString='OpenOffice.org'
officeOpt='openoffice.org'
fi
if [ "$OFFICE_INSTALLED" == 'ooo' ] || [ "$OFFICE_AVAILABLE" == 'ooo' -a -z "$OFFICE_INSTALLED" ];then
installedOfficeString='OpenOffice.org'
installedOfficeOpt='openoffice.org'
fi
echo $MLINE
echo "${M} Office Installer"
echo $MLINE
echo "${S}Pick which free office suite you would like to install:"
echo $LINE
echo "${C}1${S} - ${C}$officeOpt${S} Installs all components of $officeString, and also lets"
echo " You choose your $officeString language packs and dictionaries, when available."
echo "${C}2${S} - ${C}$installedOfficeOpt-hold-install${S} Change dpkg install status to ${C}hold/install${S}, or update to"
echo " latest if ${C}$installedOfficeString${S} is already installed."
echo
echo "${C}3${S} - ${C}koffice${S} Installs the main koffice components."
echo "${C}4${S} - ${C}kde-pim${S} Installs the kpim components. That's personal information"
echo " manager stuff: ${C}kdepim karm kontact korganizer kalarm"
echo
echo "${C}5${S} - ${C}light-office${S} gtk based lightweight office tools: abiword, gnumeric, extras"
echo
echo "${C}6${S} - ${C}back-to-install-menu${S}"
echo $LINE
echo -e $SLE
echo $LINE
options="$officeOpt $installedOfficeOpt-hold-install koffice kde-pim light-office back-to-install-menu"
select opt in $options
do
case $opt in
$officeOpt)
update_sources plain
install_libre_open_office
repeat='true'
;;
$installedOfficeOpt-hold-install)
run_script_import $LIB_MISC_TWEAKS
open_libre_office_hold_install
repeat='true'
;;
koffice)
package_group_installer plain koffice
repeat='true'
;;
kde-pim)
package_group_installer plain kde-pim
repeat='true'
;;
light-office)
package_group_installer plain light-office
repeat='true'
;;
back-to-install-menu)
: # echo "${S}Thanks for checking out the Package Installer.${N}"
;;
*)
print_error opt
repeat='true'
;;
esac
break
done
eval $LOGPE
if [ "$repeat" == 'true' ];then
office_installer
fi
}
# main selector, pick which package group type to install
non_free_installer()
{
eval $LOGPS
local repeat='' options='' opt='' gge64=''
if [ "$BITS" == "64" ];then
# gge64="\n${C}googleearth${M} install is not currently supported for ${C}64 bit${M}, sorry."
:
fi
echo $MLINE
echo "${M} Non Free Software Installer"
echo $MLINE
echo "${S}Non-free software options. Check out the Free versions too.:"
echo $LINE
echo "${C}1${S} - ${C}Opera${S} One of the better Non Free packages here. Web browser."
echo " Will add opera.com sources to your ${C}$EAS${S}."
echo "${C}2${S} - ${C}update-opera-keyrings${S} Update to latest keyrings from Opera."
echo "${C}3${S} - ${C}Google Chrome (stable)${S} Stable, ie, long term release, version of Chrome. Web browser."
echo " Will add google.com sources to your ${C}$EAS${S}. Includes current Flash player built in."
echo " Note: this is the official Google release, with its phone home features."
echo "${C}4${S} - ${C}Google Chrome (unstable)${S} Unstable, ie, latest, version of Chrome. Web browser."
echo " Will add google.com sources to your ${C}$EAS${S}. Includes current Flash player built in."
echo " Note: this is the official Google release, with its phone home features."
echo "${C}5${S} - ${C}update-chrome-keyrings${S} Update to latest keyrings from Google Chrome."
echo "${C}6${S} - ${C}flash${S} Installs the flash plugin, for use by all browsers."
echo " Check out the new FSF gnash player for the Free Software version flash player."
echo "${C}7${S} - ${C}java-plugin${S} Installs the Java plugin and jre, for use by all browsers."
echo " Depending on your system, this will either be the ${C}Oracle/Sun${S} version or ${C}icedtea-plugin${S}"
echo "${C}8${S} - ${C}ms-core-fonts${S} Installs the basic set of Microsoft TrueType fonts, arial, times new roman, etc."
echo "${C}9${S} - ${C}skype${S} Installs Skype. Hate it or love it, here it is."
echo -e "${C}10${S} - ${C}google-earth${S} Installs google earth using Debian installer method.$gge64"
echo " ${M}NOTE: This is working again in at least Debian Sid, installs latest and it starts."
echo
echo "${C}11${S} - ${C}back-to-install-menu${S}"
echo $LINE
echo -e $SLE
echo $LINE
options="opera update-opera-keyrings google-chrome-stable google-chrome-unstable update-chrome-keyrings flash-plugin java-plugin ms-core-fonts skype google-earth back-to-install-menu"
select opt in $options
do
case $opt in
opera)
# sources update is called in following function
package_group_installer opera opera
repeat='true'
;;
update-opera-keyrings)
echo "${S}Updating Opera keyrings..."${N}
wget -O - http://deb.opera.com/archive.key | apt-key add -
repeat='true'
;;
flash-plugin)
# first we need to make sure that user system has non-free
update_to_nonfree_sources
# then test for sid version of flash
# start with newer pepperflash support tests
if [ -n "$( check_package_status 'browser-plugin-freshplayer-pepperflash' )" ];then
package_group_installer 'plain' 'browser-plugin-freshplayer-pepperflash pepperflashplugin-nonfree'
elif [ -n "$( check_package_status 'flashplugin-nonfree' )" ];then
package_group_installer 'plain' 'flashplugin-nonfree'
elif [ -n "$( check_package_status 'flashplayer-mozilla' )" ];then
package_group_installer 'plain' 'flashplayer-mozilla'
else
error_handler 'package-unavailable' $FUNCNAME 'flashplugin-nonfree/flashplayer-mozilla'
fi
repeat='true'
;;
google-chrome-stable)
package_group_installer 'google-chrome' 'google-chrome-stable'
;;
google-chrome-unstable)
package_group_installer 'google-chrome' 'google-chrome-unstable'
;;
update-chrome-keyrings)
echo "${S}Updating Google Chrome keyrings..."${N}
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
repeat='true'
;;
java-plugin)
java_plugin_installer
repeat='true'
;;
ms-core-fonts)
package_group_installer plain ms-core-fonts 'update_to_nonfree_sources'
repeat='true'
;;
skype)
reinstall_skype
repeat='true'
;;
google-earth)
install_google_earth
repeat='true'
;;
back-to-install-menu)
: # echo "${S}Thanks for checking out the Package Installer.${N}"
;;
*)
print_error opt
repeat='true'
;;
esac
break
done
eval $LOGPE
if [ "$repeat" == 'true' ];then
non_free_installer
fi
}
#katapult (personally) and kshutdown yakuake
# various utilities
# apt: install yakuake hardinfo lshw
utilities_installer()
{
eval $LOGPS
local repeat='' options='' opt=''
local systemUtils="alsa gpm dbus dbus-X11 hal hdparm hddtemp lm-sensors iproute pmount powersaved sdparm udev"
if [ "$SERVER_CLIENT" == 'server' ];then
systemUtils="gpm dbus dbus-X11 hal hdparm hddtemp lm-sensors iproute pmount powersaved sdparm udev"
fi
echo $MLINE
echo "${M} Utilities Installer"
echo $MLINE
echo "${S}A small, and to increase, collection of useful utilities you might not know about:"
echo $LINE
echo "${C}1${S} - ${C}console-tools${S} Wide range of useful console tools: sysv-rc-conf."
echo " (good runlevel editor), sysstat, htop, zip/bzip/gzip/p7zip, irssi (nice irc client)."
echo "${C}2${S} - ${C}console-browsers${S} Installs a full suite of console browsrs."
echo " Check it out, these are small, fast, and really pleasant. See how the non-gui side."
echo " Installs: ${C}lynx links elinks links2 w3m${S} (links2 is my favorite)"
echo " Hey, everyone has their favorite! See if you find one you like..."
echo "${C}3${S} - ${C}system-utilities${S} All the basics (plus related packages), and a few nice tools:"
echo " ${C}$systemUtils"
echo "${C}4${S} - ${C}swiftfox${S} Lets you pick from a list of ${C}swiftfox${S} versions that match your cpu type"
echo " for optimal performance. Will show your installed cpu so you can make the right choice."
echo "${C}5${S} - ${C}streamtuner${S} Installs ${C}streamtuner2 and streamripper${S}"
echo " These are convient tools to listen to audio streams, and record them."
echo
echo "${C}6${S} - ${C}captive-to-ntfs-3g${S} Replaces ${C}Captive${S} with ${C}ntfs-3g${S} for ntfs read/write on linux."
echo " Highly recommended if you dual boot with ntfs partitions and want to write to them."
echo "${C}7${S} - ${C}yakuake${S} Quake style terminal emulator for ${C}kde${S}."
# echo "${C}6${S} - ${C}kpowersave${S} Install ${C}kpowersave / powersaved${S}."
# echo " This will also remove completely all ${C}powernowd / apmd${S} components."
echo "${C}8${S} - ${C}h2-favorites${S} This will setup a machine with all the apps I like to use."
echo " Asks before installing each package group, so you can decide for yourself if you want each group."
#kshutdown - shutdown/reboot timer for kde
#katapult - alternative way of startings apps
echo "${C}9${S} - ${C}ceni-sid${S} Install ${C}ceni${S}, a good command line tool to setup wired and wireless networking."
echo " Install this version for current ${C}Debian Testing${S} and ${C}Unstable/Sid${S}."
echo "${C}10${S} - ${C}ceni-stable${S} Installs older version of Ceni for ${C}Debian Stable${S}."
echo "${C}11${S} - ${C}inxi${S} Install ${C}inxi${S} + all dependencies/recommends. Feature rich CLI sys info tool."
echo " If ${C}Konversation${S} is present, also creats link so you can run inxi directly: ${C}/inxi${S}"
echo " Runs once with full (${C}-F${S}) options when you install it. See ${C}inxi -h${S} for all options."
echo "${C}12${S} - ${C}rbxi${S} Download/install ${C}rbxi package${S}, the new rysnc/rdiff-backup tool."
echo " ${M}Note:${S} installs to: ${C}$SCRIPT_HOME${S}. Manual configuration required. For setup info, see:"
echo " ${C}$SCRIPT_HOME/rbxi-data/rbxi-values${S} and ${C}$SCRIPT_HOME/rbxi-data/readme-rbxi.htm${S}"
# echo " This will also remove completely all ${C}powernowd / apmd${S} components."
echo
echo "${C}13${S} - ${C}back-to-install-menu${S}"
echo $LINE
echo -e $SLE
echo $LINE
options="console-tools console-browsers system-utilities swiftfox streamtuner captive-to-ntfs-3g yakuake h2-favorites ceni-sid ceni-stable inxi rbxi back-to-install-menu"
select opt in $options
do
case $opt in
captive-to-ntfs-3g)
update_sources 'plain'
install_ntfs_3g
repeat='true'
;;
ceni-sid)
# package_group_installer plain ceni-stuff
install_ceni 'sid'
repeat='true'
;;
ceni-stable)
# package_group_installer plain ceni-stuff
install_ceni 'stable'
repeat='true'
;;
console-tools)
package_group_installer 'plain' 'console-tools'
repeat='true'
;;
console-browsers)
package_group_installer 'plain' 'console-browsers'
repeat='true'
;;
h2-favorites)
h2_faves
repeat='true'
;;
inxi)
inxi_installer
repeat='true'
;;
kpowersave)
update_sources 'plain'
install_kpowersave
repeat='true'
;;
rbxi)
package_group_installer 'plain' 'bzip2 rsync'
update_all_scripts 'rbxi' 'internal'
repeat='true'
;;
streamtuner)
package_group_installer 'plain' 'streamtuner'
repeat='true'
;;
swiftfox)
swiftfox_installer
repeat='true'
;;
system-utilities)
package_group_installer 'plain' 'system-utilities'
repeat='true'
;;
yakuake)
package_group_installer 'plain' 'yakuake'
repeat='true'
;;
back-to-install-menu)
: # echo "${S}Thanks for checking out the Package Installer.${N}"
;;
*)
print_error opt
repeat='true'
;;
esac
break
done
eval $LOGPE
if [ "$repeat" == 'true' ];then
utilities_installer
fi
}
desktop_environment_installer()
{
eval $LOGPS
local displayManager=$( get_default_display_manager )
local repeat='' options='' opt=''
local xorgPackages=''
if [ -z "$displayManager" ];then
displayManager='none detected'
fi
echo $MLINE
echo "${M} Desktop Environment Installer"
echo $MLINE
echo "${S}Get started if you're building this from nothing at all, or just add some extras."
echo "${M}Recommendation:${S} if you are starting from no desktop installed, use the ${C}full${S} option."
echo "If you have ${C}xorg${S} already installed, then the standard is probably fine."
echo
if [ -z "$DEFAULT_DM" ];then
echo "Note: Use option ${C}1${S} first if you have a preference and have no display manager installed."
echo "If you do not run ${C}1${S} prior to creating your desktop, it will default to use ${C}wdm${S} if you"
echo "currently have no display manager. Your current default is: ${C}$displayManager${S}"
echo "(The display manager is the login screen you see when starting up your desktop)"
echo
echo "Note: kde defaults to use ${C}kdm${S} if you have no current default and you have not"
echo "picked an alternate in ${C}1${S}."
else
echo "${S}You have chosen to use this display manager: ${C}$DEFAULT_DM${S}"
fi
echo $LINE
echo "${C}1${S} - ${C}select-display-manager${S} Select an alternate display manager to use"
echo "${C}2${S} - ${C}base-light-packages${S} Installs basic light apps for light desktops"
echo " (xchat, leafpad, pcmanfm, etc). No gtk/qt apps."
echo "${C}3${S} - ${C}system-utilities${S} Make sure you have it in: hal/udev alsa gpm."
echo "${C}4${S} - ${C}xorg${S} All the xorg pieces you need to get up and running."
echo "${C}5${S} - ${C}base-plus-xorg${S} xorg + system-utilities + wdm if kdm/gdm not present."
echo "${C}6${S} - ${C}fluxbox${S} Installs lightweight window manager. Good for old hardware."
echo "${C}7${S} - ${C}base-plus-fluxbox${S} fluxbox + xorg + system utitilies/base light packages + display manager."
echo "${C}8${S} - ${C}fvwm-crystal${S} Installs lightweight window manager."
echo "${C}9${S} - ${C}base-plus-fvwm-crystal${S} fvwm-crystal + xorg + system utitilies/base light packages + display manager."
echo "${C}10${S} - ${C}gnome${S} Base packages for gnome desktop + gnome-applets, konversation, konqueror."
echo "${C}11${S} - ${C}base-plus-gnome${S} gnome + xorg + system utitilies + gdm (if no dm installed)."
echo "${C}12${S} - ${C}gnome-extras${S} Installs extras like gnome-backgrounds, gnome-extra-icons, etc."
echo "${C}13${S} - ${C}kde${S} Base packages for kde desktop + kpdf/okular, konversation, konqueror."
echo "${C}14${S} - ${C}base-plus-kde${S} kde + xorg + system utitilies + kdm (if no dm installed)."
echo "${C}15${S} - ${C}kde-extras${S} Installs extras like konq-plugins, color picker, ark, knemo, kmix, etc."
echo " This also installs pulseaudio, which is needed for kde sound."
echo "${C}16${S} - ${C}kde-pim${S} akregator, karm/ktimetracker, kontact, korganizer, kalarm."
echo "${C}17${S} - ${C}lxde${S} Installs popular new lightweight window manager. Good for old hardware."
echo "${C}18${S} - ${C}base-plus-lxde${S} lxde + xorg + system utitilies/base light packages + display manager."
echo "${C}19${S} - ${C}lxde-extras${S} Installs extras like lxnm, lxlauncher, lxmusic, etc (if available)."
echo "${C}20${S} - ${C}openbox${S} Installs lightweight window manager. Also adds openbox/kde or "
echo " openbox/gnome option in gdm/kdm which lets you run a lighter weight version of those desktops."
echo "${C}21${S} - ${C}xfce${S} A really pleasant, light weight but not light featured display manager. Uses gdm."
echo "${C}22${S} - ${C}base-plus-xfce${S} xfce + xorg + system utitilies/base light packages + gdm if kdm/gdm not present."
echo "${C}23${S} - ${C}xfce-extras${S} A good collection of the basic packages you want to have a complete XFCE desktop."
echo "${C}23${S} - ${C}back-to-install-menu${S}"
echo $LINE
echo -e $SLE
echo $LINE
options="select-display-manager base-light-packages system-utilities xorg base-plus-xorg fluxbox base-plus-fluxbox fvwm-crystal base-plus-fvwm-crystal gnome base-plus-gnome gnome-extras kde base-plus-kde kde-extras kde-pim lxde base-plus-lxde lxde-extras openbox xfce base-plus-xfce xfce-extras back-to-install-menu"
select opt in $options
do
case $opt in
base-light-packages)
package_group_installer 'plain' 'base-light-packages'
repeat='true'
;;
fluxbox)
package_group_installer 'plain' 'fluxbox'
repeat='true'
;;
base-plus-fluxbox)
package_group_installer 'plain' 'base-plus-fluxbox'
package_group_installer 'plain' 'system-utilities'
package_group_installer 'plain' 'base-light-packages'
repeat='true'
;;
fvwm-crystal)
package_group_installer 'plain' 'fvwm-crystal'
repeat='true'
;;
base-plus-fvwm-crystal)
package_group_installer 'plain' 'base-plus-fvwm-crystal'
package_group_installer 'plain' 'system-utilities'
package_group_installer 'plain' 'base-light-packages'
repeat='true'
;;
gnome)
package_group_installer 'plain' 'gnome'
repeat='true'
;;
base-plus-gnome)
package_group_installer 'plain' 'base-plus-gnome'
package_group_installer 'plain' 'system-utilities'
repeat='true'
;;
gnome-extras)
package_group_installer 'plain' 'gnome-extras'
repeat='true'
;;
kde)
package_group_installer 'plain' 'kde'
repeat='true'
;;
base-plus-kde)
package_group_installer 'plain' 'base-plus-kde'
package_group_installer 'plain' 'system-utilities'
repeat='true'
;;
kde-extras)
package_group_installer 'plain' 'kde-extras'
repeat='true'
;;
kde-pim)
package_group_installer 'plain' 'kde-pim'
repeat='true'
;;
lxde)
package_group_installer 'plain' 'lxde'
repeat='true'
;;
base-plus-lxde)
package_group_installer 'plain' 'base-plus-lxde'
package_group_installer 'plain' 'system-utilities'
package_group_installer 'plain' 'base-light-packages'
repeat='true'
;;
lxde-extras)
package_group_installer 'plain' 'lxde-extras'
repeat='true'
;;
openbox)
package_group_installer 'plain' 'openbox'
repeat='true'
;;
select-display-manager)
select_display_manager
repeat='true'
;;
system-utilities)
package_group_installer 'plain' 'system-utilities'
repeat='true'
;;
xfce)
package_group_installer 'plain' 'xfce'
repeat='true'
;;
base-plus-xfce)
package_group_installer 'plain' 'base-plus-xfce'
package_group_installer 'plain' 'system-utilities'
package_group_installer 'plain' 'base-light-packages'
repeat='true'
;;
xfce-extras)
package_group_installer 'plain' 'xfce-extras'
repeat='true'
;;
xorg)
package_group_installer 'plain' 'xorg'
repeat='true'
;;
base-plus-xorg)
package_group_installer 'plain' 'xorg'
package_group_installer 'plain' 'system-utilities'
repeat='true'
;;
back-to-install-menu)
: # echo "${S}Thanks for checking out the Package Installer.${N}"
;;
*)
print_error opt
repeat='true'
;;
esac
break
done
eval $LOGPE
if [ "$repeat" == 'true' ];then
desktop_environment_installer
fi
}
select_display_manager()
{
eval $LOGPS
local displayManager=$( get_default_display_manager )
local repeat='' options='gdm kdm xdm entrance lightdm nodm slim wdm back-to-desktop-install' opt=''
echo $MLINE
echo "${M}Display Manager Selector"
echo $MLINE
if [ -z "$displayManager" ];then
displayManager='none detected'
echo "Please select from the following list. Note that non gdm/kdm display managers "
echo "sometimes require extra configurations to allow user shutdown from desktop."
echo "Your current default is: ${C}$displayManager${S}"
echo $LINE
echo "${C}1 - gdm${S} Default display / login manager for gnome."
echo "Will install gdm3 if present, otherwise installs gdm regular."
echo "${C}2 - kdm${S} Default display / login manager for kde."
echo "${C}3 - xdm${S} Default display / login manager for X11/xorg (very plain and basic)."
echo " For non gnome/kde desktops."
echo "${C}4 - entrance${S} Alternate display / login manager for non kde/gnome desktops."
echo "${C}5 - lightdm${S} As name indicates, a light display manager."
echo "${C}6 - nodm${S} Contrary to name, it is in fact a light display manager."
echo "${C}7 - slim${S} Alternate display / login manager for non kde/gnome desktops."
echo " Very light weight, thus the name. Also unreliable, not recommended."
echo "${C}8 - wdm${S} Alternate display / login manager for non kde/gnome desktops."
echo $LINE
echo -e $SLE
echo $LINE
select opt in $options
do
case $opt in
entrance|gdm|kdm|lightdm|nodm|sddm|slim|wdm|xdm)
# note: slim is not in every Debian level
if [ "$opt" == 'gdm' -a -n "$( check_package_status "gdm3" 'c' )" ] || \
[ -n "$( check_package_status "$opt" 'c' )" ];then
echo "${S}Your default display manager for your desktop install is now: ${C}$opt${N}"
DEFAULT_DM=$opt
else
echo "${E}The display manager ${C}$opt${E} is not currently in your Debian branch."
echo "Please select another one.${N}"
repeat='true'
fi
log_function_data "DEFAULT_DM: $DEFAULT_DM"
print_hec
;;
back-to-desktop-install)
echo "${S}Returning to desktop selections...${N}"
;;
*)
print_error opt
repeat='true'
;;
esac
break
done
eval $LOGPE
if [ "$repeat" == 'true' ];then
select_display_manager
fi
else
echo "${S}Your system already has a default display manager: ${C}$displayManager${N}"
print_hec
eval $LOGPE
fi
}
# returns proper dm to use in installer function
# args: $1 - item from package group installer
assign_display_manager()
{
eval $LOGUS
local displayManager=$( get_default_display_manager )
local itemName=$1
if [ -z "$displayManager" ];then
# assign the user set one
if [ -n "$DEFAULT_DM" ];then
displayManager=$DEFAULT_DM
else
case $itemName in
kde|base-plus-kde)
if [ -n "$( check_package_status "gdm3" 'c' )" ];then
displayManager='kdm'
else
displayManager='sddm'
fi
;;
gnome|base-plus-gnome)
displayManager='gdm'
;;
xfce|base-plus-xfce)
displayManager='lightdm'
;;
*)
displayManager='wdm'
;;
esac
fi
fi
echo $displayManager
log_function_data "displayManager: $displayManager"
eval $LOGUE
}
###---------------------------------------------------------------------
### package install stuff - office suites
###---------------------------------------------------------------------
install_libre_open_office()
{
eval $LOGPS
# data is this order: Note that we can offer alternate packs for various packages/langs
# note: no entry for en-us language pack since that's part of common
# LanguagePack:Hyphenation:Help:Thesaurus:myspell:<Language Name>
local officeData='
af:af:af:af:af:Afrikaans
ar:ar:ar:ar:ar:Arabic
be-by:be-by:be-by:be-by:be-by:Belarussian
bg:bg:bg:bg:bg:Bulgarian
bn:bn:bn:bn:bn:Bengali
br:br:br:br:br:Breton
bs:bs:bs:bs:bs:Bosnian
ca:ca:ca:ca:ca:Catalan
cs:cs:cs:cs:cs-cz:Czech
cy:cy:cy:cy:cy:Welsh
da:da:da:da:da:Danish
de:de:de:de:de-de:German
el:el:el:el:el-gr:Greek
en-gb:en-gb:en-gb:en-gb:en-gb:English_british
en-us:en-us:en-us:en-us:en-us:English_american
en-za:en-za:en-za:en-za:en-za:English_southafrican
es:es:es:es:es:Spanish
et:et:et:et:et:Estonian
fa:fa:fa:fa:fa:Farsi
fi:fi:fi:fi:fi:Finnish
fr:fr:fr:fr:fr:French
ga:ga:ga:ga:ga:Gaelic
gl:gl:gl:gl:gl:Galician
gu:gu:gu:gu:gu:Gujarati
he:he:he:he:he:Hebrew
hi:hi:hi:hi:hi:Hindi
hr:hr:hr:hr:hr:Croatian
hu:hu:hu:hu:hu:Hungarian
it:it:it:it:it:Italian
ja:ja:ja:ja:ja:Japanese
ka:ka:ka:ka:ka:Georgian
km:km:km:km:km:Khmer
ko:ko:ko:ko:ko:Korean
ku:ku:ku:ku:ku:Kurdish
lo:lo:lo:lo:lo:Lao
lt:lt:lt:lt:lt:Lithuanian
lv:lv:lv:lv:lv:Latvian
mk:mk:mk:mk:mk:Macedonian
ml:ml:ml:ml:ml:Malayalam
nb:nb:nb:nb:nb:Norwegian_bokmaal
nn:nn:nn:nn:nn:Norwegian_nynorsk
ne:ne:ne:ne:ne:Nepalese
nl:nl:nl:nl:nl:Dutch
nr:nr:nr:nr:nr:Ndebele
pa-in:pa-in:pa-in:pa-in:pa-in:Punjabi
pl:pl:pl:pl:pl:Polish
pt:pt:pt:pt:pt-pt:Portuguese
pt-br:pt-br:pt-br:pt-br:pt-br:Portuguese_brazilian
ru:ru:ru:ru:ru:Russian
rw:rw:rw:rw:rw:Kinarwanda
sk:sk:sk:sk:sk:Slovak
sl:sl:sl:sl:sl:Slovenian
sr-cs:sr-cs:sr-cs:sr-cs:sr-cs:Serbian
st:st:st:st:st:Southern_sotho
sv:sv:sv:sv:sv-se:Swedish
ta:ta:ta:ta:ta:Tamil
te:te:te:te:te:Telugu
tg:tg:tg:tg:tg:Tajik
th:th:th:th:th:Thai
ti-er:ti-er:ti-er:ti-er:ti-er:Tigrinya
tn:tn:tn:tn:tn:Tswana
tr:tr:tr:tr:tr:Turkish
ts:ts:ts:ts:ts:Tsonga
vi:vi:vi:vi:vi:Vietnamese
xh:xh:xh:xh:xh:Xhosa
zh-cn:zh-cn:zh-cn:zh-cn:zh-cn:Chinese_simplified
zh-tw:zh-tw:zh-tw:zh-tw:zh-tw:Chinese_traditional
zu:zu:zu:zu:zu:Zulu
no-change'
local officeLanguages='' l='' ll='' language='' lang=''
local officeLang='' officeHyph='' officeHelp='' officeThesaurus='' officeDictionary='' officeDesktop=''
local doptions='' dopt='' complete='' options='' opt='' found='' skip=''
local officePrefix='libreoffice'
local officeString='LibreOffice'
local thesaurusPrefix='mythes'
local hyphenationPrefix='hyphen'
if [ "$OFFICE_AVAILABLE" == 'ooo' ];then
officePrefix='openoffice.org'
officeString='OpenOffice.org'
thesaurusPrefix='openoffice.org-thesaurus'
hyphenationPrefix='openoffice.org-hyphenation'
fi
# xxxoffice-gtk conflicts with this package
if [ -z "$( package_tester 'gtk-qt-engine' )" ];then
officeDesktop="$officePrefix-gtk"
fi
for l in $officeData
do
ll=$( echo $l | cut -d ':' -f 6 )
officeLanguages=$officeLanguages$ll' '
done
echo $MLINE
echo "${M}$officeString Installer"
echo $MLINE
echo "${S}You can pick which language information to use with your $officeString install."
echo "Once you make your selection, all required $officeString components will be installed."
echo
echo "When you select one of these your ${C}$officeString${S} install will use"
echo "any available language specific items for your chosen language, including"
echo "the language pack, help, thesaurus, and dictionaries."
if [ -n "$officeDesktop" ];then
echo "Also installs the desktop integration package: $officeDesktop"
fi
echo
echo "Select the number for ${C}no-change${S} if you want to return to main script."
echo $LINE
echo -e $SLE
echo $LINE
options=$officeLanguages
select opt in $options
do
for language in $officeData
do
if [ "$opt" == "$( echo $language | cut -d ':' -f 6 )" ];then
found='true'
if [ "$language" == 'no-change' ];then
skip='true'
else
echo "${S}Checking for packages for ${C}$opt${S} now...${N}"
lang=$( echo $language | cut -d ':' -f 1 )
officeLang="$officePrefix-l10n-$lang"
echo -n " ${C}$officeLang${S} status: "
if [ "$lang" != '' -a -n "$( check_package_status "$officeLang" 'c' )" ];then
echo "${M}available${N}"
else
echo "${M}no installation candidate${N}"
officeLang=''
fi
lang=$( echo $language | cut -d ':' -f 2 ) # not used, causes errors
officeHyph="$hyphenationPrefix-$lang"
echo -n " ${C}$officeHyph${S} status: "
if [ "$lang" != '' -a -n "$( check_package_status "$officeHyph" 'c' )" ];then
echo "${M}available${N}"
else
echo "${M}no installation candidate${N}"
officeHyph=''
fi
lang=$( echo $language | cut -d ':' -f 3 )
officeHelp="$officePrefix-help-$lang"
echo -n " ${C}$officeHelp${S} status: "
if [ "$lang" != '' -a -n "$( check_package_status "$officeHelp" 'c' )" ];then
echo "${M}available${N}"
else
echo "${M}no installation candidate${N}"
officeHelp=''
fi
lang=$( echo $language | cut -d ':' -f 4 )
officeThesaurus="$thesaurusPrefix-$lang"
echo -n " ${C}$officeThesaurus${S} status: "
if [ "$lang" != '' -a -n "$( check_package_status "$officeThesaurus" 'c' )" ];then
echo "${M}available${N}"
else
echo "${M}no installation candidate${N}"
officeThesaurus=''
fi
lang=$( echo $language | cut -d ':' -f 5 )
officeDictionary="myspell-$lang"
echo -n " ${C}$officeDictionary${S} status: "
if [ "$lang" != '' -a -n "$( check_package_status "$officeDictionary" 'c' )" ];then
echo "${M}available${N}"
else
echo "${M}no installation candidate${N}"
officeDictionary=''
fi
fi
break
else
found='false'
fi
done
break
done
if [ "$found" == 'true' ];then
# echo $LINE
if [ "$skip" != 'true' ];then
# officeDesktop=$( office_intgration_selector )
echo $LINE
echo "${S}Installing your selected language [${C}$opt${S}] components and $officeString.${N}"
package_installer "$officePrefix-calc $officePrefix-draw $officePrefix-impress $officePrefix-java-common $officePrefix-math $officePrefix-writer python-uno dictionaries-common $officeDesktop $officeLang $officeHelp $officeThesaurus $officeDictionary $officeHyph" 'install-user'
set_office_data # reset globals here
echo "${S}$officeString install is completed.${N}"
else
echo "${S}Continuing on to main script without installing $officeString.${N}"
fi
eval $LOGPE
else
eval $LOGPE
print_error opt
install_libre_open_office
fi
}
#install_libre_open_office
office_intgration_selector()
{
local opt='' options='' complete='' officeDesktop=''
local officePrefix='libreoffice'
local officeString='LibreOffice'
if [ "$OFFICE_AVAILABLE" == 'ooo' ];then
officePrefix='openoffice.org'
officeString='OpenOffice.org'
fi
echo $LINE
echo "${S}Please select your desktop manager. This will install the correct"
echo "$officeString desktop integration package for either kde or gnome."
echo $LINE
echo "${C}1 - kde${S} Installs kde integration."
echo "${C}2 - gnome${S} Installs gnome and gtk integration. Might also work for xfce4."
echo "${C}3 - none${S} Does not install integration package."
echo $LINE
echo -e $SLE
echo $LINE
options='kde gnome none'
select opt in $options
do
case $opt in
kde)
officeDesktop="$officePrefix-kde"
complete='true'
;;
gnome)
officeDesktop="$officePrefix-gnome $officePrefix-gtk"
complete='true'
;;
none)
officeDesktop=''
complete='true'
;;
*)
print_error opt
;;
esac
if [ "$complete" == 'true' ];then
break
fi
done
echo $officeDesktop
}
###---------------------------------------------------------------------
### package install stuff - non free
###---------------------------------------------------------------------
java_plugin_installer()
{
eval $LOGPS
local installed=''
echo $LINE
echo "${S}Checking for ${C}Java Plugin${S} installation candidates...${N}"
# first choice is the metapackage that is not version number based:
if [ -n "$( check_package_status 'icedtea-plugin' 'c' )" ];then
package_group_installer plain 'icedtea-plugin'
installed='true'
elif [ -n "$( check_package_status 'icedtea-8-plugin' 'c' )" ];then
package_group_installer plain 'icedtea-8-plugin'
installed='true'
elif [ -n "$( check_package_status 'icedtea-7-plugin' 'c' )" ];then
package_group_installer plain 'icedtea-7-plugin'
installed='true'
elif [ -n "$( check_package_status 'icedtea-6-plugin' 'c' )" ];then
package_group_installer plain 'icedtea-6-plugin'
installed='true'
# legacy formats
elif [ -n "$( check_package_status 'icedtea6-plugin' 'c' )" ];then
package_group_installer plain 'icedtea6-plugin'
installed='true'
elif [ -n "$( check_package_status 'java-gcj-compat-plugin' 'c' )" ];then
package_group_installer plain 'java-gcj-compat-plugin'
installed='true'
elif [ -n "$( check_package_status 'sun-java6-plugin' 'c' )" ];then
package_group_installer plain 'sun-java6-plugin' 'update_to_nonfree_sources'
installed='true'
else
echo "${M}No ${C}Java plugin${M} available in your ${C}$BITS bit $SYSTEM_BASE${M} install."
echo "${S}Sometimes the package names change, let the ${C}$SCRIPT_NAME${S} maintainer know.${N}"
fi
if [ "$installed" == 'true' ];then
echo "${S}Now checking for older versions of ${C}Java{S} to update system...${N}"
update-alternatives --config java
fi
eval $LOGPE
}
# grabs the latest skype deb from the skype site and installs it
reinstall_skype()
{
eval $LOGPS
local SkypeFileName='' b_ia32_libs='false' package_type='32'
# note: the skype url is a 302 to the current latest version of skype
# local skypeDebUrl='http://www.skype.com/go/getskype-linux-beta-deb'
# this changed and now there's a 32/64 bit auto redirect, default 32, so need to
# make it explicit
# dependencies: libasound2 (>> 1.0.8), libc6 (>= 2.3.2.ds1-4), libgcc1 (>= 1:3.4.1-3), libqt3-mt | libqt3c102-mt (>= 3:3.3.3.2), libstdc++5 (>= 1:3.3.4-1), libx11-6 | xlibs (>> 4.1.0), libxext6 | xlibs (>> 4.1.0)
# libasound2 libc6 libgcc1 libstdc++5
if [ "$BITS" == '64' -a -n "$( package_tester 'ia32-libs' )" ];then
b_ia32_libs='true'
package_type='64'
fi
local skypeDebUrl="http://www.skype.com/go/getskype-linux-deb-$package_type"
echo $LINE
wget -T$TIME_OUT -t2 -Nc $skypeDebUrl
SkypeFileName=$(ls -f | grep 'skype')
if [ -f $SkypeFileName ];then
echo $LINE
echo "${S}Skype deb download was successful. Beginning installation of new skype."
echo "Removing old skype version.${N}"
# install skype
COLUMNS=200 dpkg -l | awk '/skype/{print $2}' | xargs -r dpkg --purge
if [ "$BITS" == '64' -a "$b_ia32_libs" == 'false' ];then
echo "${S}Addeing ${C}i386${S} architecture so 32 bit runs on 64 bit system...${N}"
dpkg --add-architecture i386
$APT_TYPE update
fi
echo "${S}Installing new skype.${N}"
# package_installer 'libqtwebkit4 libstdc++5 libqt4-core libqt4-gui' 'install-user'
dpkg -i $SkypeFileName
rm -f $SkypeFileName
echo "${S}Running ${C}apt-get install -f${S} to install any missing packages.${N}"
$APT_TYPE install -f
echo "${S}New skype install completed.${N}"
else
echo "${E}The skype deb file failed to download, maybe the skype server is down.${N}"
fi
eval $LOGPE
}
install_google_earth()
{
eval $LOGPS
local goog='Google Earth' uninstallPackage='' install_deb='google-earth-stable_current_i386.deb'
local download_error=0 google_earth_package='googleearth-package'
local b_ia32_libs='false'
# we'll use 32 bit package unless it's an old install that has support for deprected ia32-libs meta
if [ "$BITS" == '64' -a -n "$( package_tester 'ia32-libs' )" ];then
install_deb='google-earth-stable_current_amd64.deb'
b_ia32_libs='true'
fi
local download_path=" http://dl.google.com/dl/earth/client/current/$install_deb"
echo $LINE
echo "${S}Starting ${C}$goog${S} installer."
echo
echo "Getting ${C}$goog${S} installer file and installing ${C}$goog${S} deb...${N}"
# package_group_installer plain google-earth 'update_to_nonfree_sources'
cd /var/cache/apt/archives
wget -Nc $download_path || download_error=$?
# force required to build as root
# make-googleearth-package --force 2>>$LOG_FILE 2>&1
# http://dl.google.com/dl/earth/client/current/google-earth-stable_current_i386.deb
# http://dl.google.com/dl/earth/client/current/google-earth-stable_current_amd64.deb
if [ "$download_error" -gt 0 ];then
echo $ELINE
echo "${E}Oh, too bad, the ${C}$install_deb${E} deb failed to download."
echo "Please let the maintainer know, or try again in a few minutes in case it's your"
echo "network connection that failed.${N}"
else
if [ -f "$install_deb" ];then
uninstallPackage="$( package_tester '(googleearth)' )"
echo "${S}Cleaning up previous ${C}$goog${S} materials/packages...${N}"
if [ -n "$uninstallPackage" ];then
package_remover "$uninstallPackage" 'purge -y' 'group'
fi
if [ -n "$google_earth_package" ];then
package_remover "$google_earth_package" 'purge -y' 'group'
fi
if [ "$BITS" == '64' -a "$b_ia32_libs" == 'false' ];then
echo "${S}Addeing ${C}i386${S} architecture so 32 bit runs on 64 bit system...${N}"
dpkg --add-architecture i386
echo "${S}Updating ${C}apt${S} now...${N}"
$APT_TYPE update
fi
echo "${S}Installing ${C}$goog${S} deb...${N}"
dpkg -i $install_deb 2>>$LOG_FILE 2>&1
# this will pull in any needed packages the deb required
echo "${S}Installing any missing packages for ${C}$install_deb${S}...${N}"
apt-get install -f -y
# if [ "$APT_TYPE" == 'aptitude' ];then
# $APT_TYPE install googleearth 2>>$LOG_FILE 2>&1
# fi
rm -f $install_deb
#echo "${S}Cleaning up ${C}$goog${S} installer stuff...${N}"
# package_remover 'googleearth-package' 'purge -y'
echo "${S}Completed install of ${C}$goog${S}.${N}"
echo $LINE
echo "${S}To start ${C}$goog${S}, simply run the command from your desktop: ${C}google-earth${N}"
else
echo $ELINE
echo "${E}Oh, too bad, the ${C}google earth deb${E} package failed to download, sorry about that."
echo "${S}Check forums and other information to see if the package is changed somehow."
echo "Unable to install googleearth, sorry.${N}"
fi
fi
cd $SCRIPT_HOME
print_hec
eval $LOGPE
}
###---------------------------------------------------------------------
### package installers for complex stuff, utilities
###---------------------------------------------------------------------
inxi_installer()
{
local konviPath='/usr/share/apps/konversation/scripts/'
local konviKde4Path='/usr/share/kde4/apps/konversation/scripts/'
local isAvailable='' inxiPath=''
echo $LINE
# install core depends just in case
echo "${S}Installing ${C}inxi${S} and its dependencies/recommends..."
echo "Checking/installing core dependency packages...${N}"
package_group_installer 'plain' 'inxi-depends'
echo $LINE
# install x tools if x is installed
if [ -n "$( check_package_status 'xserver-xorg-core' 'i' )" ];then
echo "${S}Checking/installing graphics recommended packages...${N}"
package_group_installer 'plain' 'inxi-xorg'
echo $LINE
fi
# install dependencies
echo "${S}Checking/installing utility recommended packages...${N}"
package_group_installer 'plain' 'inxi-recommends'
echo $LINE
if [ -n "$( check_package_status 'inxi' 'c' )" ];then
echo "${S}Installing ${C}inxi${S} package from repos now...${N}"
package_group_installer 'plain' 'inxi'
else
echo "${S}Installing ${C}inxi${S} from SVN now...${N}"
run_script_import $MOD_INXI
echo "${S}Updating ${C}inxi${S} to force install of man page...${N}"
$inxiPath -U
fi
inxiPath=$( type -p $MOD_INXI )
if [ -n "$inxiPath" ];then
if [ -f "$SinxiPath" -a -d $konviKde4Path ];then
echo "${S}Creating link to ${C}${konviKde4Path}${S} now...${N}"
ln -sf $inxiPath ${konviKde4Path}$MOD_INXI
fi
if [ -f "$inxiPath" -a -d $konviPath ];then
echo "${S}Creating link to ${C}${konviPath}${S} now...${N}"
ln -sf $inxiPath ${konviPath}$MOD_INXI
fi
fi
echo "${M}Please do NOT use the ${C}-F${M} or the ${C}-v 5 (or greater)${M} options unless requested in IRC."
echo "${S}Those are far too verbose. Please use only specific line triggers, or ${C}-b${S} or ${C}-v 1 (1-3 are reasonable)${S}"
echo "See ${C}inxi -h${S} for the full list of supported output options.${N}"
print_hec
}
# args: $1 - stable/sid
install_ceni()
{
eval $LOGPS
local appName='Ceni'
echo $LINE
echo "${C}$appName${S} is especially nice for wifi console networking configuration, or if you"
echo "have any kind of complicated networking, multiple eth cards, etc."
echo "Installing ${C}$appName${S} for you now to ${C}$SCRIPT_HOME${S}...${N}"
# clean up manual ceni install...
if [ -f $SCRIPT_HOME/ceni ];then
echo "${S}Removing previous manual script install of ${C}$appName${N}"
rm -f $SCRIPT_HOME/ceni
fi
package_group_installer 'plain' 'ceni-stuff'
check_install_package 'ceni' "$1"
echo
echo "${S}Congratulations. ${C}$appName${S} is now installed. To redo your networking, simply type, as root: ${C}$appName${S} (uppercase C)${N}"
print_hec
eval $LOGPE
}
# args: $1 - package name to test/download/install
check_install_package()
{
eval $LOGUS
local packageDeb="$1.deb" success=0
if [ "$2" != '' ];then
packageDeb="$1-$2.deb"
fi
local downloadUrl="$SCRIPT_DOWNLOAD/packages/$packageDeb"
local ua="-U s-tools/package-download.$packageDeb"
echo $LINE
# if in repo, prefer that
if [ -n "$( check_package_status "$1" )" ];then
package_installer "$1" 'install-always' || success=$?
else
echo "${S}Downloading ${C}$1${S} deb now...${N}"
wget $ua -T$TIME_OUT -t 2 -q $downloadUrl || success=$?
if [ -f $packageDeb ];then
echo "${S}Installing ${C}$1${S} deb now...${N}"
dpkg -i $packageDeb || success=$?
fi
# update aptitude db with the package
if [ "$APT_TYPE" == 'aptitude' ];then
echo "${S}Adding ${C}$1${S} to ${C}$APT_TYPE${S} package database now...${N}"
$APT_TYPE install $1 2>>$LOG_FILE 2>&1
fi
rm -f $packageDeb
fi
if [ "$success" -gt 0 ];then
log_function_data "Error: $packageDeb download/install failed, error code: $success"
echo "${E}Install of ${C}$1${E} failed, sorry.${N}"
else
echo "${S}Install of ${C}$1${S} was successful.${N}"
fi
#print_hec
eval $LOGUE
}
h2_faves()
{
eval $LOGPS
local removeItems='splashy'
local mozGroup="${C}iceweasel${S} and ${C}icedove${S}"
if [ "$SERVER_CLIENT" == 'server' ];then
mozGroup="${C}iceweasel${S}"
fi
echo $LINE
echo "${S}Starting the h2 favorites install process now...${N}"
h2_package_group_remover "$removeItems"
h2_package_group_installer 'console-tools'
h2_package_group_installer 'console-browsers'
h2_package_group_installer 'system-utilities'
h2_package_group_installer 'inxi'
h2_package_group_installer 'rsync-group'
echo "${S}mozilla-group is $mozGroup...${N}"
h2_package_group_installer 'mozilla-group'
h2_package_group_installer 'kde-extras'
echo
echo $LINE
echo "${S}Ok, all done with h2 favorite installs.${N}"
print_hec
eval $LOGPE
}
# args: $1 - packages to remove
h2_package_group_remover()
{
eval $LOGUS
local opt='' options='' repeat='' removeItems=$1 package=''
for package in $removeItems
do
if [ -n "$( package_tester $package )" ];then
echo
echo "${S}Removing ${C}$package${S} now... "
echo $LINE
echo "${C}1 - ${S} Remove ${C}$package${S}"
echo "${C}2 - ${S} Keep ${C}$package${S}"
echo $LINE
echo -e $SLE
echo $LINE
options="yes-remove-$package keep-$package"
select opt in $options
do
log_function_data "opt selected: $opt"
case $opt in
yes-remove-$package)
package_remover "$package" 'purge'
;;
keep-$package)
echo "${S}Ok, not removing $package...${N}"
;;
*)
print_error opt
repeat='true'
;;
esac
break
done
eval $LOGUE
if [ "$repeat" == 'true' ];then
h2_package_group_remover "$1"
fi
fi
done
eval $LOGUE
}
# args: $1 packages to be installed
h2_package_group_installer()
{
eval $LOGUS
local opt='' options='' repeat=''
echo $LINE
echo -e $SLE
echo $LINE
echo "${C}1${S} - Install ${C}$1"
echo "${C}2${S} - Don't install ${C}$1"
echo $LINE
options="yes-install-$1 skip-$1"
select opt in $options
do
log_function_data "opt selected: $opt"
case $opt in
yes-install-$1)
case $1 in
inxi)
inxi_installer
;;
*)
package_group_installer 'plain' "$1"
;;
esac
;;
skip-$1)
echo "${S}Ok, skipping that group of packages...${N}"
;;
*)
print_error opt
repeat='true'
;;
esac
break
done
eval $LOGUE
if [ "$repeat" == 'true' ];then
h2_package_group_installer "$1"
fi
}
# swap captive for ntfs-3g ntfs driver
install_ntfs_3g()
{
eval $LOGPS
echo $LINE
echo "${S}For more information on how to setup ntfs-3g, please read ${C}/usr/share/doc/ntfs-3g/README.gz${S}"
# echo "or use the ${C}aptosid-irc${S} factoid ${C}!ntfs-3g${S}."
echo "Here is a sample new line in your ${C}/etc/fstab${S} to give you an idea:"
echo "${C}/dev/hda1 /media/hda1 ntfs-3g silent,umask=0,no_def_opts,allow_other 0 0"
print_hec
echo "${S}Changing ${C}Captive${S} to ${C}ntfs-3g${S} now."
echo "${S}Removing all ${C}captive${S} components....${N}"
package_remover 'captive captive-lufs gnome-vfs-httpcaptive captive captive-install ntfsprogs-gnomevfs' 'purge'
package_installer 'ntfs-3g' 'install-user'
echo "${S}Your system will now use ${C}ntfs-3g${S} to read your ntfs files.${N}"
eval $LOGPE
}
install_kpowersave()
{
eval $LOGPS
local response=''
echo $LINE
echo "${S}Installing kpowersave and related components now."
echo "This uses ${C}unfreeze-rc.d${S} and ${C}freeze-rc.d${S} to update the services.${N}"
echo $LINE
unfreeze-rc.d
package_remover 'apmd powernowd' 'purge'
package_installer 'kpowersave' 'install-user'
freeze-rc.d
echo $LINE
echo "${S}Please remember, you will need to add your username to the ${C}powerdev${S} group"
echo "before this will take affect."
echo "You can do that like this, as root: ${C}adduser <your-normal-login-name> powerdev"
echo
echo "${C}Kpowersave${S} will not run until you rebooot."
echo -e "${Q}Would you like to reboot now?$YNE"
echo $LINE
read response
case $response in
y)
echo $LINE
echo "${S}Rebooting now...${N}"
handle_shutdowns 'reboot'
;;
n)
echo $LINE
echo "${S}Ok, but remember, you'll need to reboot before the new kpowersave stuff becomes active.${N}"
;;
*)
print_error yn
install_kpowersave
;;
esac
eval $LOGPE
}
swiftfox_installer()
{
eval $LOGPS
local opt='' options='' swiftOpt='' swiftPackage='' found='' skip=''
local LC_ALL= LC_CTYPE= LC_MESSAGES= LANG= cpuType=$( grep -i -m 1 'model name' /proc/cpuinfo | cut -d ':' -f 2 )
# current swiftfox packages
# http://getswiftfox.com/builds/debian/packages
# note, the following were dropped:
# swiftfox-athlon-xp
# swiftfox-pentium-m
# swiftfox-pentium3
# swiftfox-pentium3m
# swiftfox-pentium4
local swiftfoxChoices="
swiftfox-i686:(Athlon-Thunderbird/xp-or-Pentium-2/3/m/4)
swiftfox-athlon64-32bit:(AMD-64-users-on-a-32bit-OS)
swiftfox-prescott:(Intel-Core-duo/solo)
return-to-menu
"
# no point in offering 32 bit package here for 64 bit users, and vica versa
if [ "$BITS" == '64' ];then
swiftfoxChoices="
swiftfox-athlon64:(AMD-64-users-on-a-64bit-OS)
swiftfox-prescott:(Intel-Core-duo/solo)
return-to-menu
"
fi
local rtmmNu=$( wc -w <<< $swiftfoxChoices )
local swiftNu=$(( $rtmmNu -1 ))
echo $MLINE
echo "${M}Swiftfox Installer"
echo $MLINE
echo "${S}You can pick a swiftfox version for your system's cpu:"
echo "${C}$cpuType ${S}(running a ${C}$BITS bit${S} operating system)"
echo "${S}Once you make your selection, ${C}$SCRIPT_NAME${S} will install that swiftfox version."
echo
echo "${M}Keep in mind, it's risky running two versions of Firefox, like Iceweasel and Swiftfox.${S}"
echo "I recommend using only one Mozilla based browser, but I tend to be careful."
echo
echo "If needed, ${C}$SCRIPT_NAME${S} will add the required swiftfox sources for apt before installing."
echo $LINE
echo "${C}1-$swiftNu - ${S}Select which swiftfox version you want to install."
echo
echo "${C}$rtmmNu - return-to-menu${S} Return to utility installer."
echo $LINE
echo -e $SLE
echo $LINE
options=$swiftfoxChoices
select opt in $options
do
for swiftOpt in $swiftfoxChoices
do
if [ "$opt" == "$swiftOpt" ];then
found='true'
if [ "$swiftOpt" == 'return-to-menu' ];then
skip='true'
else
swiftPackage="$( cut -d ':' -f 1 <<< $swiftOpt )"
fi
break
else
found='false'
fi
done
break
done
if [ "$found" == 'true' ];then
if [ "$skip" != 'true' ];then
update_sources swiftfox
package_installer "$swiftPackage libxp6" 'install-user' '--allow-unauthenticated'
run_script_import $LIB_MISC_TWEAKS
swiftfox_link_tweak
# echo installing $swiftPackage now...
else
echo $LINE
echo "${S}Returning to main script now...${N}"
fi
eval $LOGPE
else
eval $LOGPE
print_error opt
swiftfox_installer
fi
}
###---------------------------------------------------------------------
### package install stuff - servers
###---------------------------------------------------------------------
server_group_selector()
{
eval $LOGPS
local repeat=''
echo $MLINE
echo "${M} Server Installer"
echo $MLINE
echo "${S}The following basic package groups are offered. Please check out each sub-category"
echo "to see if there's anything you need. If they are missing something, please let"
echo "the ${C}$SCRIPT_NAME${S} maintainer know and he'll add it."
echo $LINE
echo "${C}1 - apache-mysql-php${S} - A range of web servers: ${C}Apache2${S}, ${C}PHP${S}, ${C}MySql${S};"
echo " Also extra language and program modules."
echo "${C}2 - nfs${S} - Basic ${C}*nix${S} type networking, nice and simple."
echo "${C}3 - samba${S} - ${C}*nix${S} Windows type networking server and tools."
echo "${C}4 - back-to-menu${S} - Return to main menu."
echo $LINE
echo -e $SLE
echo $LINE
options="apache-mysql-php nfs samba back-to-menu"
select opt in $options
do
log_function_data "opt selected: $opt"
case $opt in
apache-mysql-php)
apache_package_installer
repeat='true'
;;
nfs)
nfs_package_installer
repeat='true'
;;
samba)
samba_package_installer
repeat='true'
;;
back-to-menu)
echo "${S}Ok, enough with the servers stuff, back to main menu...${N}"
;;
*)
print_error opt
repeat='true'
;;
esac
break
done
eval $LOGPE
if [ "$repeat" == 'true' ];then
server_group_selector
fi
}
nfs_package_installer()
{
eval $LOGPS
local repeat=''
echo $MLINE
echo "${M}NFS Server and Client"
echo $MLINE
echo "${S}The following servers, and client apps, are available:${N}"
echo $LINE
echo "${C}1 - nfs-server${S} - The entire ${C}NFS package${S}."
echo "${C}2 - nfs-client${S} - Just the client components."
echo "${C}3 - back-to-menu${S} - Return to main menu."
echo $LINE
echo -e $SLE
echo $LINE
options="nfs-server nfs-client back-to-menu"
select opt in $options
do
log_function_data "opt selected: $opt"
case $opt in
nfs-server)
package_group_installer 'plain' 'nfs-kernel-server nfs-common portmap'
repeat='true'
;;
nfs-client)
package_group_installer 'plain' 'nfs-common portmap'
repeat='true'
;;
back-to-menu)
echo "${S}Ok, returning to main menu...${N}"
;;
*)
print_error opt
repeat='true'
;;
esac
break
done
eval $LOGPE
if [ "$repeat" == 'true' ];then
nfs_package_installer
fi
}
apache_package_installer()
{
eval $LOGPS
local repeat=''
echo $MLINE
echo "${M}Apache, PHP, and MySql Installation"
echo $MLINE
echo "${S}The following servers, client apps, and tools, are available. These, when all selected, "
echo "will result in a fairly complete and modern ${C}Apache2${S} web server installation."
echo
echo "${S}After you are done, type into any browser: ${C}localhost${S}"
echo "and you should see the defualt Apache warning page.${N}"
echo $LINE
echo "${M}:: Apache ::"
echo "${C}1 - apache2-full${S} - Installs ${C}Apache${S}, ${C}MySql${S}, and ${C}PHP${S}, in the proper order."
echo "${C}2 - apache2-server${S} - Installs ${C}apache2-mpm-prefork${S} server and ${C}apache2-utils${S}"
# echo "${C}3 - apache2-configuration${S} - Installs ${C}rapache${S} a graphical user tool for configuring ${C}Apache2${S}"
# echo " It allows easy creation of virtual name hosts and activating modules all without any"
# echo " knowledge of configuration files (${M}I have NOT tested this tool${S})."
echo "${M}:: MySql ::"
echo "${C}3 - mysql-server${S} - Main Database server for ${C}Apache2${S} installs. Install first if you are adding Apache2."
echo "${C}4 - mysql-client${S} - Includes the client binaries and the additional tools
innotop, mysqlreport"
echo "${C}5 - mysql-top${S} - Installs ${C}mtop${S} and ${C}mytop${S} command line ${C}mysql${S} monitoring tools (like ${C}top${S})."
echo "${M}:: PHP / Python / Perl / Ruby ::"
echo "${C}6 - apache2-mod-php5${S} - This is the main PHP5 Apache2 module."
echo "${C}7 - php5-modules${S} - Installs useful ${C}gd${S} and ${C}curl${S} modules for Apache2/PHP."
echo "${C}8 - php5-mysql${S} - Installs the MySql database PHP module."
echo "${C}9 - php5-postgre${S} - Installs the Postgre database PHP module."
echo "${C}10 - apache2-mod-perl${S} - Installs the Apache2 Perl module."
echo "${C}11 - apache2-mod-python${S} - Installs the Apache2 Python module."
echo "${C}12 - apache2-mod-ruby${S} - Installs the Apache2 Ruby module."
echo
echo "${C}13 - back-to-menu${S} - Return to main menu."
echo $LINE
echo -e $SLE
echo $LINE
options="apache2-full apache2-server mysql-server mysql5-client mysql-top apache2-mod-php5 php5-modules php5-mysql php5-postgre apache2-mod-perl apache2-mod-python apache2-mod-ruby back-to-menu"
select opt in $options
do
log_function_data "opt selected: $opt"
case $opt in
apache2-configuration)
package_group_installer 'plain' 'apache2-configuration'
repeat='true'
;;
# note: older debian don't have mysql-server meta, and newer don't have: mysql5-server
apache2-full)
package_group_installer 'plain' 'mysql-server mysql5-server'
package_group_installer 'plain' 'apache2 apache2-server'
package_group_installer 'plain' 'libapache2-mod-php5 apache2-mod-php5'
package_group_installer 'plain' 'php5-mysql'
echo "${S}Reconfiguring ${C}php5-mysql${S} now...${N}"
dpkg-reconfigure php5-mysql
repeat='true'
;;
apache2-server)
package_group_installer 'plain' 'apache2 apache2-server'
repeat='true'
;;
apache2-mod-perl)
package_group_installer 'plain' 'apache2-mod-perl'
repeat='true'
;;
apache2-mod-php5)
package_group_installer 'plain' 'libapache2-mod-php5 apache2-mod-php5'
repeat='true'
;;
apache2-mod-python)
package_group_installer 'plain' 'apache2-mod-python'
repeat='true'
;;
apache2-mod-ruby)
package_group_installer 'plain' 'apache2-mod-ruby'
repeat='true'
;;
mysql-client)
package_group_installer 'plain' 'mysql-client mysql5-client'
repeat='true'
;;
mysql-server)
package_group_installer 'plain' 'mysql-server mysql5-server'
repeat='true'
;;
mysql-top)
package_group_installer 'plain' 'mysql-top'
repeat='true'
;;
php5-modules)
package_group_installer 'plain' 'php5-modules'
repeat='true'
;;
php5-mysql)
package_group_installer 'plain' 'php5-mysql'
repeat='true'
;;
php5-postgre)
package_group_installer 'plain' 'php5-postgre'
repeat='true'
;;
back-to-menu)
echo "${S}Ok, returning to main menu...${N}"
;;
*)
print_error opt
repeat='true'
;;
esac
break
done
eval $LOGPE
if [ "$repeat" == 'true' ];then
apache_package_installer
fi
}
samba_package_installer()
{
eval $LOGPS
local repeat=''
echo $MLINE
echo "${M}Samba Server, Clients, and Tools"
echo $MLINE
echo "${S}The following servers, client apps, and tools, are available:${N}"
echo $LINE
echo "${M}:: Samba Server ::"
echo "${C}1 - samba-server${S} - the main ${C}Samba${S} server. Does not include ${C}smbclient${S},"
echo " ${C}smbfs${S}, or ${C}winbind${S}."
# note: swat appears to have been removed from debian due to project not being maintained
# echo "${C}2 - swat${S} - Web administration tool for ${C}Samba${S} server."
echo "${M}:: Samba Clients ::"
echo "${C}2 - smb-client${S} - These ${C}Samba ${S}client packages both contain the command"
echo " line utilities${C}smbclient${S}, ${C}smbtar${S}, and ${C}smbspool${S}, as well as ${C}smbfs${S}."
echo "${C}3 - smb4k${S} - ${C}smb4k${S} is the kde version of ${C}smb-client${S}."
echo "${C}4 - komba2${S} - A kde GUI machine and share browser for the SMB protocol."
echo "${M}:: Samba Tools ::"
echo "${C}5 - winbind${S} - Provides winbind. Can be used to resolve user and group information"
echo " from a Windows NT server."
echo "${C}6 - fuse-smb${S} - ${C}smb${S} filesystem client + ${C}fuse-utils${S}. Requires ${C}fuse kernel module${S}."
echo "${C}7 - samba-docs${S} - Documenation for ${C}Samba${S}, also in ${C}pdf${S} format."
echo "${C}8 - back-to-menu${S} - Return to main menu."
echo $LINE
echo -e $SLE
echo $LINE
options="samba-server samba-client smb4k komba2 winbind fuse-smb samba-docs back-to-menu"
select opt in $options
do
log_function_data "opt selected: $opt"
case $opt in
samba-server)
package_group_installer 'plain' 'samba'
repeat='true'
;;
samba-client)
package_group_installer 'plain' 'smbclient samba-common smbfs'
repeat='true'
;;
smb4k)
package_group_installer 'plain' 'smb4k samba-common smbfs'
repeat='true'
;;
swat)
package_group_installer 'plain' 'swat'
repeat='true'
;;
komba2)
package_group_installer 'plain' 'komba2'
repeat='true'
;;
fuse-smb)
package_group_installer 'plain' 'fusesmb fuse-utils'
repeat='true'
;;
samba-docs)
package_group_installer 'plain' 'samba-doc samba-doc-pdf'
repeat='true'
;;
winbind)
package_group_installer 'plain' 'winbind'
repeat='true'
;;
back-to-menu)
echo "${S}Ok, returning to main menu...${N}"
;;
*)
print_error opt
repeat='true'
;;
esac
break
done
eval $LOGPE
if [ "$repeat" == 'true' ];then
samba_package_installer
fi
}
###**EOF**###
syntax highlighted by Code2HTML, v. 0.9.1