A Cleanstart for your new Ubuntu (Install Packages from a list)
Clean Install
Each time Ubuntu brings out a new version I do a clean install.
I do this for a number of reasons, stability being the main one, but also to blow away all of the crud I have installed over the last 6 months.
If I don’t remember to reinstall it, then it wasn’t that important :-)
That said I do want my downtime to be as short as possible.
With that in mind I have a script (cleanstart-packages.list.sh) that reads a list of package names (packages.list) and installs them all at once.
As part of my preparation for the upcoming Lucid install, I have updated/retested the script and packages in a vm.
Quick Instructions and file downloads here.
______________________________
The code for the script is next, followed by my list of packages. Its simple but it does the job :-)
cleanstart-packages.list.sh
#! /bin/bash ################################################################################ # cleanstart-packages.list.sh # by silverwav - OpenPGP key:03187548 15 Apr 2009 # # Note this whole script just does: # # apt-get install -y package1 package2 package3 ... # # But it reads the packages from a file(packages.list) and does some checking. # # This turns out to be very handy as you can add notes or comment things out. # (After 6 months its handy to have a note of what packages to reinstall and why!) # Useful for clean installs and VMs to load optional packages quickly. # ################################################################################ # # Usage: # cleanstart-packages.list.sh # (reads a file called packages.list by default). # or # cleanstart-packages.list.sh <filename> # # Any line starting with a # is ignored as are Blank lines. # Any other lines, the first word is taken as the package name. # # Stops on any error. Correct and rerun. # ################################################################################ # # Based on a script found on this site: # Ubuntu TIP: Automating Package Installation – apt-get to the rescue # http://tech.shantanugoel.com/2008/03/06/ # ubuntu-tip-automating-package-installation-%E2%80%93-apt-get-to-the-rescue.html # ################################################################################ clear echo "--------------------------------------------------------------------------------" echo " (cleanstart) Script for installing packages (client) " echo "--------------------------------------------------------------------------------" # ensure script is run as root/sudo if [ "$(id -u)" != "0" ] then echo "" echo "Must execute the script as root user." echo "--------------------------------------------------------------------------------" exit 1 fi # check the argument count if [ $# -gt "1" ] then echo "" echo "Only one file with package names allowed." echo "--------------------------------------------------------------------------------" exit 1 fi ################################################################################ #### Main #### args: (1) #### 1. [out] List of input package names ################################################################################ # package names to be installed PACKAGE_NAME_LIST="" # check if filename was supplied as comand line parameter if [ $# -eq "1" ] then PACKAGE_NAME_LIST=$(cat $1 | grep -v -e "^#" | cut -f1 -d' ') else PACKAGE_NAME_LIST=$(cat packages.list | grep -v -e "^#" | cut -f1 -d' ') fi echo "" echo "Installing packages:" ${PACKAGE_NAME_LIST} echo "--------------------------------------------------------------------------------" apt-get install -y ${PACKAGE_NAME_LIST} echo "" echo "Done" echo "--------------------------------------------------------------------------------"
packages.list
################################################################################ # # cleanstart-packages.list.sh # by silverwav - OpenPGP key:03187548 15 Apr 2009 # # Any line starting with a # is ignored as are Blank lines. # Any other lines, the first word is taken as the package name. # ################################################################################ # Add Repositories before you start # Add medibuntu.org repo 1st! # sudo wget http://www.medibuntu.org/sources.list.d/lucid.list --output-document=/etc/apt/sources.list.d/medibuntu.list # sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update # #*** Extras ubuntu-restricted-extras - Commonly used restricted packages timer-applet - a countdown timer applet for the GNOME panel #***VMWare build-essential #xinetd #linux-headers-$(uname -r) #***Prefernces compizconfig-settings-manager - Compiz configuration settings manager simple-ccsm - Simple Compizconfig settings manager hardinfo - UNIX/Linux hardware information #***Administration gparted - GNOME partition editor firestarter - gtk program for managing and observing your firewall bum - graphical runlevel editor nvidia-settings - Tool of configuring the NVIDIA graphics driver #***Accessories revelation - GNOME2 Password manager parcellite - A lightweight GTK+ clipboard manager pcmanfm - an extremely fast and lightweight file manager for X gmountiso - a PyGTK GUI to mount your cd images #xfe - lightweight file manager for X11 #gnome-commander - nice and fast file manager for the GNOME desktop #***Accessories - Search catfish - file search tool that support several different engines recoll - Personal full text search package with a QT GUI #***Accessories - Text notecase - hierarchical note manager (aka outliner) emacs - GNU Emacs is the extensible self-documenting text editor. vim-gnome - Vi IMproved - enhanced vi editor - with GNOME2 GUI #***Games #doom-wad-shareware - Shareware game files for the 3D game DOOM #prboom - clone of the legendary first person shooter Doom #***Graphics gimp - The GNU Image Manipulation Program gthumb - an image viewer and browser mtpaint - painting program to create pixel art and manipulate digital photos ##***Internet pidgin - graphical multi-protocol instant messaging client for X chromium-browser epiphany-browser - Intuitive web browser #***SABnzb+ sabnzbdplus sabnzbdplus-theme-smpl #***Office #***Programming geany - A fast and lightweight IDE meld - graphical tool to diff and merge files regexxer - A visual search and replace tool #***Sound & Video #Add medibuntu.org repo 1st! #***Sound & Video - Codecs w64codecs libdvdcss2 - Simple foundation for reading DVDs - runtime libraries lame - LAME Ain't an MP3 Encoder #***Sound & Video - Player mplayer - The Ultimate Movie Player For Linux - Medibuntu package mplayer-fonts - Fonts for mplayer mplayer-skin-blue - blue skin for mplayer mplayer-skins - Skins for the Ubuntu mplayer Package #mozilla-mplayer - MPlayer-Plugin for Mozilla vlc - multimedia player and streamer xine-ui - the xine video player, user interface #***Sound & Video - DVD acidrip - ripping and encoding DVD tool using mplayer and mencoder audacity - A fast, cross-platform audio editor avidemux - a free video editor - gtk version devede - program to create video DVDs dvd95 - DVD9 to DVD5 converter dvdrip - perl front end for transcode k3b - A sophisticated KDE CD burning application k9copy - DVD backup tool for KDE mkvtoolnix-gui - mmg a set of tools to work with Matroska files - GUI frontend #***Sound & Video - Sound Tools padevchooser - PulseAudio Device Chooser pavumeter - PulseAudio Volume Meter soundkonverter - audio converter frontend for KDE #***System Tools samba - a LanManager-like file and printer server for Unix nautilus-gksu - privilege granting extension for nautilus using gksu - Open as Administrator nautilus-open-terminal - nautilus plugin for opening terminals in arbitrary local paths gconf-editor - An editor for the GConf configuration system sysinfo - UNIX/Linux system information (MONO) ttf-liberation - Free fonts with the same metrics as Times, Arial and Courier testdrive - run the daily Ubuntu ISO in a virtual machine
Log
-------------------------------------------------------------------------------- (cleanstart) Script for installing packages (client) -------------------------------------------------------------------------------- Installing packages: ubuntu-restricted-extras timer-applet build-essential compizconfig-settings-manager simple-ccsm hardinfo gparted firestarter bum nvidia-settings revelation parcellite pcmanfm gmountiso catfish recoll notecase emacs vim-gnome gimp gthumb mtpaint pidgin chromium-browser epiphany-browser sabnzbdplus sabnzbdplus-theme-smpl geany meld regexxer w64codecs libdvdcss2 lame mplayer mplayer-fonts mplayer-skin-blue mplayer-skins vlc xine-ui acidrip audacity avidemux devede dvd95 dvdrip k3b k9copy mkvtoolnix-gui padevchooser pavumeter soundkonverter samba nautilus-gksu nautilus-open-terminal gconf-editor sysinfo ttf-liberation testdrive -------------------------------------------------------------------------------- Reading package lists... Building dependency tree... Reading state information... gconf-editor is already the newest version. ttf-liberation is already the newest version. The following extra packages will be installed: akonadi-server audacity-data avidemux-common avidemux-plugins-common avidemux-plugins-gtk bridge-utils ca-certificates-java cabextract cdrdao chromium-browser-inspector cracklib-runtime dpkg-dev dvdauthor dvdrip-doc dvdrip-utils emacs23 emacs23-bin-common emacs23-common emacsen-common epiphany-browser-data exiv2 faad fakeroot ffmpeg flac flashplugin-installer fping freepats g++ g++-4.4 gdebi-kde gimp-data gir1.0-clutter-1.0 gir1.0-freedesktop gir1.0-glib-2.0 gir1.0-gstreamer-0.10 gir1.0-gtk-2.0 gnome-audio gnome-js-common gocr gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gthumb-data ia32-libs icedax icedtea-6-jre-cacao icedtea6-plugin icoutils imagemagick install-package java-common javascript-common k3b-data kcm-phonon-xine kdebase-runtime kdebase-runtime-data kdebase-workspace-bin kdebase-workspace-data kdebase-workspace-kgreet-plugins kdelibs-bin kdelibs-data kdelibs4c2a kdelibs5 kdelibs5-data kdemultimedia-kio-plugins kdepim-runtime kdepimlibs-data kdepimlibs5 kdesudo kpackagekit ksysguardd kubuntu-debug-installer lib32asound2 lib32bz2-1.0 lib32gcc1 lib32ncurses5 lib32stdc++6 lib32v4l-0 lib32z1 liba52-0.7.4 libaccess-bridge-java libaccess-bridge-java-jni libaio1 libakonadiprivate1 libanyevent-perl libao2 libass4 libasync-interrupt-perl libattica0 libaudio2 libavahi-qt3-1 libavcodec-extra-52 libavdevice52 libavfilter0 libavformat-extra-52 libavidemux0 libavutil-extra-49 libbabl-0.0-0 libboost-program-options1.40.0 libboost-regex1.40.0 libc6-i386 libcdaudio1 libcddb2 libcelt0-0 libclucene0ldbl libcommon-sense-perl libcrack2 libdbusmenu-qt2 libdc1394-22 libdca0 libdirac-encoder0 libdvbpsi5 libdvdnav4 libdvdread4 libebml0 libenca0 libevent-execflow-perl libevent-perl libevent-rpc-perl libexiv2-6 libfaac0 libfaad2 libfftw3-3 libflac++6 libflite1 libgconfmm-2.6-1c2 libgegl-0.0-0 libgimp2.0 libgirepository1.0-0 libglademm-2.4-1c2a libgme0 libgraphviz4 libgsm1 libgtk2-ex-formfactory-perl libid3tag0 libilmbase6 libintl-perl libio-socket-ssl-perl libiodbc2 libiptcdata0 libiso9660-7 libjpeg-progs libjs-mochikit libk3b6 libkate1 libkcddb4 libkephal4 libkfontinst4 libkscreensaver5 libksgrd4 libkworkspace4 liblua5.1-0 liblua50 liblualib50 liblzma1 liblzo2-2 libmad0 libmagickcore2-extra libmatroska0 libmimic0 libmjpegtools-1.9 libmms0 libmng1 libmodplug0c2 libmp3lame0 libmp4v2-0 libmpcdec3 libmpeg2-4 libmysqlclient16 libnet-libidn-perl libnet-ssleay-perl libnetpbm10 libofa0 libopenal1 libopencore-amrnb0 libopencore-amrwb0 libopenexr6 libopenjpeg2 liborc-0.4-0 libpackagekit-glib2-12 libpackagekit-qt-12 libphonon4 libplasma-applet-system-monitor4 libplasma-geolocation-interface4 libplasma3 libplasmaclock4 libpolkit-qt-1-0 libpostproc-extra-51 libprocesscore4 libprocessui4 libqca2 libqimageblitz4 libqt3-mt libqt4-assistant libqt4-dbus libqt4-designer libqt4-help libqt4-network libqt4-opengl libqt4-qt3support libqt4-script libqt4-scripttools libqt4-sql libqt4-sql-mysql libqt4-svg libqt4-test libqt4-webkit libqt4-xml libqt4-xmlpatterns libqtcore4 libqtgui4 libquicktime1 libraptor1 librasqal2 librdf0 libreadline5 libruby1.8 libschroedinger-1.0-0 libsdl-image1.2 libsdl1.2debian libseed0 libsidplay1 libsolidcontrol4 libsolidcontrolifaces4 libsoprano4 libsoundtouch1c2 libsox-fmt-alsa libsox-fmt-base libsox1a libssh-4 libstdc++6-4.4-dev libstreamanalyzer0 libstreams0 libsvga1 libswscale-extra-0 libtar libtaskmanager4 libtidy-0.99-0 libtwolame0 libupnp3 libvamp-hostsdk3 libvcdinfo0 libvlc2 libvlccore2 libweather-ion4 libwildmidi0 libwxbase2.8-0 libwxgtk2.8-0 libx264-67 libx264-85 libxcb-keysyms1 libxcb-shape0 libxcb-shm0 libxcb-xv0 libxine1 libxine1-bin libxine1-console libxine1-ffmpeg libxine1-misc-plugins libxine1-x libxvidcore4 lsdvd mencoder menu mjpegtools mkvtoolnix mp3gain mplayer-nogui mppenc mysql-common mysql-server-core-5.1 netpbm nspluginwrapper ogmtools openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib oxygen-icon-theme packagekit packagekit-backend-apt paman paprefs par2 patch pavucontrol phonon phonon-backend-xine pidgin-data pidgin-libnotify plasma-dataengines-workspace plasma-scriptengine-javascript plasma-widgets-workspace polkit-kde-1 pulseaudio-module-zeroconf python-chardet python-cheetah python-cherrypy python-compizconfig python-configobj python-feedparser python-kde4 python-packagekit python-qt4 python-sip python-utidylib python-yenc qemu-common qemu-kvm shared-desktop-ontologies software-properties-kde soprano-daemon sox speex subtitleripper timidity timidity-daemon transcode transcode-doc transcode-utils transfig ttf-dejavu ttf-dejavu-extra ttf-mscorefonts-installer twolame tzdata-java unrar update-manager-kde vamps vcdimager vim-gui-common vim-runtime virtuoso-nepomuk virtuosoconverter vlc-data vlc-nox vlc-plugin-pulse vorbis-tools vorbisgain wavpack wwwconfig-common xz-utils zsync Suggested packages: ladspa-plugin strigi-daemon doodle tracker beagle chromium-browser-l10n debian-keyring debian-maintainers gnomebaker rar emacs23-el dhcp3-server xulrunner-1.9 konqueror-nsplugins msttcorefonts ttf-xfree86-nonfree xfs g++-multilib g++-4.4-multilib gcc-4.4-doc libstdc++6-4.4-dbg gimp-help-en gimp-help libgimp-perl gimp-data-extras gnome-core xfsprogs reiserfsprogs reiser4progs jfsutils kpartx dmraid mesa-utils cdrkit-doc libterm-readline-gnu-perl libterm-readline-perl-perl imagemagick-doc default-jre equivs apache2 httpd k3b-extrathemes k3b-i18n normalize-audio movixmaker-2 libk3b6-extracodecs djvulibre-bin plasma-scriptengines perl-suid hspell lib32asound2-plugins libjson-perl libjson-xs-perl libguard-perl nas libfaad0 debhelper libfftw3-dev libintl-xs-perl libio-socket-inet6-perl libqca2-plugin-cyrus-sasl libqca2-plugin-gnupg libqca2-plugin-ossl libqca2-plugin-pkcs11 libqt3-mt-psql libqt3-mt-mysql libqt3-mt-odbc libqt4-dev qt4-qtconfig raptor-utils redland-utils librdf-storage-postgresql librdf-storage-mysql librdf-storage-sqlite sidplay-base xsidplay libsox-fmt-all libstdc++6-4.4-doc libgnomeprintui2.2-0 libxine1-doc libxine-doc mplayer-doc mpeg2dec a52dec sun-java6-fonts ttf-sazanami-gothic ttf-kochi-gothic ttf-sazanami-mincho ttf-kochi-mincho ttf-wqy-zenhei ttf-telugu-fonts ttf-oriya-fonts ttf-kannada-fonts ttf-bengali-fonts diffutils-doc phonon-backend-gstreamer phonon-backend-vlc phonon-backend-mplayer python-qt4-dbg ubuntu-vm-builder kvm-pxe uml-utilities qemu-kvm-extras antiword catdoc libimage-exiftool-perl unrtf xpdf sabnzbdplus-theme-plush sabnzbdplus-theme-iphone openbsd-inetd inet-superserver smbldap-tools ldb-tools pmidi fluid-soundfont-gm fluid-soundfont-gs xvidconf xfig cscope vim-doc mozilla-plugin-vlc videolan-doc mysql-client postgresql-client apache apache-ssl Recommended packages: slocate chromium-codecs-ffmpeg chromium-codecs-ffmpeg-nonfree head cdda2wav The following NEW packages will be installed acidrip akonadi-server audacity audacity-data avidemux avidemux-common avidemux-plugins-common avidemux-plugins-gtk bridge-utils build-essential bum ca-certificates-java cabextract catfish cdrdao chromium-browser chromium-browser-inspector compizconfig-settings-manager cracklib-runtime devede dpkg-dev dvd95 dvdauthor dvdrip dvdrip-doc dvdrip-utils emacs emacs23 emacs23-bin-common emacs23-common emacsen-common epiphany-browser epiphany-browser-data exiv2 faad fakeroot ffmpeg firestarter flac flashplugin-installer fping freepats g++ g++-4.4 gdebi-kde geany gimp gimp-data gir1.0-clutter-1.0 gir1.0-freedesktop gir1.0-glib-2.0 gir1.0-gstreamer-0.10 gir1.0-gtk-2.0 gmountiso gnome-audio gnome-js-common gocr gparted gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gthumb gthumb-data hardinfo ia32-libs icedax icedtea-6-jre-cacao icedtea6-plugin icoutils imagemagick install-package java-common javascript-common k3b k3b-data k9copy kcm-phonon-xine kdebase-runtime kdebase-runtime-data kdebase-workspace-bin kdebase-workspace-data kdebase-workspace-kgreet-plugins kdelibs-bin kdelibs-data kdelibs4c2a kdelibs5 kdelibs5-data kdemultimedia-kio-plugins kdepim-runtime kdepimlibs-data kdepimlibs5 kdesudo kpackagekit ksysguardd kubuntu-debug-installer lame lib32asound2 lib32bz2-1.0 lib32gcc1 lib32ncurses5 lib32stdc++6 lib32v4l-0 lib32z1 liba52-0.7.4 libaccess-bridge-java libaccess-bridge-java-jni libaio1 libakonadiprivate1 libanyevent-perl libao2 libass4 libasync-interrupt-perl libattica0 libaudio2 libavahi-qt3-1 libavcodec-extra-52 libavdevice52 libavfilter0 libavformat-extra-52 libavidemux0 libavutil-extra-49 libbabl-0.0-0 libboost-program-options1.40.0 libboost-regex1.40.0 libc6-i386 libcdaudio1 libcddb2 libcelt0-0 libclucene0ldbl libcommon-sense-perl libcrack2 libdbusmenu-qt2 libdc1394-22 libdca0 libdirac-encoder0 libdvbpsi5 libdvdcss2 libdvdnav4 libdvdread4 libebml0 libenca0 libevent-execflow-perl libevent-perl libevent-rpc-perl libexiv2-6 libfaac0 libfaad2 libfftw3-3 libflac++6 libflite1 libgconfmm-2.6-1c2 libgegl-0.0-0 libgimp2.0 libgirepository1.0-0 libglademm-2.4-1c2a libgme0 libgraphviz4 libgsm1 libgtk2-ex-formfactory-perl libid3tag0 libilmbase6 libintl-perl libio-socket-ssl-perl libiodbc2 libiptcdata0 libiso9660-7 libjpeg-progs libjs-mochikit libk3b6 libkate1 libkcddb4 libkephal4 libkfontinst4 libkscreensaver5 libksgrd4 libkworkspace4 liblua5.1-0 liblua50 liblualib50 liblzma1 liblzo2-2 libmad0 libmagickcore2-extra libmatroska0 libmimic0 libmjpegtools-1.9 libmms0 libmng1 libmodplug0c2 libmp3lame0 libmp4v2-0 libmpcdec3 libmpeg2-4 libmysqlclient16 libnet-libidn-perl libnet-ssleay-perl libnetpbm10 libofa0 libopenal1 libopencore-amrnb0 libopencore-amrwb0 libopenexr6 libopenjpeg2 liborc-0.4-0 libpackagekit-glib2-12 libpackagekit-qt-12 libphonon4 libplasma-applet-system-monitor4 libplasma-geolocation-interface4 libplasma3 libplasmaclock4 libpolkit-qt-1-0 libpostproc-extra-51 libprocesscore4 libprocessui4 libqca2 libqimageblitz4 libqt3-mt libqt4-assistant libqt4-dbus libqt4-designer libqt4-help libqt4-network libqt4-opengl libqt4-qt3support libqt4-script libqt4-scripttools libqt4-sql libqt4-sql-mysql libqt4-svg libqt4-test libqt4-webkit libqt4-xml libqt4-xmlpatterns libqtcore4 libqtgui4 libquicktime1 libraptor1 librasqal2 librdf0 libreadline5 libruby1.8 libschroedinger-1.0-0 libsdl-image1.2 libsdl1.2debian libseed0 libsidplay1 libsolidcontrol4 libsolidcontrolifaces4 libsoprano4 libsoundtouch1c2 libsox-fmt-alsa libsox-fmt-base libsox1a libssh-4 libstdc++6-4.4-dev libstreamanalyzer0 libstreams0 libsvga1 libswscale-extra-0 libtar libtaskmanager4 libtidy-0.99-0 libtwolame0 libupnp3 libvamp-hostsdk3 libvcdinfo0 libvlc2 libvlccore2 libweather-ion4 libwildmidi0 libwxbase2.8-0 libwxgtk2.8-0 libx264-67 libx264-85 libxcb-keysyms1 libxcb-shape0 libxcb-shm0 libxcb-xv0 libxine1 libxine1-bin libxine1-console libxine1-ffmpeg libxine1-misc-plugins libxine1-x libxvidcore4 lsdvd meld mencoder menu mjpegtools mkvtoolnix mkvtoolnix-gui mp3gain mplayer mplayer-fonts mplayer-nogui mplayer-skin-blue mplayer-skins mppenc mtpaint mysql-common mysql-server-core-5.1 nautilus-gksu nautilus-open-terminal netpbm notecase nspluginwrapper nvidia-settings ogmtools openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib oxygen-icon-theme packagekit packagekit-backend-apt padevchooser paman paprefs par2 parcellite patch pavucontrol pavumeter pcmanfm phonon phonon-backend-xine pidgin pidgin-data pidgin-libnotify plasma-dataengines-workspace plasma-scriptengine-javascript plasma-widgets-workspace polkit-kde-1 pulseaudio-module-zeroconf python-chardet python-cheetah python-cherrypy python-compizconfig python-configobj python-feedparser python-kde4 python-packagekit python-qt4 python-sip python-utidylib python-yenc qemu-common qemu-kvm recoll regexxer revelation sabnzbdplus sabnzbdplus-theme-smpl samba shared-desktop-ontologies simple-ccsm software-properties-kde soprano-daemon soundkonverter sox speex subtitleripper sysinfo testdrive timer-applet timidity timidity-daemon transcode transcode-doc transcode-utils transfig ttf-dejavu ttf-dejavu-extra ttf-mscorefonts-installer twolame tzdata-java ubuntu-restricted-extras unrar update-manager-kde vamps vcdimager vim-gnome vim-gui-common vim-runtime virtuoso-nepomuk virtuosoconverter vlc vlc-data vlc-nox vlc-plugin-pulse vorbis-tools vorbisgain w64codecs wavpack wwwconfig-common xine-ui xz-utils zsync 0 upgraded, 401 newly installed, 0 to remove and 0 not upgraded. Need to get 411MB of archives. After this operation, 1,338MB of additional disk space will be used.
[…] run cleanstart-packages.list.sh after install of Lucid to put all my packages […]
Taking A Chance On Lucid 10.04 Beta 1 :-) « SilverWav's Journal
March 19, 2010 at 9:27 pm
Nice script, I’ll give it a try on next install
Thanks
Salimane Adjao Moustapha
March 21, 2010 at 4:25 pm
Glad you like it – it have saved me a lot of time and encouraged me to try out new versions of Ubuntu more often.
I sometimes clean install the RC to get used to it and report bugs.
Then once the Final comes out clean install again.
Having a separate home and keeping the .dot files means I don’t have to reconfigure any apps and running the script puts back all the packages I like.
Up and running in under 30 minutes :-)
SilverWav
March 26, 2010 at 10:01 am
Thanks for this script, just one question (can test it now) :
Can we put several packagge to install with the same description :
package1 package2 – great software
VoidAndAny
March 26, 2010 at 9:05 am
* The basics.
The script just does:
apt-get install -y package1 package2 package3 …
* More detail.
The script looks at each line in the list and captures the first word.
It disregards everything else from that line.
e.g.
nautilus-gksu – Open as Administrator
nautilus-open-terminal – nautilus plugin
From these two lines the script would extract
nautilus-gksu
nautilus-open-terminal
Having the same description would make no difference as they are discarded.
If you have a package name that is repeated later in the list…
Short answer:
I don’t think it will matter.
Longer answer:
Whatever is legal for apt-get is legal for this script.
I use TestDrive to test all is working before hitting a live box.
So hopefully that answers your question :-)
SilverWav
March 26, 2010 at 9:54 am
Many thanks for your answer, and again thanks for your script.
I use a modified version of your script, mine can add repositories (PPA and other), can add GPG keys associated with the repositories and can remove package.
You can find it here : http://voidandany.free.fr/index.php/installer-de-facon-automatique-une-liste-de-package-et-les-depots-associes/ (sorry it’s in french, but the script and configuration section is understandable)
voidandany
May 11, 2010 at 12:10 pm
Hi voidandany,
Well that looks cool :-)
I will have a look through your code and your packages.
Glad you found it useful :-)
SilverWav
May 11, 2010 at 1:13 pm
[…] get it to load the vm but no big. Lucid Beta 2 Installed in the vm with no problems. Ran my package Cleanstart script and no issues so […]
Taking A Chance On Lucid 10.04 Beta 2 :-) « SilverWav's Journal
April 11, 2010 at 12:46 am
[…] leave a comment » Full Article. […]
Note – cleanstart-packages.list.sh « SilverWav's Journal
April 14, 2010 at 9:56 am
[…] This is a list of the best/most useful packages I use. Note that I have a 64bit system and Nvidia graphics. You may have to adjust the list for your system. I test it out in a vm (TestDrive) first. Details here. […]
Lucid 10.04 – All the stuff people forget to tell you – Flash, Codecs, Medibuntu, Packages, Fixes. « SilverWav's Journal
May 3, 2010 at 9:52 am
[…] le deuxième point (ré-installation), il y a peu de temps je suis tombé sur cet article A Cleanstart for your new Ubuntu (Install Packages from a list) qui met a disposition un script bash pour ré-installer complétement un PC à partir d’un […]
Installer de façon automatique une liste de package et les dépôts associés | Void And Any
July 19, 2010 at 9:02 pm
Great script.
You should add something so you can run custom terminal commands, for packages that make you finish the “setup” after the apt-get install is finished.
Some examples I have run into: creating users, moving/copying a directory, editing config files, linking files so one application can talk to another (had to do this manually with zoneminder and apache)
rveach
July 18, 2012 at 5:14 pm
I keep these files on ubuntuone, to keep up with my changing configuration I try to use the script with every package install. Very useful script! Thank you.
I made a minor change with a bit of google programming :) so it will only handle not installed packages:
subtract() {
echo $( fgrep -vx “${1// /$’\n’}” <<< "${2// /$'\n'}" ) ;
}
INSTALLED=$(dpkg –get-selections | grep "[[:space:]]install$" | cut -f1)
PACKAGES_TO_INSTALL=($(subtract "${INSTALLED}" "${PACKAGE_NAME_LIST}"))
#
#
echo ""
echo "Installing packages:" ${PACKAGES_TO_INSTALL}
echo "——————————————————————————–"
apt-get install -y ${PACKAGES_TO_INSTALL}
John
October 27, 2013 at 9:16 am