python
command for version 2.7, python3
for version 3.5, and/or python3.6
for version 3.6.1.python3
use the new installed python 3.6 instead of the default 3.5 release, run following 2 commands:python3
via command:#!/bin/bash |
# finished install proccess |
# first update |
sudo apt -y update && sudo apt -y upgrade |
# common |
sudo apt install -y software-properties-common # add-apt-repository needs |
sudo apt install -y ubuntu-restricted-extras # allows the user to install essential software which is not already included due to legal or copyright reasons |
# make |
sudo apt install make |
# user folders |
mkdir /home/ldrahnik/projects |
# settings: |
# notification -> disable sounds |
# sound -> sound effects -> mute |
# mouse & touchpad -> mouse pointer speed |
# user accounts -> ghost session disable |
# security & privacy -> disable entire history |
# elementary tweaks |
sudo add-apt-repository -y ppa:philip.scott/elementary-tweaks |
sudo apt -y update |
sudo apt install -y elementary-tweaks |
# tweaks: |
# terminal -> follow last tab (gsettings set org.pantheon.terminal.settings follow-last-tab true) |
# terminal -> disable unsafe paste alert |
# animations -> disable animations |
## google chrome |
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - |
sudo sh -c 'echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' >> /etc/apt/sources.list.d/google-chrome.list' |
sudo apt -y update |
sudo apt install -y google-chrome-stable |
# run: |
# do not send auto reports to google |
# git |
sudo apt install -y git |
sudo apt-get install xclip # used below in copy pasting github ssh keys |
git config --global core.excludesfile ~/.gitignore_global |
# edit ~/.gitconfig (with specific content https://gist.github.com/ldrahnik/f2124d2ff1b130bd14f53834ec0b398b) |
# create ~/.gitignore_global (with specific content https://gist.github.com/ldrahnik/f12422017b327e11e54afdeda6a6d166) |
# github ssh key: https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/ |
# github gpg key: https://help.github.com/articles/generating-a-new-gpg-key/ |
# git add gpg key: https://help.github.com/articles/telling-git-about-your-gpg-key/ |
# git enable gpg key: https://help.github.com/articles/telling-git-about-your-gpg-key/config // git --global commit.gpgsign true |
# dropbox |
cd /home/ldrahnik/projects |
git clone [email protected]:zant95/elementary-dropbox.git |
cd /elementary-dropbox |
bash install.sh |
# 1) bug (should be fixed now) - fix icon - for example icon at ~/.local/share/applications/dropbox to /home/ldrahnik/projects/elementary-dropbox/icons/64x64/apps |
# peek - an animated GIF recorder (https://github.com/phw/peek) |
sudo add-apt-repository -y ppa:peek-developers/stable |
sudo apt -y update |
sudo apt install -y peek |
# 1) settings -> keyboard -> shortcuts -> add custom: |
# `peek` - assign left shift + print screen button (image is saved to screenshots folder) |
# shutter |
sudo add-apt-repository -y ppa:shutter/ppa |
sudo apt -y update |
sudo apt install -y shutter |
# 1) after install: add to Apps/Startup/Shutter -> enable |
# or in Shutter preferences enable Start Shutter at login -> enable |
# |
# 2) main -> change screenshots folder to -> screenshots |
# 3) behavior -> hide notification icon -> enable |
# 4) behavior -> start shutter at login |
# 5) behavior -> hide window on first lunch |
# 6) advanced -> show help text -> disable |
# 7) settings -> keyboard -> shortcuts -> add custom: |
# `shutter -s -e` - assign print screen button (-s .. selective, -e .. after print screen auto-exit shutter app (image is saved to screenshots folder)) |
# vlc |
sudo apt install -y vlc ffmpeg |
# remove apps |
sudo apt remove screenshot-tool -y |
sudo apt remove pantheon-mail -y |
sudo apt remove maya-calendar -y |
sudo apt remove epiphany-browser -y |
sudo apt remove audience -y |
sudo apt remove noise -y |
sudo apt remove scratch-text-editor -y |
sudo apt remove simple-scan -y |
sudo apt remove pantheon-calculator -y |
sudo apt remove appcenter -y |
sudo rm /etc/apt/sources.list.d/appcenter.list |
sudo rm /etc/apt/sources.list.d/appcenter.list.save |
rm -rf ~/.cache/epiphany |
rm -rf ~/.config/epiphany |
rm -rf ~/.cache/simple-scan |
rm -rf ~/.cache/pantheon-photos |
# mutt - an e-mail client (http://mutt.org) |
# create config files (~/.mutt/muttrc + ~/.mutt/mailcap) |
cd /opt/ |
sudo wget -c ftp://ftp.mutt.org/pub/mutt/mutt-1.9.0.tar.gz |
sudo tar xf mutt-1.9.0.tar.gz |
sudo rm mutt-1.9.0.tar.gz |
cd mutt-1.9.0/ |
sudo apt install -y build-essential libncurses5-dev libncursesw5-dev |
sudo apt install -y libssl-dev |
sudo apt install -y libsasl2-dev |
sudo apt install -y libtokyocabinet-dev |
./configure --enable-pop --enable-imap --with-ssl --with-sasl --enable-smtp --enable-hcache --enable-sidebar --with-tokyocabinet |
make |
sudo make install |
# neomutt (eventually) |
# sudo apt install -y devscripts |
# sudo apt install -y libgpgme11-dev |
# gedit |
sudo apt install -y gedit |
# disable bluetooth |
# add before last return /etc/rc.local rfkill block bluetooth |
# atom |
sudo add-apt-repository -y ppa:webupd8team/atom && sudo apt -y update |
sudo apt install -y atom |
# apache |
sudo apt install -y apache2 |
# stop apache (port :80 will be configurated via nginx) |
sudo service apache2 stop |
# nginx |
sudo apt install -y nginx |
# php 5.6 |
sudo apt install -y php5.6 php5.6-bcmath php5.6-bz2 php5.6-cgi php5.6-cli php5.6-common php5.6-curl php5.6-dba php5.6-dev php5.6-enchant php5.6-fpm php5.6-gd php5.6-gmp php5.6-imap php5.6-interbase php5.6-intl php5.6-intl php5.6-json php5.6-json php5.6-ldap php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-odbc php5.6-opcache php5.6-pgsql php5.6-phpdbg php5.6-pspell php5.6-readline php5.6-recode php5.6-snmp php5.6-soap php5.6-sqlite3 php5.6-sybase php5.6-tidy php5.6-xml php5.6-xmlrpc php5.6-xsl php5.6-zip |
# php 7.0 |
sudo apt install -y php7.0 php7.0-fpm php7.0-cli php7.0-common php7.0-mbstring php7.0-gd php7.0-intl php7.0-xml php7.0-mysql php7.0-mcrypt php7.0-zip |
# php 7.1 |
sudo add-apt-repository -y ppa:ondrej/php && sudo apt update |
sudo apt install -y php7.1 php7.1-fpm php7.1-cli php7.1-common php7.1-bcmath php7.1-bz2 php7.1-cgi php7.1-common php7.1-curl php7.1-dba php7.1-dev php7.1-enchant php7.1-gd php7.1-intl php7.1-json php7.1-ldap php7.1-mbstring php7.1-mysql php7.1-pgsql php7.1-recode php7.1-sqlite3 php7.1-xml php7.1-zip |
# php 7.3 |
sudo add-apt-repository -y ppa:ondrej/php |
sudo apt-get install php-pear php7.3 php7.3-curl php7.3-dev php7.3-gd php7.3-mbstring php7.3-zip php7.3-mysql php7.3-xml |
# sendmail |
sudo apt install -y sendmail |
# when is installation freezed on Creating SSL certificates for sendmail: |
# https://askubuntu.com/questions/937666/ubuntu-16-04-command-line-sendmail-installation-hanged |
# composer |
sudo apt install -y php-cli php-mbstring |
cd /home/ldrahnik/projects |
curl -sS https://getcomposer.org/installer -o composer-setup.php |
# next, run a short PHP script to verify that the installer matches the SHA-384 hash for the latest installer found on the Composer Public Keys / Signatures (https://composer.github.io/pubkeys.html) |
php -r 'if (hash_file('SHA384', 'composer-setup.php') '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;' |
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer |
# because for directory /usr/local/bin is sudo required but for .composer not |
sudo chown -R $USER$HOME/.composer |
# permissions apache & nginx folder |
sudo chown -R $USER /usr/share/nginx |
sudo chown -R $USER /var/www/ |
# alchemist - projects manager (https://github.com/alchemist-org/alchemist) |
cd /home/ldrahnik/projects |
git clone [email protected]:alchemist-org/alchemist.git |
cd alchemist |
composer install |
# add alias to ~.bash_aliases: alias alchemist='php /home/ldrahnik/projects/alchemist/bin/alchemist.php' |
# add config.local.neon from previous using alchemist or just create file config.local.neon |
# (copy adminer.css to /adminernginx/adminer and /adminerapache/adminer folder adminer.css file from https://www.adminer.org/) |
# |
# alchemist install |
# nvm |
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash |
# re-open terminal |
# node (include npm) |
nvm install node |
# grunt |
npm install -g grunt-cli |
# update npm |
npm update npm -g |
# slack |
cd /opt |
sudo wget -c https://downloads.slack-edge.com/linux_releases/slack-desktop-2.7.1-amd64.deb |
sudo dpkg -i slack-desktop-2.7.1-amd64.deb |
sudo rm slack-desktop-2.7.1-amd64.deb |
# redshift |
sudo apt install -y redshift redshift-gtk |
# after: |
# set up in settings auto start -> enable |
# plank |
plank --preferences |
# after all: lock icons |
# phpstorm |
cd /opt |
sudo wget https://download-cf.jetbrains.com/webide/PhpStorm-2017.2.2.tar.gz |
sudo tar -xvf PhpStorm-2017.2.2.tar.gz |
# sudo chown -R $USER:$USER /opt/PhpStorm-xxx # phpstorm is able selfupdate, but needs write access |
sudo rm PhpStorm-2017.2.2.tar.gz |
# add file type .phpt under php |
# install plugins: latte, neon, .. |
# sudo /opt/PhpStorm-172.3544.41/bin/phpstorm.sh # sudo because updates need to be root to automatically do that stuff |
# go to Tools menu on PhpStorm and select Create Desktop Entry... from drop down -> sudo -> re-lock your icon again |
# |
# copy custom live templates to ~/.PhpStorm2017.2/config/templates |
# mysql |
sudo apt-get install mysql-server # interactive - ask to insert root password |
# sudo mysql_secure_installation (interactive - remove testing databases, change root password etc. - WARNING: during this script is not possible set up empty password: Sorry, you can't use an empty password here.) |
# xdebug |
sudo apt-get install -y php-xdebug |
# vim |
sudo apt-get install -y vim |
# create ~/.vimrc (with specific content) |
# happy_hacking color theme |
cd /home/ldrahnik/projects |
git clone [email protected]:YorickPeterse/happy_hacking.vim.git |
mkdir -p ~/.vim/colors |
# ln -s /home/ldrahnik/projects/colors/happy_hacking.vim ~/.vim/colors/happy_hacking.vim WARNING: does not work |
cp ~/projects/happy_hacking.vim/colors/happy_hacking.vim ~/.vim/colors |
# vundle |
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim |
# gparted (used for example for reformating usb disk) |
sudo apt install -y gparted |
# graphic sw |
sudo apt install -y gimp inkscape |
# filezilla |
sudo apt install -y filezilla |
# steam (eventually) |
# sudo apt install -y steam |
# pavucontrol |
sudo apt install -y pavucontrol |
# bugs: |
# 1) headset is not detected correctly so add this: |
# edit: sudo gedit /etc/modprobe.d/alsa-base.conf and add line in the end: 'options snd-hda-intel model=,dell-headset-multi' |
# 2) automatically switch to headset microphone when plugged-in (someone else wanted the same and created ticket https://bugs.freedesktop.org/show_bug.cgi?id=1017980, marked as notbug) |
# we can add the following line to our /etc/pulse/default.pa |
# load-module module-switch-on-connect (equivalent of pacmd load-module module-switch-on-connect) |
# discord |
cd /opt/ |
sudo apt install libc++1 |
sudo wget -O discord.deb https://discordapp.com/api/download?platform=linux&format=deb |
sudo dpkg -i discord.deb |
sudo rm discord.deb |
# wireshark |
sudo apt -y install wireshark |
# after logout, when it does not work automagically (wireshark asks during installation): |
# gpasswd -a $USER wireshark -> logout and it should works (https://askubuntu.com/questions/458762/how-to-enable-wireshark-without-running-as-root-in-trusty-14-04) |
# gitkpg |
sudo apt install -y gitpkg |
# texlive |
sudo apt install -y texlive texstudio |
sudo apt install -y texlive-lang-czechslovak |
# example: change section & subsection format via package titlesec and much more packages |
sudo apt install -y texlive-formats-extra |
sudo apt install -y texlive-latex-base |
# office |
sudo apt install -y libreoffice |
# unetbootin (how to create windows bootable usb) |
sudo apt-get install -y unetbootin |
# rpm |
sudo apt install -y rpm |
# alien |
sudo apt-get install alien dpkg-dev debhelper build-essential |
# openvpn |
sudo apt install -y openvpn |
# traceroute (ping is only included by default) |
sudo apt install -y inetutils-traceroute |
# vagrant |
sudo apt install -y vagrant |
# virtualbox |
sudo apt install -y virtualbox-qt |
# octave (like matlab but free) |
sudo apt install -y octave |
# nethogs (traffic per process) |
sudo apt install -y nethogs |
# sqldeveloper |
sudo apt install -y sqldeveloper-package |
cd opt |
sudo wget --user <e-mail> --password <password> http://download.oracle.com/otn/java/sqldeveloper/sqldeveloper-17.4.1.054.0712-no-jre.zip |
cd sqldeveloper |
sudo ln -s /opt/sqldeveloper/sqldeveloper.sh /usr/local/bin/sqldeveloper |
sudo gedit sqldeveloper.sh |
# #!/bin/bash |
# cd '`dirname $0`'/sqldeveloper/bin && bash sqldeveloper $* |
# unset -v GNOME_DESKTOP_SESSION_ID |
# cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $* |
# python3.6 (installed 3.5.2) |
sudo apt -y install zlib1g-dev |
# prolog |
sudo apt install -y swi-prolog-nox |
cd /opt |
sudo wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz |
sudo tar -xvf Python-3.6.3.tgz |
cd Python-3.6.3 |
sudo ./configure |
sudo make |
sudo make install |
# graphic |
# NVIDIA Corporation GM108M [GeForce 840M] (rev a2) |
# sudo ubuntu-drivers devices # check which drivers are available |
# sudo add-apt-repository ppa:graphics-drivers/ppa # (https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa) |
# sudo apt update |
# sudo apt-get -y install nvidia-396 |
# RESTART |
# $ nvidia-smi |
# temperature senzor |
sudo apt-get install -y psensor |
# preferences -> Launch on session startup |
# -> Hide window on startup |
# senzor prefences -> CPU senzor -> Display senzor in the label |
# bugs: |
# 1) fix icon |
# ? unresolved - https://bugs.launchpad.net/plank/+bug/1733078 - idea about ignored icons in plank |
# workaround is disable Show unpinned icons in plank --preferences |
# 2) Authentication required to update SMART |
# uncheck Preferences -> Providers -> Enable support of udisks2 |
# weather senzor |
# manually for example from url in google maps: 49.1732487,16.614937 |
sudo add-apt-repository ppa:kasra-mp/ubuntu-indicator-weather |
sudo apt update |
sudo apt install -y indicator-weather |
# disable notifications |
# SD card os bootable maker |
sudo add-apt-repository 'deb https://dl.bintray.com/resin-io/debian stable etcher' |
sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 379CE192D401AB61 |
sudo apt -y update && sudo apt install -y etcher-electron |
# ddrescue (The image can be directly written to a microSDHC for Raspberry Pi 3 B - https://ubuntu-mate.org/raspberry-pi/) |
sudo apt-get install gddrescue xz-utils |
# unxz ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xz |
# sudo ddrescue -D --force ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img /dev/sdx (download https://ubuntu-mate.org/download/) |
# messanger (UNMAINTAINED) (https://github.com/aluxian/Messenger-for-Desktop) |
# cd /home/ldrahnik/Downloads/ |
# wget https://github.com/aluxian/Messenger-for-Desktop/releases/download/v2.0.9/messengerfordesktop-2.0.9-linux-amd64.deb |
# sudo dpkg -i messengerfordesktop-2.0.9-linux-amd64.deb |
# caprine (alternative messanger) |
cd /home/ldrahnik/Downloads/ |
wget https://github.com/sindresorhus/caprine/releases/download/v2.16.0/caprine_2.16.0_amd64.deb |
sudo dpkg -i caprine_2.16.0_amd64.deb |
# visual studio code |
sudo add-apt-repository -y 'deb https://packages.microsoft.com/repos/vscode stable main' |
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EB3E94ADBE1229CF |
sudo apt -y update |
sudo apt -y install code |
# extensions: add C# |
# nuget (vs package manager) |
sudo apt -y install nuget |
# microsoft packages (https://www.microsoft.com/net/learn/get-started-with-dotnet-tutorial) |
wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb |
sudo dpkg -i packages-microsoft-prod.deb |
sudo apt-get -y install apt-transport-https |
sudo apt-get update |
sudo apt-get -y install dotnet-sdk-2.1.202 |
sudo apt-get -y install dotnet-hosting-2.0.9 |
# hp deskjet printer (HP DeskJet ink Advantage 5075) |
# default wi-fi password 12345678 |
# elementary has support for 5000 series nativaly (printing, scaning i do not think so) |
# obs for streaming (https://github.com/obsproject/obs-studio/wiki/Install-Instructions#linux) |
sudo add-apt-repository ppa:obsproject/obs-studio |
sudo apt-get -y update |
sudo apt-get -y install obs-studio |
# spotify (https://www.spotify.com/cz/download/linux/) |
# 1. Add the Spotify repository signing keys to be able to verify downloaded packages |
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 931FF8E79F0876134EDDBDCCA87FF9DF48BF1C90 |
# 2. Add the Spotify repository |
echo deb http://repository.spotify.com stable non-free | sudo tee /etc/apt/sources.list.d/spotify.list |
# 3. Update list of available packages |
sudo apt-get update |
# 4. Install Spotify |
sudo apt-get install spotify-client |
# smbclient |
sudo apt install -y smbclient |
# python |
sudo apt install python-pip |
pip install --upgrade pwntools |
# folders -> add most used |
# 1) Dropbox |
# 2) Screenshots |
# at the end |
# error during removing appcenter: |
# wget -q 'http://packages.elementary.io/key.asc' -O- | sudo apt-key add - |
# |
# if u set up like me bad locale settings during first steps installation: |
# sudo dpkg-reconfigure locales |
sudo apt autoremove -y |
sudo apt autoclean -y |