weight: 1 # You can add weight to some posts to override the default sorting (date descending)
---
## À propos de Postmarket OS
[Postmarket OS](https://postmarketos.org/) est une distribution basée sur [Alpine](https://www.alpinelinux.org/) conçut pour fonctionner sur téléphone, tablette
ou sur Raspberry PI.
La communauté autour du projet propose un ensemble d'outils comme `pmbootstrap` qui permet de configurer et d'installer Postmarket OS sur son téléphone.
On peut aussi l'utiliser pour compiler son propre paquet et l'installer sur son téléphone facilement.
## Configuration de notre environnement de travail
Avant de pouvoir l'utiliser, il faut d'abord l'installer depuis ce [lien](https://wiki.postmarketos.org/wiki/Pmbootstrap).
Une fois installé et configuré, il faut d'abord préparer son environnement de travail.
Si on a déjà un environnement de travail en cours et qu'il contient du cache ou un travail en cours, on peut le réinitialiser assez facilement avec la commande :
Maintenant, on va pouvoir compiler n'importe quel paquet avec la commande.
```bash
pmbootstrap build [nom_du_paquet]
```
Par exemple, on peut compiler plasma-mobile (Attention le paquet est long à compiler)
```bash
pmbootstrap build plasma-mobile
```
Par défaut, pmbootstrap va recompiler l'intégralité des dépendances du projet pour s'assurer que notre test sera reproductible.
Cependant, lorsque l'on souhaite juste tester un truc, ça peut-être ultra long.
On peut donc utiliser deux options pour nous aider:
*`-i` Permet de dire de compiler uniquement les dépendances du paquet défini dans le fichier `APKBUILD`
*`-n` Permet d'éviter de compiler les dépendances du paquet défini dans le fichier `APKBUILD`
Avec le combot des deux options, ça nous évite de tout recompiler.
On a aussi l'option `-mp` qui peut-être pratique pour changer de mirroir si le téléchargement est lent ou si l'on souhaite télécharger des paquets nightly.
> Un mirroir est un serveur utilisé pour télécharger les dépendances
Une fois le paquet compilé, il suffit de demander à `pmbootstrap` de l'envoyer sur notre téléphone via la connexion SSH.
Avec `pmbootstrap`, on utilise la commande `sideload` comme dans l'exemple ci-dessous.
```bash
pmbootstrap sideload plasma-mobile \
--host [SSH HOST] \
--port [SSH PORT] \
--user [SSH USER] \
--arch [ARCH] \
--install-key
```
On a les arguments suivants :
*`--host [SSH HOST]` (Ex: 192.168.1.1)
*`--port [SSH PORT]` (Ex: 22)
*`--user [SSH USER]` (Ex: 192.168.1.1)
*`--arch [ARCH]` : Permet de modifier la valeur définie pour le téléphone (Ex : aarch64)
*`--install-key` : Permet d'installer la clef utilisée pour la vérification des paquets de la machine actuelle.
> Tout gestionnaire de paquet comme APK, vérifie si le paquet est valide par rapport à la signature électronique du mainteneur du paquet.
> Dans notre cas, la signature ne sera pas valide, car le paquet n'est pas compilé par le mainteneur original donc il suffit de rajouter notre signature.
Pour revenir en arrière, il suffit de taper la commande ci-dessous depuis le téléphone ou depuis la connexion SSH
```bash
sudo apk upgrade -a
```
> APK va réinstaller les paquets depuis les repos officiels.
En cas de problème liée à des conflits de fichier, on peut utiliser cette commande
```bash
sudo apk fix --force
```
> Cette commande va forcer APK à écraser les fichiers en conflit.