You are not logged in.

#1 2011-11-09 13:13:02

helmuthdu
Member
Registered: 2011-11-09
Posts: 85

Archlinux (after fresh) Install Script

I want to share my archlinux install script dat i use after do a fresh install, if u have any idea of how to make it better pls post here smile

#!/bin/bash
# By helmuthdu

#custom repositories #{{{
	read -p "Install custom repositories [y][n]: " OPTION
	if [ $OPTION = "y" ]; then
		echo -e '[ayatana]\nServer = http://repo.ayatana.info/' >> /etc/pacman.conf
	fi
#}}}
#system update #{{{
	pacman -Syu
	read -p "Reboot your system [y][n]: " OPTION
	if [ $OPTION = "y" ]; then
		reboot
	fi
#}}}
#create a new user #{{{
	read -p "New user name: " USERNAME
	useradd -m -g users -G users,audio,lp,optical,storage,video,wheel,games,power,scanner -s /bin/bash $USERNAME
	passwd $USERNAME
	#set user as sudo #{{{
		pacman -S --noconfirm sudo
		EDITOR=nano visudo
	#}}}
#}}}
#install yaourt #{{{
	read -p "Install yaourt [y][n]" OPTION
	if [ $OPTION = "y" ]; then
		pacman -S --noconfirm base-devel yajl
		su -l $USERNAME --command="
			wget http://aur.archlinux.org/packages/package-query/package-query.tar.gz;
			tar zxvf package-query.tar.gz;
			cd package-query;
			makepkg --noconfirm -si;
			cd ..;
			rm -fr package-query*
		"
		su -l $USERNAME --command="
			wget http://aur.archlinux.org/packages/yaourt/yaourt.tar.gz;
			tar zxvf yaourt.tar.gz;
			cd yaourt;
			makepkg --noconfirm -si;
			cd ..;
			rm -fr yaourt*
		"
	fi
#}}}
#base system #{{{
	pacman -S --noconfirm curl bc rsync mlocate bash-completion vim
	pacman -S --noconfirm gutenprint foomatic-db foomatic-db-engine foomatic-db-nonfree foomatic-filters hplip splix cups-pdf
	pacman -S --noconfirm ntfs-3g ntfsprogs
	pacman -S --noconfirm rssh openssh samba
	#configure ssh/samba #{{{
		echo -e "sshd: ALL\n# End of file" > /etc/hosts.allow
		echo -e "ALL: ALL: DENY\n# End of file" > /etc/hosts.deny
		cp /etc/samba/smb.conf.default /etc/samba/smb.conf
		#ssh_conf #{{{
			sed -i '/ListenAddress/s/^#//' /etc/ssh/sshd_config
			sed -i '/SyslogFacility/s/^#//' /etc/ssh/sshd_config
			sed -i '/LogLevel/s/^#//' /etc/ssh/sshd_config
			sed -i '/LoginGraceTime/s/^#//' /etc/ssh/sshd_config
			sed -i '/PermitRootLogin/s/^#//' /etc/ssh/sshd_config
			sed -i '/StrictModes/s/^#//' /etc/ssh/sshd_config
			sed -i '/RSAAuthentication/s/^#//' /etc/ssh/sshd_config
			sed -i '/PubkeyAuthentication/s/^#//' /etc/ssh/sshd_config
			sed -i '/IgnoreRhosts/s/^#//' /etc/ssh/sshd_config
			sed -i '/PermitEmptyPasswords/s/^#//' /etc/ssh/sshd_config
			sed -i '/X11Forwarding/s/^#//' /etc/ssh/sshd_config
			sed -i '/X11Forwarding/s/no/yes/' /etc/ssh/sshd_config
			sed -i '/X11DisplayOffset/s/^#//' /etc/ssh/sshd_config
			sed -i '/X11UseLocalhost/s/^#//' /etc/ssh/sshd_config
			sed -i '/PrintMotd/s/^#//' /etc/ssh/sshd_config
			sed -i '/PrintMotd/s/yes/no/' /etc/ssh/sshd_config
			sed -i '/PrintLastLog/s/^#//' /etc/ssh/sshd_config
			sed -i '/TCPKeepAlive/s/^#//' /etc/ssh/sshd_config
		#}}}
	#}}}
	pacman -S --noconfirm tar gzip bzip2 unzip unrar p7zip
	pacman -S --noconfirm alsa-utils alsa-oss alsa-plugins
	sed -i '/MODULES/s/MODULES=(/&fuse/' /etc/rc.conf
