Cet article est un pense-bête pour retrouver toutes les subtilités que je fais lors d'une installation de pop!_OS. En effet, j'ai eu la mauvaise surprise d'un dual boot qui ne veut plus se lancer, et après avoir perdu beaucoup de temps à essayer de le réparer je me suis résolu à le réinstaller. Mais comme j'aime bien aller dans les détails d'une installation, il faut tout refaire à chaque fois, c'est long...
Liste des logiciels à installer
- Thunderbird (import des paramètres)
- nexctloud
- inkscape
- Auto Key
- FileZilla (import des paramètres)
- Lamp
- phpmyadmin
- VSCode (synchronisation possible)
- node, npm, pnpm, symfony cli, composer
- Insomnia
Personnalisation de l'environnement
Mettre en place le dual boot
Un bon tuto ici : https://ostechnix.com/dual-boot-windows-and-pop-os/
Synchronisation des agendas nextcloud
Je ne sais pas pourquoi pop!_OS n'a pas envie de se connecter à mon instance de nextcloud avec mes identifiants personnels. Je suis obligé de créer un mot de passe d'application.
Pour ce faire, Aller sur le site, dans paramètres personnels > Sécurité , tout en bas nommer l'application qui aura besoin du mot de passe, et créer.
installer vitals - équivalent gestionnaire des tâches
Pour pouvoir guetter visuellement l'état de performance de l'ordi, j'aime bien avoir un outil qui ressemble au gestionnaire des tâches sous windows : vitals.
Accélérer le délai des touches
Je n'ai pas perdre du temps à attendre que mes lettres s'effacent quand j'appuie sur "delete". Par exemple.
Voici deux lignes pour modifier ces réglages finement, et de manière persistante :
gsettings set org.gnome.desktop.peripherals.keyboard delay 200
gsettings set org.gnome.desktop.peripherals.keyboard repeat-interval 40
Installation de ZSH
Un bon tuto ici : https://mscholz.dev/blog/02-ma-configuration-post-installation-d-arch-linux
quelques commandes :
# Installation
sudo apt install zsh
# Mettre zsh par défaut
chsh $USER
# Rentrer son mot de passe, puis marquer /usr/bin/zsh
voici ma configuration pour le fichier ~/.zshrc
:
# ===========================
# 1. Powerlevel10k Instant Prompt (doit être tout en haut)
# ===========================
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# ===========================
# 2. SSH Agent & Keys
# ===========================
eval "$(ssh-agent -s)" &>/dev/null
#ssh-add ~/.ssh/github &>/dev/null
#ssh-add ~/.ssh/gitlab &>/dev/null
# ===========================
# 3. Node Version Manager (nvm)
# ===========================
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"
# ===========================
# 4. Homebrew (macOS)
# ===========================
if [[ -f "/opt/homebrew/bin/brew" ]]; then
eval "$(/opt/homebrew/bin/brew shellenv)"
fi
# ===========================
# 5. Zinit & Plugins
# ===========================
ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zinit/zinit.git"
if [ ! -d "$ZINIT_HOME" ]; then
mkdir -p "$(dirname $ZINIT_HOME)"
git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME"
fi
source "${ZINIT_HOME}/zinit.zsh"
# Powerlevel10k
zinit ice depth=1; zinit light romkatv/powerlevel10k
# Zsh plugins
zinit light zsh-users/zsh-syntax-highlighting
zinit light zsh-users/zsh-completions
zinit light zsh-users/zsh-autosuggestions
zinit light Aloxaf/fzf-tab
# Oh-My-Zsh snippets
zinit snippet OMZP::git
zinit snippet OMZP::sudo
zinit snippet OMZP::archlinux
zinit snippet OMZP::aws
zinit snippet OMZP::kubectl
zinit snippet OMZP::kubectx
zinit snippet OMZP::command-not-found
# ===========================
# 6. Powerlevel10k config
# ===========================
[[ -f ~/.p10k.zsh ]] && source ~/.p10k.zsh
# ===========================
# 7. Keybindings
# ===========================
bindkey -v # Vi mode (décommente bindkey -e si tu préfères Emacs)
#bindkey -e # Emacs mode
# ===========================
# 8. History Configuration
# ===========================
HISTSIZE=5000
SAVEHIST=5000
HISTFILE=~/.zsh_history
HISTDUP=erase
setopt appendhistory
setopt sharehistory
setopt hist_ignore_space
setopt hist_ignore_all_dups
setopt hist_save_no_dups
setopt hist_ignore_dups
setopt hist_find_no_dups
setopt histignorealldups
# ===========================
# 9. Completion System
# ===========================
autoload -Uz compinit && compinit
zstyle ':completion:*' auto-description 'specify: %d'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=2
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
zstyle ':completion:*' menu no
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath'
zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls --color $realpath'
eval "$(dircolors -b)"
# ===========================
# 10. Aliases
# ===========================
alias ls='ls --color'
alias c="clear"
alias e="exit"
alias vim="nvim"
alias v="nvim"
alias vi="nvim"
alias view="nvim -R"
alias vimdiff="nvim -d"
# ===========================
# 11. Shell Integrations
# ===========================
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
unalias zi
eval "$(zoxide init zsh --no-aliases)"
# ===========================
# 12. Zinit cdreplay
# ===========================
zinit cdreplay -q
# ===========================
# 13. Finalize Powerlevel10k
# ===========================
(( ! ${ functions[p10k]} )) || p10k finalize
Si tu rencontres cette erreur :
cd ../
cd:1: maximum nested function level reached; increase FUNCNEST?
installer la nouvelle version de zoxide :
curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
# puis fermer et rouvrir la console
installer les clés SSH et les alias GIT
Comme je suis en dual boot, je vais aller récupérer dans la partition de windows mes clefs SSH et les alias git.
Pour les clés SSH, il est nécessaire de changer les permissions :
Pour que git alias
fonctionne, il y aura peut-être besoin d'installer gawk :
# faire le test d'abord :
git alias
# si erreur :
sudo apt install gawk
Installer PHP (LAMP)
Installation de LAMP : https://doc.ubuntu-fr.org/lamp
J'utilise MariaDB.
Pour installer une autre version de PHP, bon tuto ici : https://tecadmin.net/how-to-install-php-8-on-popos
J'installe ces paquets :
sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip php-common
Installer PHPMYADMIN
sudo apt install phpmyadmin
# Si la page est inaccessible :
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin.conf
sudo systemctl restart apache2
Pour pouvoir se connecter en root à MariaDB dans phpmyadmin, faire ces commandes :
# Redémarrer MariaDB en mode sécurisé
sudo systemctl stop mariadb
sudo mysqld_safe --skip-grant-tables --skip-networking &
# Se connecter sans authentification
mysql -u root
# Dans le shell MariaDB :
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'nouveau_mot_de_passe';
EXIT;
# Redémarrer normalement
sudo killall mysqld
sudo systemctl start mariadb
Monter une partition partagée au démarrage
pour que la partition soit montée au démarrage :
# Trouver la partition en question :
lsblk -f
sudo nano /etc/fstab
# dedans mettre :
UUID=[UUID-de-la-partition] /media/label-choisi ntfs defaults,nofail 0 0
Lier le dossier Téléchargements sur la partition partagée
Supprimer le dossier existant, puis faire cette commande :
ln -s /media/partition/downloads Téléchargements