GithubHelp home page GithubHelp logo

thewebsitenursery / ubuntu-desktop_setup Goto Github PK

View Code? Open in Web Editor NEW

This project forked from alghanmi/ubuntu-desktop_setup

0.0 2.0 0.0 334 KB

Initial setup and customization of an Ubuntu LTS desktop environment

License: MIT License

Shell 100.00%

ubuntu-desktop_setup's Introduction

Ubuntu Desktop Setup & Configuration Script

As a personal preference, I use the latest Ubuntu Long Term Support (LTS) distribution for my desktop environemnt. Since I reproduce this environment on multiple machines (desktop, laptop, work, etc), it is only obvious to automate the process. This setup has been tested on Ubuntu 12.04 LTS (Precise Pangolin)

The goal is to setup a full-fledged workstation with applications for development, office productivity, basic photo/audio/video editing and entertainment.

Canonical does not implement a great deal of changes between LTS releases in the Ubuntu environment. Therefore, you can use this configuration script with any recent release with minimum to no changes.

Applications

The complete list of packages to be installed are available in the packages.list file. Here is a list with the most significant applications and packages:

  • Essential Software & Services: ssh, openssl, build-essential, binutils, sudo, ntp, screen, byobu & linux headers
  • Networking Applications: curl, traceroute, nmap, Filezilla, OpenVPN & Network Manager VPN Plugins
  • Web Server: lighttpd, Apache Tomcat (disabled by default)
  • Database Server & Apps: MySQL & MySQL Workbench
  • EMail MTA: Exim Light
  • Programming Languages & Platforms: C/C++, Perl, PHP 5, Python 3, Ruby 1.9.3, Java (OpenJDK 7)
  • Version Control: Git, Subversion, Mercurial, bzr
  • Text Editors: Vim 7, Emacs 24, Gedit, Nano
  • IDEs: Eclipse, Netbeans
  • Disk Utilities: gParted, Zip, Rar, Ace, Wipe
  • Desktop Apps: LibreOffice, Firefox, Thunderbird, Dropbox, Shutter
  • Google Apps: Chromium, Chrome, Earth, GoogleTalk Plugin
  • Graphics: Gimp, Inkscape, dia
  • PDF Support: Acrobat Reader & pdftk
  • Multimedia: ubuntu-restricted-extras, non-free-codecs, mplayer, audacity, vlc, banshee, openshot, handbrake
  • LaTeX: TeXLive, TeXMaker, Gummi & Ghost Script
  • Virtualization: Virtual Box

Notable Setup Actions

The following actions are performed by the script:

  • Set repositories to include:
    • All official main, restricted, universe, multiverse, backport and extra repositories
    • Canonical partner repositories
    • VideoLan (for dvd playback)
    • Google Linux Repository
    • Emacs 24 Snapshots PPA
    • Virtual Box Repository
    • Dropbox
    • Handbrake PPA
  • Install packages in packages.list
  • Add $SUPER_USER as member of sudo, adm and www-data groups.
  • Create a local [shared] git user account for locally hosted git repositories
  • Set Timezone
  • Set Locale (default is en_US.UTF-8)
  • Set iSpell wordlist (default is American English)
  • Hostname
  • DNS (inserting Google Public DNS 8.8.8.8, 8.8.4.4)
  • SSH Setup
    • Change port to non-standard port number
    • Explicitly add inet interface to Listen directive
    • Disable root login
    • Disable password login
    • Disable X11 forwarding
    • Disable PAM & DNS
    • Only allow $SUPER_USER to access machine via ssh
  • Disable Guest Login on greeting screen
  • Make GPG Use SHA256 instead of SHA1

How to Use

Steps 0 & 1 are mainly advise on how to start the setup process. Step 2 is the

Step 0 - BACKUP, Backup and backup

As always, you need to backup your current system just in case something goes wrong. I, personally, like to refer to the 3-2-1 Backup Strategy: for each file you should have 3 copies on 2 different storage mediums with at least 1 off-site.

Step 1 - Download ISO, Prep & Install

  1. Go to Ubuntu.com and download the latest ISO. Unless you have a bad Internet connection, you should download the Desktop Live CD version (not the DVD). The file would be named ubuntu-XX.XX-desktop-amd64.iso or ubuntu-XX.XX-desktop-i386.iso where XX.XX is the release number, e.g. 12.04.
  2. Create a Boot CD or USB drive from the ISO file. Instructions for:
  3. Boot your machine from your medium of choice and run the live CD. This may be a good time to check if the following are functioning properly in the live CD. If one is not working as expected, don't attempt to install unless you know how to fix it:
    • Audio
    • WiFi or Ethernet connection
    • Proper screen resolution and colors
  4. Click on the Install Ubuntu icon to start the installation process. You should check the following options:
    • Download updates while installing
    • Install this third party software
  5. Pay special attention to the Allocate Drive Space dialog. Actions performed in this step are irreversible and non-trivial to change afterwards.

Step 2 - Customize & Run

This script is customizable in terms of specifying machine-specific attributes such as hostname, ssh port, forwarding email, etc. Customization of the desktop is based on variables set in a file named setup-env.conf. Once you checkout the code or download it from github, you can run the script as follows:

# Setup configuration script
cp setup-env.conf.default setup-env.conf

# Edit configuration file to your liking
nano desktop_setup.sh

# Run the main script
chmod 755 desktop_setup.sh
./desktop_setup.sh

Non-Repository Applications

A number of important applications and/or platforms are not supported in the official Ubuntu repositories or in a trusted PPA. Therefore, these applications should be downloaded directly from their respective websites.

The wiki pages for this repository hosts the details for installing and setting up each of these applications. Here is the list of applications:

Optional System Configurations

Some users may have application or hardware specific configuration options they would like to depoly. Here is a list of the ones I personally worked with also available through the The wiki pages:

Whats Next

The following items are a kind of TODO list of what I should add to this script

  • GUI Preferences: the list of changes to the machine that can not be done with the command line
  • Incorporate configuration from my dotfiles repository

License

See the LICENSE file.

ubuntu-desktop_setup's People

Contributors

alghanmi avatar

Watchers

James Cloos avatar The Website Nursery avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.