#}}}
#install video driver #{{{
	pacman -S --noconfirm xorg-server xorg-xinit xorg-utils xorg-server-utils xorg-xauth xf86-input-evdev xf86-input-synaptics
	pacman -S --noconfirm mesa mesa-demos
	read -p "Video driver (intel|nvidia|nouveau|virtualbox): " VIDEO
	if [ $VIDEO = "intel" ]; then
		pacman -S --noconfirm libgl xf86-video-intel
	elif [ $VIDEO = "nvidia" ]; then
		pacman -S nvidia nvidia-utils
	elif [ $VIDEO = "nouveau" ]; then
		pacman -S --noconfirm libgl xf86-video-nouveau nouveau-dri
		modprobe nouveau
		sed -i '/MODULES/s/^[^ ]*\>/& nouveau/' /etc/rc.conf
	elif [ $VIDEO = "virtualbox" ]; then
		pacman -S --noconfirm virtualbox-archlinux-additions
		modprobe -a vboxguest vboxsf vboxvideo
		sed -i '/MODULES/s/^[^ ]*\>/& vboxguest vboxsf vboxvideo/' /etc/rc.conf
		groupadd vboxsf
		gpasswd -a $USERNAME vboxsf
	fi
#}}}
#git access thru a firewall #{{{
#this config help me to bypass the company firewall for git access
	TOR=""
	read -p "config git access thru a firewall [y][n]: " OPTION
	if [ $OPTION = "y" ]; then
		su -l $USERNAME --command="yaourt -S --noconfirm gtk-doc openbsd-netcat vidalia privoxy git"
		echo 'forward-socks5   /               127.0.0.1:9050 .' >> /etc/privoxy/config
		echo -e '#!/bin/bash\nnc.openbsd -xlocalhost:9050 -X5 $*' >> /usr/bin/proxy-wrapper
		chmod +x /usr/bin/proxy-wrapper
		echo -e '\nexport GIT_PROXY_COMMAND="/usr/bin/proxy-wrapper"' >> /etc/bash.bashrc
		export GIT_PROXY_COMMAND="/usr/bin/proxy-wrapper"
		groupadd -g 42 privoxy
		useradd -u 42 -g privoxy -s /bin/false -d /etc/privoxy privoxy
		pacman -S --noconfirm tor privoxy
		rc.d restart tor privoxy
		su -l $USERNAME --command="sudo /etc/rc.d/tor restart"
		su -l $USERNAME --command="sudo /etc/rc.d/privoxy restart"
		TOR="tor privoxy"
	fi
