Skip to content

Instantly share code, notes, and snippets.

@h4cc
Last active July 11, 2021 10:32
Show Gist options
  • Star 39 You must be signed in to star a gist
  • Fork 15 You must be signed in to fork a gist
  • Save h4cc/c54d3944cb555f32ffdf25a5fa1f2602 to your computer and use it in GitHub Desktop.
Save h4cc/c54d3944cb555f32ffdf25a5fa1f2602 to your computer and use it in GitHub Desktop.
Ubuntu 18.04 Bionic Beaver - Basic packages i usually install
#
# Ubuntu 18.04 (Bionic Beaver)
#
# Basic packages i usually install.
#
# Author: Julius Beckmann <github@h4cc.de>
#
# Upgraded Script from 17.04: https://gist.github.com/h4cc/09b7fe843bb737c8039ac62d831f244e
# Upgraded Script from 16.04: https://gist.github.com/h4cc/fe48ed9d85bfff3008704919062f5c9b
# Upgraded Script from 14.04: https://gist.github.com/h4cc/7be7f940325614dc59fb
#
.PHONY: all preparations libs update upgrade fonts python ruby virtualbox vagrant graphics darktable networking google_chrome dropbox slack archives media pandoc system harddisk docker ansible filesystem nodejs apache2 php72 php56 mysql mysql-workbench postgres memcached mongodb tools encfs_manager nautilus httpie esl_repo erlang elixir couchdb teamviewer xmind presentation idea_intellij
all:
@echo "Installation of ALL targets"
make preparations libs
make upgrade
make fonts
make graphics darktable
make networking google_chrome dropbox httpie
make media pandoc
make presentation
make archives system harddisk filesystem tools encfs_manager nautilus
make docker ansible virtualbox vagrant
make nodejs
make apache2 php7 mysql mysql-workbench memcached mongodb
make postgres
make openoffice owncloud
make erlang elixir
make couchdb
make teamviewer
make xmind
preparations:
make update
sudo apt -y install software-properties-common build-essential checkinstall wget curl git libssl-dev apt-transport-https ca-certificates
sudo dpkg --add-architecture i386
libs:
sudo apt -y install libavahi-compat-libdnssd-dev
update:
sudo apt update
upgrade:
sudo apt -y upgrade
fonts:
mkdir -p ~/.fonts/
rm -f ~/.fonts/FiraCode-*
wget https://github.com/tonsky/FiraCode/raw/master/distr/otf/FiraCode-Bold.otf -O ~/.fonts/FiraCode-Bold.otf
wget https://github.com/tonsky/FiraCode/raw/master/distr/otf/FiraCode-Light.otf -O ~/.fonts/FiraCode-Light.otf
wget https://github.com/tonsky/FiraCode/raw/master/distr/otf/FiraCode-Medium.otf -O ~/.fonts/FiraCode-Medium.otf
wget https://github.com/tonsky/FiraCode/raw/master/distr/otf/FiraCode-Regular.otf -O ~/.fonts/FiraCode-Regular.otf
wget https://github.com/tonsky/FiraCode/raw/master/distr/otf/FiraCode-Retina.otf -O ~/.fonts/FiraCode-Retina.otf
fc-cache -v
python:
make preparations
sudo -H apt -y install python-pip
sudo -H pip install --upgrade pip
ruby:
sudo apt -y install ruby ruby-dev ruby-bundler
sudo gem install bundler
graphics:
sudo apt -y install gimp gimp-data gimp-plugin-registry gimp-data-extras geeqie graphviz jpegoptim
darktable:
sudo apt -y install darktable
networking:
sudo apt -y install pidgin filezilla vinagre remmina chromium-browser pepperflashplugin-nonfree bmon
google_chrome:
rm -f google-chrome-stable_current_amd64.deb
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt -y install libappindicator1 libindicator7
sudo dpkg -i google-chrome-stable_current_amd64.deb
rm -f google-chrome-stable_current_amd64.deb
dropbox:
sudo apt -y install nautilus-dropbox
slack:
apt -y install gvfs-bin libgnome-keyring0 gir1.2-gnomekeyring-1.0
rm -f slack-desktop-3.0.5-amd64.deb
wget https://downloads.slack-edge.com/linux_releases/slack-desktop-3.0.5-amd64.deb
sudo dpkg -i slack-desktop-3.0.5-amd64.deb
rm -f slack-desktop-3.0.5-amd64.deb
archives:
sudo apt -y install unace unrar zip unzip p7zip-full p7zip-rar sharutils rar uudeview mpack arj cabextract file-roller
media:
sudo apt -y install mplayer mplayer-gui libavcodec-extra libdvdread4 blender totem okular okular-extra-backends libdvdnav4 libdvdread4 gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly libdvd-pkg ubuntu-restricted-extras xubuntu-restricted-extras
sudo apt -y install libxvidcore4 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-fluendo-mp3 gstreamer1.0-libav
# DVD Playback
sudo apt -y install libdvd-pkg
sudo dpkg-reconfigure libdvd-pkg
pandoc:
sudo apt -y install pandoc pandoc-citeproc texlive texlive-latex-extra texlive-latex-base texlive-fonts-recommended texlive-latex-recommended texlive-latex-extra texlive-lang-german texlive-xetex preview-latex-style dvipng nbibtex
presentation:
sudo apt -y install pdf-presenter-console
system:
sudo apt -y install icedtea-8-plugin openjdk-8-jre subversion rabbitvcs-nautilus git curl vim network-manager-openvpn gparted gnome-disk-utility usb-creator-gtk traceroute cloc whois mssh inotify-tools openssh-server sqlite3 etckeeper stress ntp
#--- Raise inotify limit
echo "fs.inotify.max_user_watches = 524288" | sudo tee /etc/sysctl.d/60-inotify.conf
sudo service procps restart
harddisk:
sudo apt -y install smartmontools gsmartcontrol smart-notifier
docker:
exit 1 # TODO
make python
sudo apt -y install linux-image-extra-virtual
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
sudo sh -c "echo deb https://apt.dockerproject.org/repo ubuntu-bionic main > /etc/apt/sources.list.d/docker.list"
make update
sudo apt -y install docker-engine
# Installing docker compose additionally.
sudo pip install docker-compose
vagrant:
exit 1 # TODO
#[ -f vagrant_1.9.4_x86_64.deb ] || wget https://releases.hashicorp.com/vagrant/1.9.4/vagrant_1.9.4_x86_64.deb
#sudo dpkg -i vagrant_1.9.4_x86_64.deb
#rm -f vagrant_1.9.4_x86_64.deb
virtualbox:
# From https://wiki.ubuntuusers.de/VirtualBox/Installation/
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian bionic contrib" > /etc/apt/sources.list.d/virtualbox.list'
make update
sudo apt -y install virtualbox-6.0
# Install extpack
rm -f Oracle_VM_VirtualBox_Extension_Pack-6.0.2.vbox-extpack
wget https://download.virtualbox.org/virtualbox/6.0.2/Oracle_VM_VirtualBox_Extension_Pack-6.0.2.vbox-extpack
sudo VBoxManage extpack install --replace --accept-license=56be48f923303c8cababb0bb4c478284b688ed23f16d775d729b89a2e8e5f9eb Oracle_VM_VirtualBox_Extension_Pack-6.0.2.vbox-extpack
rm -f Oracle_VM_VirtualBox_Extension_Pack-6.0.2.vbox-extpack
ansible:
#sudo apt-add-repository -y ppa:ansible/ansible
#make update
sudo apt -y install ansible
filesystem:
sudo apt -y install exfat-fuse exfat-utils e2fsprogs mtools dosfstools hfsutils hfsprogs jfsutils util-linux lvm2 nilfs-tools ntfs-3g reiser4progs reiserfsprogs xfsprogs attr quota f2fs-tools sshfs go-mtpfs jmtpfs
nodejs:
exit 1 # TODO
#curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
#apt-get install -y nodejs
apache2:
sudo apt -y install apache2 apache2-utils php7.2 libapache2-mod-php7.2
sudo a2enmod rewrite
sudo systemctl restart apache2
php72:
sudo add-apt-repository -y ppa:ondrej/php
make update
sudo apt -y install -y php7.2 php7.2-cli php7.2-dev php7.2-curl php7.2-gd php7.2-gmp php7.2-json php7.2-mysql php7.2-sqlite3 php7.2-xml php7.2-bz2 php7.2-enchant php7.2-imap php7.2-intl php7.2-mbstring php7.2-soap php7.2-xsl php7.2-zip
sudo update-alternatives --set php /usr/bin/php7.2
# # TODO: Missing PHP modules here?
# sudo apt -y install php7.0-json php7.0-mcrypt php7.0-intl php7.0-cli php7.0-sqlite3 \
# php7.0-mysql php7.0-ldap php7.0-gmp php7.0-gd php7.0-curl php-pear php7.0-dev
# sudo apt -y install php-bcmath php-bz2 php-curl php-enchant php-gd php-gmp php-imap \
# php-interbase php-intl php-json php-ldap php-mbstring php-mcrypt php-mysql php-odbc \
# php-pgsql php-pspell php-readline php-recode php-soap php-sqlite3 php-sybase \
# php-tidy php-xml php-xmlrpc php-zip
# # - Set php timezone to berlin in all php.ini files.
# sudo sed -i 's@;date.timezone =@date.timezone = "Europe/Berlin"@g' /etc/php/7.0/*/php.ini
# # - Active writing of PHAR files for cli.
# sudo sed -i 's@;phar.readonly = On@phar.readonly = Off@g' /etc/php/7.0/cli/php.ini
# #- PhpMyAdmin with 24 hours session lifetime.
# sudo apt -y install phpmyadmin
# #sudo sh -c "echo \"<?php $cfg['LoginCookieValidity'] = 3600 * 24; // 24 hours.\" > /etc/phpmyadmin/conf.d/LoginTimeout.php"
php56:
sudo add-apt-repository -y ppa:ondrej/php
make update
sudo apt-get install -y php5.6 php5.6-dev php5.6-cli php5.6-mysql php5.6-mbstring php5.6-curl php5.6-gd php5.6-imap php5.6-sqlite3 php5.6-opcache php5.6-json php5.6-bz2 php5.6-mcrypt php5.6-mbstring php5.6-xml php5.6-zip
# # From: http://askubuntu.com/questions/761713/how-can-i-downgrade-from-php-7-to-php-5-6-on-ubuntu-16-04
# sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart
# sudo add-apt-repository -y ppa:ondrej/php
# make update
# sudo apt-get -y install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug php-apcu libapache2-mod-php5.6 libapache2-mod-php7.0
# sudo a2dismod php7.0
# sudo a2enmod php5.6
# sudo service apache2 restart
# sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php
mysql:
sudo apt -y install mysql-server mysql-client
#sudo mysql_secure_installation
mysql-workbench:
sudo apt -y install mysql-workbench
postgres:
sudo apt -y install postgresql postgresql-contrib pgadmin3
#sudo -i -u postgres psql
#> \password postgres
#> postgres
#> postgres
#> \q
memcached:
sudo apt -y install memcached
mongodb:
sudo apt -y install mongodb
tools:
sudo apt -y install htop meld guake password-gorilla keepassx retext terminator vim geany ghex myrepos baobab
# Fix for nautilus not starting my preferred terminal on right click.
#sudo apt-get -y remove gnome-terminal
#sudo ln -fs /usr/bin/terminator /usr/bin/gnome-terminal
httpie: ruby
sudo apt -y install python-pip
sudo pip install --upgrade httpie
encfs_manager:
sudo add-apt-repository -y ppa:gencfsm/ppa
make update
sudo apt -y install gnome-encfs-manager
nautilus:
sudo apt -y install nautilus-image-converter nautilus-compare nautilus-wipe
esl_repo:
rm -f erlang-solutions_1.0_all.deb
wget http://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i erlang-solutions_1.0_all.deb
rm -f erlang-solutions_1.0_all.deb
make update
erlang:
#make esl_repo
sudo apt -y install erlang
elixir:
#make esl_repo
sudo apt -y install elixir
couchdb:
exit 1 # TODO
#sudo apt -y install couchdb
teamviewer:
sudo apt -y install qml-module-qtquick-dialogs qml-module-qtquick-privatewidgets
rm -f teamviewer_amd64.deb
wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb
sudo dpkg -i teamviewer_amd64.deb
rm -f teamviewer_amd64.deb
xmind:
[ -f xmind-7-update1-linux_amd64.deb ] || wget --user-agent="Mozilla/5.0" http://dl2.xmind.net/xmind-downloads/xmind-7-update1-linux_amd64.deb
sudo apt -y install lame libwebkitgtk-1.0-0
sudo dpkg -i xmind-7-update1-linux_amd64.deb
idea_intellij:
sudo apt-add-repository -y ppa:mmk2410/intellij-idea
make update
sudo apt -y install intellij-idea-community
#dell_c2665_dnf:
# sudo apt -y install rpm2cpio
# rm -f C2665dnf-Linux-Driver.zip
# wget https://downloads.dell.com/FOLDER01815904M/1/C2665dnf-Linux-Driver.zip
# unzip C2665dnf-Linux-Driver.zip
@dylanmtaylor
Copy link

dylanmtaylor commented Apr 3, 2018

Hey, this is really cool, I made my own similar to this. Thanks! https://github.com/dylanmtaylor/dylan-ubuntu-makefile

@jorgejesus
Copy link

👍

@kevdogg
Copy link

kevdogg commented Apr 16, 2018

Awesome script -- how do I run this?

@pavanmehta91
Copy link

How do we run that @h4cc

@rotimi-best
Copy link

rotimi-best commented Aug 26, 2018

I am not able to install couchdb on bionic 18.04. Here is what I did:

user:~$ sudo apt-get -y install couchdb Reading package lists... Done Building dependency tree Reading state information... Done Package couchdb is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package 'couchdb' has no installation candidate

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment