Skip to content

Instantly share code, notes, and snippets.

@KevCaz
Last active April 5, 2022 00:02
Show Gist options
  • Save KevCaz/29536740b9150383a9d543ec1be96103 to your computer and use it in GitHub Desktop.
Save KevCaz/29536740b9150383a9d543ec1be96103 to your computer and use it in GitHub Desktop.
My Debian Buster (and Bookworm) setup on my Lenovo T470p
#!/usr/bin/env bash
# NB:
# - libappindicator1 was required to use google-chrome
# - apt-transport-https curl for Brave
# Dependencies for R packages:
# - libfreetype6-dev for showtext
# - libpoppler-cpp-dev for pdftools
# - libudunits2-dev for some leaflet dependencies
# - libssl-dev for devtools
# - libquantlib0-dev for rquantlib
# - libmagick++-dev for magick package (one of kableExtra dependency).
# - openjdk-8-jdk to run R CMD javareconf seamlessly
# - libjq-dev libv8-3.14-dev and for tmap
# - libnode64 libnode-dev for V8
# - libclang-dev for Rstudion 1.2.x
# - libprotobuf-dev & protobuf-compiler for protolite
# - librdf0 librdf0-dev for dataone
# - xvfb to install cairoDevice package
# - mdbtools to read access files
# - qpdf required for package documentation in R
# - libgtk2.0-dev pour CairoDevice
# *Pre-requisite*:
## 1: edit sources list (/etc/apt/sources.list)
## 2: enter super user (su) mode
su
## 3: synchro after changes in /etc/apt/sources.list
apt-get update && apt-get upgrade
## 4: install sudo
apt-get sudo
## 5: configure sudoers (then you're ready)
##-- get the wifi working and other devices (non free :()
sudo apt-get install firmware-iwlwifi firmware-misc-nonfree intel-microcode
##-- my set of libraries/software
sudo apt-get install \
libappindicator1 libudunits2-dev libatomic1 libgit2-dev libmagick++-dev \
libimage-exiftool-perl libcanberra-gtk-module libfreetype6-dev libssl-dev \
libpoppler-cpp-dev libgeos-dev libgeos++-dev libproj-dev libquantlib0-dev \
libgdal-dev libjq-dev libnode64 libnode-dev libprotobuf-dev protobuf-compiler\
libclang-dev libcups2-dev libgirepository1.0-dev libsmbclient-dev \
libopenblas-dev libgtk2.0-dev librdf0 librdf0-dev build-essential \
zsh gconf2 gconf-service gtk2.0 gtk3.0 openjdk-8-jdk dirmngr \
original-awk printer-driver-cups-pdf apt-transport-httpsrename \
swig4.0 curl aria2 tree cloc valgrind clang gfortran nmap \
arp-scan dnsutils lftp ncftp nethogs ffmpeg lshw llvm xvfb cmake \
font-manager fonts-font-awesome fonts-roboto icon-font-generator \
fonts-firacode hunspell-fr-modern hunspell-pt-br uuid-runtime mdbtools \
kdiff htop figlet lolcat fortune-mod xdotool unrar qpdf m4 nim pkg-config \
postgresql postgis openssh-server vim uncrustify \
unixodbc unixodbc-dev tdsodbc odbc-postgresql libsqliteodbc \
gnome-photos gnome-shell gnome-session gparted gnumeric papirus-icon-theme \
gnuplot imagemagick graphicsmagick gpick bibtool texlive-full \
ttf-mscorefonts-installer fontforge libreoffice-l10n-fr mythes-fr \
python3-pip python-pip python python3-sphinx perl octave octave-symbolic \
r-base r-recommended r-base-dev default-jdk primesieve darktable \
ruby-dev golang asciinema pandoc pandoc-citeproc lightning \
byobu pass timewarrior taskwarrior youtube-dl festival inxi pastel \
hugo lyx xournal calibre okular vlc thuderbird
##-- flatpak
sudo apt-get install flatpak gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# vlc discord zoom skype teams slack dropbox qgis fractal vscodium
flatpak install -y \
flathub com.slack.Slack us.zoom.Zoom com.dropbox.Client \
com.github.IsmaelMartinez.teams_for_linux com.discordapp.Discord \
com.simplenote.Simplenote org.qgis.qgis org.gnome.Fractal \
org.musicbrainz.Picard
# maybe latter vscodium/atom/gimp/inkscape/zotero
# flatpak run com.slack.Slack
## Github password cache timeout
# see https://help.github.com/en/articles/caching-your-github-password-in-git
git config --global credential.helper 'cache --timeout=14400'
git config --global init.defaultBranch main
##-- Setting Java for R
sudo R CMD javareconf JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
##-- many valuable R packages at once
sudo apt-get install "^r-cran-.*"
##-- this gisr complement my list of packages (some redundancy though)
git clone https://gist.github.com/aaa83151e9d12cc07fbe379e2c32a385.git /tmp/pkgsR
## little r is installed about so I use it
r /tmp/pkgsR/myPackages.R
# Install the kernelspec to tell Jupyter about IRkernel
r -e 'IRkernel::installspec()'
# ~/R/r is where I store my little r scripts
mkdir -p ~/R/r
##-- Python packages
pip3 install --user --upgrade pip
pip3 install --user pip-tools numpy scipy matplotlib psycopg2 pyparsing future \
pandoc-fignos pandoc-tablenos pandoc-eqnos zotero-cli plotly jupyterlab \
xlsxwriter autopep8 beautysh tensorflow keras bpython radian
##-- Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
##-- vscodium
wget https://github.com/VSCodium/vscodium/releases/download/1.58.2/codium_1.58.2-1626394574_amd64.deb -O /tmp/vs.deb && sudo dpkg -i /tmp/vs.deb
##-- Atom
## download atom first (use wget)
wget https://atom.io/download/deb -O /tmp/atom.deb && sudo dpkg -i /tmp/atom.deb
## themes
apm install atom-material-syntax atom-material-syntax-dark atom-material-ui
## packages
apm install language-knitr language-latex atom-language-r language-matlab\
language-docker language-julia language-sage\
autocomplete-bibtex autocomplete-emojis autocomplete-font-awesome\
wordcount minimap pdf-view pigments color-picker gist-it file-icons\
ascii-unicode-escape teletype multi-cursor-increment zen filesize\
data-atom intentions busy-signal ink julia-client sourcerer linter\
linter-lintr split-diff atom-beautify git-time-machine highlight-selected\
markdown-preview-enhanced document-outline Hydrogen hydrogen-launcher\ atom-ide-ui atom-ide-ui ide-python ide-r
# to be added to get jupyter kernel
# ==> https://jstaf.github.io/2018/03/25/atom-ide.html
Rscript -e "install.packages('IRkernel')"
pip install --user ipykernel
## Brave
# requires apt-transport-https curl
curl -s https://brave-browser-apt-release.s3.brave.com/brave-core.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add -
echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" | sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo apt-get update
sudo apt-get install brave-browser
##-- Install Node.js v11.x https://github.com/nodesource/distributions/blob/master/README.md#debinstall
curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -
sudo apt-get update
sudo apt-get install -y nodejs
##-- npm packages
npm install -g bootstrap bower decktape coffeescript grunt jquerry lunr string \
svgexport toml webpack webpack-cli yamljs gtop pagedjs-cli pagedjs
##-- Install Yarn package manager
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
## GEMs
sudo gem install jekyll bundler commonmarker
##-- Docker
## see https://docs.docker.com/install/linux/docker-ce/debian/#set-up-the-repository
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce
# sudo docker run hello-world
# Google chrome (see for instance https://doc.ubuntu-fr.org/google_chrome)
sudo sh -c 'echo "deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list'
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo apt-get update && sudo apt-get install google-chrome-stable
##-- Install powerline font
git clone https://github.com/powerline/fonts.git
# install
cd fonts
./install.sh
# clean-up a bit
cd ..
rm -rf fonts
##-- Install prezto zsh requis
zsh
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
# change shell
chsh -s /bin/zsh
## dotfiles
# to be added
## To be done afterwards
##-- Install Zotero (remove if flatpak is used)
cd ~/Downloads && wget https://github.com/zotero/zotero/archive/5.0.61.tar.gz | tar xzf -
# cp -r ~/Downloads/zotero ~/.local/lib/
# MarkdownHere for Thunderbird => addons
# Better bibtex + manual install
cd ~/Downloads && wget https://github.com/retorquere/zotero-better-bibtex/releases/download/v5.1.58/zotero-better-bibtex-5.1.58.xpi
# Application installed from Github
mkdir -p ~/Github/Applications
## Julia
git clone https://github.com/JuliaLang/julia.git
cd Julia
git checkout v1.3.1
make
# Julia packages
# update
# add DifferentialEquations PyPlot DataFrames Distributions TimeSeries MultivariateStats Flux
## Sage
git clone https://github.com/sagemath/sage.git
cd sage
make
# install better bib tex
aria2c https://github.com/retorquere/zotero-better-bibtex/releases/download/v5.1.76/zotero-better-bibtex-5.1.76.xpi
##-- bfg https://rtyley.github.io/bfg-repo-cleaner/
mkdir -p ~/.local/lib/java
aria2c -d ~/.local/lib/java "https://search.maven.org/classic/remote_content?g=com.madgag&a=bfg&v=LATEST"
@KevCaz
Copy link
Author

KevCaz commented Nov 26, 2017

Note about my install procedure on my Lenovo T470p:

I first downloaded the .iso image on the debian website then I created a bootable usb drive. Once done, you need to access the BIOS and disabled the secure Boot! On my Lenovo T470p, I had to type enter early in the boot process. I followed the installation process and I installed Debian using internet therefore a couple of tools were already installed during the process notably: GNOME, Inkscape, Octave and libreOffice and are not integrated in the list below.

@KevCaz
Copy link
Author

KevCaz commented Nov 26, 2017

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