#}}}
#install desktop environment #{{{
	read -p "Desktop Environment (Gnome|KDE): " DE
	#gnome #{{{
	if [ $DE = "gnome" ]; then
		#desktop #{{{
			pacman -S --noconfirm gnome gnome-extra
			pacman -S --noconfirm gamin pulseaudio-gnome gnome-tweak-tool telepathy deja-dup
			pacman -S --noconfirm gnome-packagekit gnome-settings-daemon-updates
			pacman -Rdd --noconfirm sushi
			su -l $USERNAME --command="yaourt -S --noconfirm gloobus-sushi-bzr"
			su -l $USERNAME --command="yaourt -S --noconfirm gnome-shell-system-monitor-applet-git gnome-shell-extension-noa11y-git gnome-shell-extension-weather-git gnome-shell-extension-user-theme gnome-shell-extension-workspace-indicator gnome-shell-extension-places-menu gnome-shell-extension-dock gnome-shell-extension-pomodoro gnome-shell-extension-mediaplayer-git"
		#}}}
		#aparencia #{{{
			su -l $USERNAME --command="yaourt -S --noconfirm faience-icon-theme elementary-icons"
			su -l $USERNAME --command="yaourt -S --noconfirm zukitwo-themes light-themes-bzr egtk-bzr"
			su -l $USERNAME --command="yaourt -S --noconfirm gnome-shell-theme-faience gnome-shell-theme-nord gnome-shell-theme-eos"
		#}}}
		#acessórios #{{{
			su -l $USERNAME --command="yaourt -S --noconfirm docky guake gpaste kupfer automounter"
			su -l $USERNAME --command="yaourt -S --noconfirm gnome-activity-journal libzeitgeist zeitgeist-datahub zeitgeist-extensions"
			su -l $USERNAME --command="yaourt -S --noconfirm gedit-plugins gedit-latex"
			su -l $USERNAME --command="yaourt -S --noconfirm nautilus-open-terminal nautilus-terminal nautilus-dropbox gnome-defaults-list"
			su -l $USERNAME --command="echo -e '[general]\ndef_term_height=10\ndef_visible=0\n\n[terminal]\nshell=/bin/bash' > ~/.nautilus-terminal"
		#}}}
		#escritório #{{{
			pacman -S --noconfirm libreoffice-pt-BR libreoffice-{base,calc,draw,impress,math,writer,gnome} libreoffice-extension-presenter-screen libreoffice-extension-pdfimport
			pacman -S --noconfirm chmsee
		#}}}
		#impressão #{{{
			pacman -S --noconfirm system-config-printer-gnome
		#}}}
		#graficos #{{{
			pacman -S --noconfirm shotwell
		#}}}
		#internet #{{{
			#networkmanager #{{{
				NETWORKMANAGER="network"
				read -p "Install networkmanager [y][n]: " OPTION
				if [ $OPTION = "y" ]; then
					pacman -S --noconfirm networkmanager network-manager-applet
					groupadd networkmanager
					gpasswd -a $USERNAME networkmanager
					NETWORKMANAGER="networkmanager"
				fi
			#}}}
		#}}}
		#multimedia #{{{
			su -l $USERNAME --command="yaourt -S --noconfirm exaile exfalso transmageddon"
			#arista #{{{
				read -p "Install arista [y][n]: " OPTION
				if [ $OPTION = "y" ]; then
					su -l $USERNAME --command="yaourt -S --noconfirm arista-transcoder"
				fi
			#}}}
		#}}}
		#outros #{{{
			pacman -S --noconfirm gksu gvfs-smb xdg-user-dirs
			su -l $USERNAME --command="yaourt -S --noconfirm figlet cowsay conky-lua"
		#}}}
		LOGINMANAGER=gdm
	#}}}
	#KDE #{{{
	elif [ $DE = "kde" ]; then
		#desktop #{{{
			pacman -S --noconfirm kde kde-l10n-pt_br yakuake
			pacman -Rcsn --noconfirm kdenetwork-kopete kdemultimedia-kscd kdemultimedia-juk kdemultimedia-dragonplayer
		#}}}
		#aparencia #{{{
			su -l $USERNAME --command="yaourt -S --noconfirm chakra-gtk-config"
			su -l $USERNAME --command="yaourt -S --noconfirm oxygen-gtk qtcurve-gtk2 qtcurve-kde4"
			su -l $USERNAME --command="yaourt -S --noconfirm kfaenza-icon-theme"
			su -l $USERNAME --command="yaourt -S --noconfirm yakuake-skin-plasma-oxygen-panel plasma-icontasks plasma-theme-caledonia kdm-theme-caledonia ksplash-caledonia bespin-svn"
		#}}}
		# impressão #{{{
			pacman -S --noconfirm kdeadmin-system-config-printer-kde
		#}}}
		# escritório #{{{
			pacman -S --noconfirm libreoffice-pt-BR libreoffice-{base,calc,draw,impress,math,writer,kde4} libreoffice-extension-presenter-screen libreoffice-extension-pdfimport
			pacman -S --noconfirm kchmviewer
		#}}}
		#graficos #{{{
			pacman -S --noconfirm digikam kipi-plugins
		#}}}
		#internet #{{{
			pacman -S --noconfirm choqok
			pacman -S --noconfirm telepathy-kde telepathy
			#networkmanager #{{{
				NETWORKMANAGER="network"
				read -p "Install networkmanager [y][n]: " OPTION
				if [ $OPTION = "y" ]; then
					pacman -S --noconfirm networkmanager kdeplasma-applets-networkmanagement
					groupadd networkmanager
					gpasswd -a $USERNAME networkmanager
					NETWORKMANAGER="networkmanager"
				fi
			#}}}
		#}}}
		#multimediaa #{{{
			pacman -S --noconfirm amarok k3b dvd+rw-tools
			su -l $USERNAME --command="yaourt -S --noconfirm vlc phonon-vlc"
			su -l $USERNAME --command="yaourt -S --noconfirm minitube musique bangarang"
		#}}}
		# sistema #{{{
			su -l $USERNAME --command="yaourt -S --noconfirm kdirwatch kcm-wacomtablet quickaccess-plasmoid"
			su -l $USERNAME --command="yaourt -S --noconfirm apper-git"
		#}}}
		LOGINMANAGER=kdm
	fi
	#}}}
	#desenvolvimento #{{{
	#qtcreator #{{{
		read -p "Install qtcreator [y][n]: " OPTION
		if [ $OPTION = "y" ]; then
			pacman -S --noconfirm qtcreator qt-doc
			mkdir -p /home/$USERNAME/.config/Nokia/qtcreator/styles
			wget http://angrycoding.googlecode.com/svn/branches/qt-creator-monokai-theme/monokai.xml
			mv monokai.xml /home/$USERNAME/.config/Nokia/qtcreator/styles/
			chown -R $USERNAME:users /home/$USERNAME/.config
		fi
	#}}}
	#gvim #{{{
		read -p "Install gvim [y][n]: " OPTION
		if [ $OPTION = "y" ]; then
			pacman -Rdd --noconfirm vim
			pacman -S --noconfirm gvim meld splint tidyhtml pyflakes ctags wmctrl
			su -l $USERNAME --command="yaourt -S --noconfirm jsl"
			sed -i '/Icon/s/gvim/vim/g' /usr/share/applications/gvim.desktop
		fi
	#}}}
	#}}}
	#acessórios #{{{
		read -p "Install wunderlist [y][n]: " OPTION
		if [ $OPTION = "y" ]; then
			su -l $USERNAME --command="yaourt -S --noconfirm wunderlist"
		fi
	#}}}
	#escritório #{{{
		pacman -S --noconfirm aspell-pt
		su -l $USERNAME --command="yaourt -S --noconfirm hunspell-pt-br"
		read -p "Install Latex support [y][n]: " OPTION
		if [ $OPTION = "y" ]; then
			pacman -S --noconfirm texlive-latexextra texlive-langextra lyx
			su -l $USERNAME --command="yaourt -S --noconfirm abntex"
		fi
	#}}}
	#ferramentas de sistema #{{{
		pacman -S --noconfirm htop grsync
		pacman -S --noconfirm wine wine_gecko winetricks
		su -l $USERNAME --command="yaourt -S --noconfirm toilet figlet cowsay conky-lua-old"
		read -p "Install Virtualbox [y][n]: " OPTION
		if [ $OPTION = "y" ]; then
			pacman -S --noconfirm virtualbox virtualbox-additions
			su -l $USERNAME --command="yaourt -S --noconfirm virtualbox-ext-oracle"
			modprobe vboxdrv
			sed -i '/MODULES/s/^[^ ]*\>/& vboxdrv/' /etc/rc.conf
			groupadd vboxusers
			gpasswd -a $USERNAME vboxusers
		fi
	#}}}
	#graficos #{{{
		pacman -S --noconfirm gimp inkscape uniconvertor python2-numpy python-lxml
		su -l $USERNAME --command="yaourt -S --noconfirm xmind"
		su -l $USERNAME --command="yaourt -S --noconfirm gimp-paint-studio gimp-resynth gimpfx-foundry gimp-plugin-pandora gimp-plugin-saveforweb"
	#}}}
	#internet #{{{
		pacman -S --noconfirm firefox firefox-i18n-pt-br thunderbird thunderbird-i18n-pt-br flashplugin
		pacman -Rdd --noconfirm jre7-openjdk jdk7-openjdk
		su -l $USERNAME --command="yaourt -S --noconfirm jdk"
		su -l $USERNAME --command="yaourt -S --noconfirm google-chrome jdownloader"
		LAMP=""
		read -p "Install LAMP [y][n]: " OPTION
		if [ $OPTION = "y" ]; then
			pacman -S --noconfirm apache mysql php php-apache php-mcrypt php-gd
			su -l $USERNAME --command="yaourt -S --noconfirm adminer"
			rc.d restart httpd mysqld
			/usr/bin/mysql_secure_installation
			echo -e '\n# adminer configuration\nInclude conf/extra/httpd-adminer.conf' >> /etc/httpd/conf/httpd.conf
			echo -e 'application/x-httpd-php		php' >> /etc/httpd/conf/mime.types
			echo -e '\n# Use for PHP 5.x:\nInclude conf/extra/php5_module.conf\nLoadModule php5_module        modules/libphp5.so\nAddHandler php5-script php' >> /etc/httpd/conf/httpd.conf
			sed -i 's/DirectoryIndex\ index.html/DirectoryIndex\ index.html\ index.php/g' /etc/httpd/conf/httpd.conf
			sed -i 's/public_html/Sites/g' /etc/httpd/conf/extra/httpd-userdir.conf
			sed -i '/mcrypt.so/s/^;//' /etc/php/php.ini
			sed -i '/mysqli.so/s/^;//' /etc/php/php.ini
			sed -i '/mysql.so/s/^;//' /etc/php/php.ini
			sed -i '/gd.so/s/^;//' /etc/php/php.ini
			su -l $USERNAME --command="mkdir -p ~/Sites"
			su -l $USERNAME --command="chmod 775 ~/ && chmod -R 775 ~/Sites"
			rc.d restart httpd mysqld
			LAMP="httpd mysqld"
		fi
	#}}}
	#jogos #{{{
		read -p "Install Games [y][n]: " OPTION
		if [ $OPTION = "y" ]; then
			read -p "Install Astromenace [y][n]: " OPTION
			if [ $OPTION = "y" ]; then
				su -l $USERNAME --command="yaourt -S --noconfirm astromenace"
			fi
			read -p "Install Maniadrive [y][n]: " OPTION
			if [ $OPTION = "y" ]; then
				su -l $USERNAME --command="yaourt -S --noconfirm maniadrive"
			fi
			read -p "Install World of Padman [y][n]: " OPTION
			if [ $OPTION = "y" ]; then
				su -l $USERNAME --command="yaourt -S --noconfirm worldofpadman"
			fi
			read -p "Install Wesnoth [y][n]: " OPTION
			if [ $OPTION = "y" ]; then
				read -p "Install Devel Version [y][n]: " OPTION
				if [ $OPTION = "y" ]; then
					su -l $USERNAME --command="yaourt -S --noconfirm wesnoth-devel"
				else
					pacman -S --noconfirm wesnoth
				fi
			fi
			read -p "Install Simutrans [y][n]: " OPTION
			if [ $OPTION = "y" ]; then
				su -l $USERNAME --command="yaourt -S --noconfirm simutrans"
			fi
			read -p "Install Heroes of Newerth [y][n]: " OPTION
			if [ $OPTION = "y" ]; then
				su -l $USERNAME --command="yaourt -S --noconfirm hon"
			fi
			read -p "Install Tales of Maj'Eyal: Age of Ascendancy [y][n]: " OPTION
			if [ $OPTION = "y" ]; then
				su -l $USERNAME --command="yaourt -S --noconfirm tome4"
			fi
			read -p "Install Numptyphysics [y][n]: " OPTION
			if [ $OPTION = "y" ]; then
				su -l $USERNAME --command="yaourt -S --noconfirm numptyphysics-svn"
			fi
			read -p "Install Counter-Strike 2D [y][n]: " OPTION
			if [ $OPTION = "y" ]; then
				su -l $USERNAME --command="yaourt -S --noconfirm counter-strike-2d"
			fi
			read -p "Install M.A.R.S. [y][n]: " OPTION
			if [ $OPTION = "y" ]; then
				su -l $USERNAME --command="yaourt -S --noconfirm mars-shooter"
			fi
			read -p "Install SuperTuxKart [y][n]: " OPTION
			if [ $OPTION = "y" ]; then
				su -l $USERNAME --command="yaourt -S --noconfirm supertuxkart"
			fi
			read -p "Install OpenTyrian [y][n]: " OPTION
			if [ $OPTION = "y" ]; then
				su -l $USERNAME --command="yaourt -S --noconfirm opentyrian-hg"
			fi
			read -p "Install Warsow [y][n]: " OPTION
			if [ $OPTION = "y" ]; then
				su -l $USERNAME --command="yaourt -S --noconfirm warsow"
			fi
			read -p "Install Doukutsu [y][n]: " OPTION
			if [ $OPTION = "y" ]; then
				su -l $USERNAME --command="yaourt -S --noconfirm doukutsu"
			fi
		fi
	#}}}
	#multimedia #{{{
		su -l $USERNAME --command="yaourt -S --noconfirm gstreamer0.10-plugins pulseaudio"
		su -l $USERNAME --command="yaourt -S --noconfirm libquicktime libdvdread libdvdnav libdvdcss codecs cdrdao"
		su -l $USERNAME --command="yaourt -S --noconfirm xbmc"
		read -p "Install midi support[y][n]: " OPTION
		if [ $OPTION = "y" ]; then
			su -l $USERNAME --command="yaourt -S --noconfirm timidity++ fluidr3"
			echo -e 'soundfont /usr/share/soundfonts/fluidr3/FluidR3GM.SF2' >> /etc/timidity++/timidity.cfg
		fi
	#}}}
	#font #{{{
		su -l $USERNAME --command="yaourt -S --noconfirm ttf-ms-fonts ttf-dejavu ttf-liberation ttf-kochi-substitute ttf-google-webfonts ttf-roboto"
		read -p "Install patched font configuration [(i)nfinity][(u)buntu][(n)one]: " OPTION
		if [ $OPTION = "i" ]; then
			pacman -Rdd --noconfirm freetype2
			su -l $USERNAME --command="yaourt -S freetype2-infinality"
			wget http://www.infinality.net/files/local.conf
			mv local.conf /etc/fonts/
		elif [ $OPTION = "u" ]; then
			pacman -Rdd --noconfirm cairo fontconfig freetype2 libxft
			su -l $USERNAME --command="yaourt -S --noconfirm cairo-ubuntu fontconfig-ubuntu freetype2-ubuntu"
		fi
	#}}}
	# misc #{{{
	#}}}
#}}}
#configure rc.conf #{{{
	sed -i /"DAEMONS"/d /etc/rc.conf
	echo "DAEMONS=(syslog-ng crond alsa sshd samba dbus cupsd $TOR $LAMP $LOGINMANAGER $NETWORKMANAGER)" >> /etc/rc.conf
#}}}
	echo "System configuration complete"
#reboot #{{{
	read -p "Reboot your system [y][n]: " OPTION
	if [ $OPTION = "y" ]; then
		reboot
	fi
#}}}

Last edited by helmuthdu (2011-11-17 22:05:09)

Offline

Board footer

Powered by FluxBB