UbuntuSetup: Difference between revisions

From DrewWiki
Jump to navigation Jump to search
m (Drew moved page Ubuntu17.10Setup to UbuntuSetup: Update as using 20.04)
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Install Main Apps=
=Install Main Apps=
Run install script from [https://github.com/drew-holt/ubuntu-setup-bash/blob/master/drew-8570w_u1710setup.sh]
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
#!/bin/bash
wget https://raw.githubusercontent.com/drew-holt/ubuntu-setup-bash/master/drew-8570w_setup.sh
set -x
chmod 755 drew-8570w_setup.sh
set -e
./drew-8570w_setup.sh | tee -a setup-$(date '+%Y-%m-%d-%H.%M.%S%z').log
 
date
 
# passwordless sudo for my local box
if ! sudo grep drew /etc/sudoers; then
  sudo sh -c 'echo "drew ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers'
fi
 
# gsettings peronalizations
if [[ ! $(gsettings get org.gnome.desktop.interface clock-format) == "'12h'" ]]; then
  # set 12 hour time
  gsettings set org.gnome.desktop.interface clock-format 12h
 
  # set natural scrolling, GUI under 'Settings > Mouse'
  gsettings set org.gnome.desktop.peripherals.mouse natural-scroll true
  gsettings set org.gnome.desktop.peripherals.touchpad natural-scroll false
 
  # switch windows, not applications. GUI under 'Settings > Keyboard'
  gsettings set org.gnome.desktop.wm.keybindings switch-applications "[]"
  gsettings set org.gnome.desktop.wm.keybindings switch-applications-backward "[]"
  gsettings set org.gnome.desktop.wm.keybindings switch-windows "['<Alt>Tab']"
  gsettings set org.gnome.desktop.wm.keybindings switch-windows-backward  "['<Alt><Shift>Tab']"
 
  # set gnome-terminal colors
  # gsettings list-recursively  "org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$profile/"
  # gsettings set "org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$profile/" login-shell true
  settings=("use-theme-colors false" "login-shell true" "default-show-menubar false" "foreground-color \
  'rgb(255,255,255)'" "background-transparency-percent 6" "background-color 'rgb(0,0,0)'" \
  "use-theme-transparency false" "scrollback-unlimited true" "use-transparent-background true")
  profile=$(gsettings get org.gnome.Terminal.ProfilesList default)
  profile=${profile:1:-1} # remove leading and trailing single quotes
  for i in "${settings[@]}"; do
    gsettings set "org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$profile/" $i
  done
 
  # remove clutter
  if [ -d Documents/ ]; then
    rmdir Documents/ Music/ Public/ Templates/ Videos/
    rm examples.desktop
  fi
fi
 
## disable popularity-contest
#sudo dpkg-reconfigure popularity-contest # disable
 
# oracle 8 add java repo
if [ ! -f /etc/apt/sources.list.d/webupd8team-ubuntu-java-artful.list ]; then
  sudo add-apt-repository -y ppa:webupd8team/java
  echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections
  echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections
fi
 
wait_apt() {
while true;
  sudo fuser /var/{lib/{dpkg,apt/lists},cache/apt/archives}/lock >/dev/null 2>&1; do
  echo "waiting for apt lock"
  sleep 1
done
}
 
# update all repos, upgrade, unless it's been 60 mins
#if ! find -H /var/lib/apt/lists -maxdepth 0 -mmin -60; then
  wait_apt; sudo apt-get -qy update && sudo apt-get -qy dist-upgrade
#fi
 
# install etckeeper and initialize it
if [ ! -d /etc/.git ]; then
  wait_apt; sudo apt-get install -qy etckeeper
 
  # set github here
  git config --global user.name "Drew Holt"
  git config --global user.email "[email protected]"
 
  sudo etckeeper init
fi
 
# install local installers already gathered
if [ ! -d /mnt/hdd ]; then
  sudo mkdir /mnt/hdd
  sudo mount /dev/vg_hdd/lv_hdd /mnt/hdd
  cd /mnt/hdd/iso_installers/ubuntu-installers
  wait_apt; sudo apt-get install -qy ./atom-amd64.deb ./google-chrome-stable_current_amd64.deb \
    ./insync_1.4.4.37065-artful_amd64.deb ./slack-desktop-3.1.0-amd64.deb \
    ./vagrant_2.0.3_x86_64.deb ./virtualbox-5.2_5.2.8-121009_Ubuntu_zesty_amd64.deb \
    ./skypeforlinux-64.deb ./keybase_amd64.deb ./chefdk_2.4.17-1_amd64.deb
fi
 
# for wireshark mscorefonts postfix prompts
echo wireshark-common wireshark-common/install-setuid boolean true | sudo debconf-set-selections
echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections
echo postfix postfix/mailname string drew-8570w.local | sudo debconf-set-selections
echo postfix postfix/main_mailer_type string 'Local only' | sudo debconf-set-selections
 
# install all the software
wait_apt;
DEBIAN_FRONTEND=noninteractive `#no prompting` sudo apt-get install -qy \
keepass2 synergy gnome-tweak-tool chrome-gnome-shell `#tools` \
vim vim-scripts vim-runtime vim-doc curl xd `#systools` \
lm-sensors p7zip-full exfat-utils exfat-fuse libimage-exiftool-perl `#systools` \
ubuntu-restricted-extras gimp audacity vlc vlc-plugin-fluidsynth ffmpeg atomicparsley `#media` \
openjdk-8-jdk icedtea-8-plugin `#java` \
openssh-server fail2ban `#daemon` \
openvpn network-manager-openconnect-gnome network-manager-openvpn-gnome `#network-client` \
rdesktop freerdp2-x11 xtightvncviewer sshpass qbittorrent wireshark `#netutil` \
nmap nikto chkrootkit wavemon namebench apache2-utils mailutils `#netutils` \
virtualenv python2.7-examples python-pip `#python` \
build-essential `#build-tools` \
shellcheck sqlitebrowser yamllint highlight gawk `#dev-tools` \
lynis pandoc apt-transport-https `#misc` \
xchat pidgin `#chatapps` \
oracle-java8-installer `#oraclejava8` \
ansible `#automation`
 
# Set good vim
sudo update-alternatives --set editor /usr/bin/vim.basic
 
# set env and aliases
if ! grep rdesktop "$HOME"/.bashrc; then
  cat <<EOF >> $HOME/.bashrc
  export PATH="$HOME/.local/bin:$PATH"
  alias xclip='xclip -selection clipboard'
  alias rdesktop='rdesktop -g 1280x720 -r clipboard:CLIPBOARD -r disk:share=/home/drew'
  alias get_ip='_get_ip() { VBoxManage guestproperty get "$1" "/VirtualBox/GuestInfo/Net/1/V4/IP";}; _get_ip'
EOF
fi
 
# install youtube-dl
if [ ! -f "$HOME"/.local/bin/youtube-dl ]; then
  pip install youtube-dl
fi
 
# install awscli
if [ ! -f "$HOME"/.local/bin/aws ]; then
  pip install awscli
fi
 
# configure lm_sensors
if ! lsmod | grep coretemp; then
  sudo sensors-detect --auto
fi
 
# rvm install
if [ ! -d "$HOME"/.rvm ]; then
  gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
  \curl -sSL https://get.rvm.io | bash -s stable --ruby
fi
 
# virtualbox extras pack
if ! echo $(vboxmanage list extpacks) | grep 1; then
  location="/mnt/hdd/iso_installers/ubuntu-installers/"
  echo y | sudo VBoxManage extpack install "$location"/Oracle_VM_VirtualBox_Extension_Pack-5.2.8.vbox-extpack
fi
 
# atom plugins
apm_pkgs=(atom-beautify autocomplete-python busy-signal django-templates intentions linter linter-ui-default script script-runner teletype)
 
for i in "${apm_pkgs[@]}"; do
  if [ ! -d $HOME/.atom/packages/$i ]; then
    apm install $i
  fi
done
 
# vagrant plugins
if ! vagrant plugin list | grep berkshelf; then
  vagrant plugin install vagrant-berkshelf
  vagrant plugin install berkshelf
fi
 
# nvm install
if [ ! -d "$HOME"/.nvm ]; then
  curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
fi
 
date
</syntaxhighlight>
</syntaxhighlight>


= Local Installers and config needed =
= Installers needing extra config =
* KeyBase [https://keybase.io]
* KeyBase [https://keybase.io]
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
Line 186: Line 13:
</syntaxhighlight>
</syntaxhighlight>


* Insynq [https://www.insynchq.com/downloads]
* Insync [https://www.insynchq.com/downloads]
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
insync start ### do some magic here so we don't have to resync 200GB of google drive
insync start ### do some magic here so we don't have to resync 200GB of google drive
Line 193: Line 20:
* Chrome [https://www.google.com/chrome/]
* Chrome [https://www.google.com/chrome/]
* Atom [https://atom.io/]
* Atom [https://atom.io/]
* VirtualBox [https://www.virtualbox.org/]
* Vagrant [https://www.vagrantup.com/]
* Slack [https://slack.com/downloads/linux]
* Slack [https://slack.com/downloads/linux]
* Skype [https://www.skype.com/en/get-skype/skype-for-linux/]
* Skype [https://www.skype.com/en/get-skype/skype-for-linux/]
* Docker (in script) [https://docs.docker.com/install/linux/docker-ce/ubuntu/#upgrade-docker-ce]
* Oracle JDK 8 [https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-get-on-ubuntu-16-04]
* Orackle 8 (in script)
* Docker [https://docs.docker.com/install/linux/docker-ce/ubuntu/#upgrade-docker-ce]
* rvm (in script) ''requires '''/bin/bash --login''' or fixed shell'' [https://github.com/rvm/ubuntu_rvm Ubuntu RVM Instructions]
* awscli [https://aws.amazon.com/cli/]
* awscli (in script) [https://aws.amazon.com/cli/]
* youtube-dl (pip) [https://rg3.github.io/youtube-dl/]
* nvm (in script) ''requires '''/bin/bash --login''' or fixed shell'' (in script) [https://github.com/creationix/nvm]
* nvm ''requires '''/bin/bash --login''' or fixed shell'' [https://github.com/creationix/nvm]
# ChefDK (in script) [https://downloads.chef.io/chefdk]
* rvm ''requires '''/bin/bash --login''' or fixed shell'' [https://github.com/rvm/ubuntu_rvm Ubuntu RVM Instructions]
 
== Install Manually ==
* VirtualBox (script this?) [https://www.virtualbox.org/]
* Vagrant (script this?) [https://www.vagrantup.com/]
* ChefDK (script this) [https://downloads.chef.io/chefdk]


= When needed =
= When needed =
Line 209: Line 39:
* Ramlog or equivalent for SSD
* Ramlog or equivalent for SSD
* gvm for golang
* gvm for golang
* Studio 3T (mongodb browswer) (https://studio3t.com/download/)
* Studio 3T MongoDB Browser [https://studio3t.com/download/]
* Android Studio [https://developer.android.com/studio/index.html]
* Android Studio [https://developer.android.com/studio/index.html]
* Eclipse [https://www.eclipse.org/]
* Eclipse [https://www.eclipse.org/]
Line 234: Line 64:
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
gpg --import drewholt-private-2018.03.01.key
gpg --import drewholt-private-2018.03.01.key
gpg --edit-key {KEY} trust quit
git config --global user.signingkey 7A27C99359698874
git config --global user.signingkey 7A27C99359698874
vi ~/.gnupg/gpg.conf:
default-key 2018-03-01
gpg -d somefile.tar.xz.pgp | tar -tJ
</syntaxhighlight>
</syntaxhighlight>


Line 241: Line 78:


==Set default downloads directory to Desktop==
==Set default downloads directory to Desktop==
command for firefoxx, chrome, qbit, skype, slack, hangouts, etc
command for firefox, chrome, qbit, skype, slack, hangouts, etc


== Gnome Tweak Tool ==
== Gnome Tweak Tool ==
Install extension then use Tweak tool to configure.
Install and configure extensions (done via script).
=== Dash to Dock ===
* Dash to Dock [https://extensions.gnome.org/extension/307/dash-to-dock/]
* Dash to Dock [https://extensions.gnome.org/extension/307/dash-to-dock/]
* TopIcons-plus [https://extensions.gnome.org/extension/1031/topicons/] - for Insync, Slack, Skype icons
* TopIcons-plus [https://extensions.gnome.org/extension/1031/topicons/] - for Insync, Slack, Skype icons
* OpenWeather [https://extensions.gnome.org/extension/750/openweather/]
* Grown-up notifications [https://extensions.gnome.org/extension/1335/grown-up-notifications/]


Extensions installed into:
==Gmail to handle mailto: links==
<syntaxhighlight lang=bash>
Partially scripted.
$ ~/.local/share/gnome-shell/extensions
 
* restart GNOME Shell (Alt+F2, r, Enter) and enable the extension through gnome-tweak-tool.
https://developers.google.com/web/updates/2012/02/Getting-Gmail-to-handle-all-mailto-links-with-registerProtocolHandler
</syntaxhighlight>


==Maybe Snaps==
==Maybe Snaps==

Latest revision as of 01:12, 7 September 2021

Install Main Apps

Run install script from [1]

wget https://raw.githubusercontent.com/drew-holt/ubuntu-setup-bash/master/drew-8570w_setup.sh
chmod 755 drew-8570w_setup.sh
./drew-8570w_setup.sh | tee -a setup-$(date '+%Y-%m-%d-%H.%M.%S%z').log

Installers needing extra config

run_keybase
insync start ### do some magic here so we don't have to resync 200GB of google drive

Install Manually

  • VirtualBox (script this?) [13]
  • Vagrant (script this?) [14]
  • ChefDK (script this) [15]

When needed

  • Terraform [16]
  • Gitter
  • Ramlog or equivalent for SSD
  • gvm for golang
  • Studio 3T MongoDB Browser [17]
  • Android Studio [18]
  • Eclipse [19]
  • NetBeans [20]
  • DropBox (only if needed for work)
  • PyCharm [21]
  • IntelliJ [22]
drew@drew-8570w:~$ snap list
Name                  Version                  Rev   Developer      Notes
core                  16-2.29.4.2              3604  canonical      core
drive                 current                  22    fireeye        -
juju                  2.3.1                    3106  canonical      classic
kubectl               1.9.0                    266   canonical      classic

Configure misc

Configure SSH keys

Create new ones or replenish from vault.

Configure GPG keys

Pull from vault, set git config

gpg --import drewholt-private-2018.03.01.key
gpg --edit-key {KEY} trust quit

git config --global user.signingkey 7A27C99359698874

vi ~/.gnupg/gpg.conf:
default-key 2018-03-01

gpg -d somefile.tar.xz.pgp | tar -tJ

Set gnome-screenshot default save directory

?

Set default downloads directory to Desktop

command for firefox, chrome, qbit, skype, slack, hangouts, etc

Gnome Tweak Tool

Install and configure extensions (done via script).

  • Dash to Dock [23]
  • TopIcons-plus [24] - for Insync, Slack, Skype icons

Gmail to handle mailto: links

Partially scripted.

https://developers.google.com/web/updates/2012/02/Getting-Gmail-to-handle-all-mailto-links-with-registerProtocolHandler

Maybe Snaps

drew@drew-8570w:~$ snap list
picard                1.4.2                    2     pachulo        -
spotify               1.0.70.399.g5ffabd56-26  5     spotify        -
sqlitebrowser-casept  3.9.1                    2     casept         -
vault                 v0.9.0                   236   snapcrafters   -
vscode                1.19.1-1513676564        22    flexiondotorg  classic