ZSH & ASDF sur WSL2 Ubuntu
Tags: zsh, wsl2, asdf, php
Published: 2021-03-30 21:04:07

---
title: ZSH & ASDF sur WSL2 Ubuntu
published: true
description: J'ai effacé mon instance d'Ubuntu, donc j'en ai réinstallé autre fois cet instance 
tags: zsh, wsl2, asdf, php
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oj9uya09u94r3vdsws7i.png
---

### Contexte 

Cette histoire commence quand j'ai déçu changer la version PHP 7.4 pour la nouvelle. À la fin de 2019, je réinstallais tout mon ordinateur, ainsi j'essayais installer la version 7.4 de PHP sur WSL Ubuntu, néanmoins, cette version n'étais pas supporter dans les repositories officiels, par conséquent l'unique manière d'y avoir, c'était d'ajouter des repositories externes. Pendant 2020, la communauté PHP grâce aux efforts des développeurs avaient déçu libérer la version anticipé de PHP. J'ai déçu laisser passer puisque celle-ci ne serait pas optime pour mettre en production. Maintenant en 2021, j'ai choisi travailler avec PHP 8, malheureusement quand je voudrai l'installer, je me suis trouvé avec une grand erreur: je ne peux pas installer puisque je travail avec d'autres langues de programmation et ils choquent entre eux, donc je ne peux pas installer la dernière version de PHP, alors j'ai déçu d'effacer tout mon environnement de développe.

## (Ré)Installation et requis

Avec de commencer avec l'installation, on doit compter avec les suivantes requis:

* Système Opérative de votre préférence: Linux, Windows ou Mac. (Dans mon cas, j'utiliserais Windows avec WSL où j'installais Ubuntu 20.04)
* Une connexion Internet puisqu'on va télécharger le logiciel :P 

#### zsh , oh-my-zsh et zinit

Premièrement, on va ouvrir une fenêtre de Terminal, après on va écrire le suivante commande: 

```bash
(darkhero) > sudo apt update
(darkhero) > sudo apt upgrade
(darkhero) > sudo apt install -y curl git zsh
``` 
> Pour MacOS, on doit installer [Homebrew](https://brew.sh/index_fr) pour pouvoir installer zsh sur l'ordinateur MacOS 

D'après on va installer [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh) qui va donner des nouveaux fonctionnalités à notre Terminal, pour y installer, on va exécuter:

```bash
darkhero> sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```

Ensuite on va installer les plugins nécessaires en utilisant zinit, pourtant, il est aussi nécessaire d'installer [znit](https://github.com/zdharma/zinit):

```bash
darkhero> sh -c "$(curl -fsSL https://raw.githubusercontent.com/zdharma/zinit/master/doc/install.sh)"
```  

Après on doit modifier le fichier `.zshrc` et ajouter à la fin du fichier le suivante code:

```
zinit light zdharma/fast-syntax-highlighting
zinit light zsh-users/zsh-autosuggestions
zinit light zsh-users/zsh-completions
```

#### [ASDF](https://asdf-vm.com/) & PHP

Pour ajouter `asdf` dans notre environnement de développe, il est nécessaire d'exécuter:

```bash
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.8.0

# Pour les utilisateurs MacOS, on utilise `brew install asdf`
```

D'après on ajoute l'`asdf` au `zsh` en modifiant le fichier `.zshrc`, ainsi on en ajoute à la fin: 

```
. $HOME/.asdf/asdf.sh
. $HOME/.asdf/completions/asdf.bash
```

Maintenant on a `asdf` et `zsh` courant sur notre terminal, pourtant, on va installer notre première langue de programmation, ainsi PHP sera l'élu pour cette tache, puisque comment j'avais dit, j'ai besoin d'installer la version 8.

Pour installer PHP, il est nécessaire de chercher le plugin, d'ajouter le plugin et d'installer les requis. Grace au travail de la communauté asdf, c'est facile de trouver le plugin [PHP](https://github.com/asdf-community/asdf-php). Néanmoins, il est nécessaire d'installer les requis qui sont:

```zsh
# Linux Ubuntu/Debian
darkhero> apt-get update && apt-get install -y autoconf bison build-essential curl gettext git libgd-dev libcurl4-openssl-dev libedit-dev libicu-dev libjpeg-dev libmysqlclient-dev libonig-dev libpng-dev libpq-dev libreadline-dev libsqlite3-dev libssl-dev libxml2-dev libzip-dev openssl pkg-config re2c zlib1g-dev

# MacOS
darkhero> brew install autoconf automake bison freetype gd gettext icu4c krb5 libedit libiconv libjpeg libpng libxml2 libzip pkg-config re2c zlib
```

Si toute se bien installait , il serait temps d'installer PHP en utilisant la commande `asdf install <langue de programmation> <version>`

```zsh
darkhero> asdf install php 8.0.3
```

Une fois que asdf termine d'installer PHP, si on vérifie la version avec `php -v`, il est possible de voir le message:

```
darkhero>php-v
No version set for command php
Consider adding one of the following versions in your config file at php 8.0.3
``` 

Alors, on doit ajouter au fichier `.tool-versions` le ligne `php 8.0.3` et après si on exécute `php -v` on peut voir correctement la version PHP.

> Le fichier `.tool-versions` parfois n'a pas été crée, alors nous devons le créer. 

```zsh
PHP 8.0.3 (cli) (built: Mar 29 2021 12:57:13) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.3, Copyright (c) Zend Technologies
```

Bref, l'installation d'asdf a été bien reçu, étant donné que je travaille avec différents langues de programmation comme Golang, C#/F#, Python, NodeJS, Elixir, etc. Toutefois, j'installe chaque langue de programmation individuellement, par conséquent je trouve des problèmes pendant tout le processus, néanmoins, asdf permets gérer toutes les langues et leurs versions, ainsi c'est facile de tester les nouvelles versions sans modifier votre environnement de développe. Finalement, je vous laisse la vidéo où je fais toutes les pas de cet article.

{% youtube sL-nGD8behg %}