Améliorer la documentation d'installation et ajouter des scripts automatiques

- Ajouter setup-deps.sh : script d'installation automatique de libsoxr et libasound2
- Corriger setup-env.sh : utiliser $HOME au lieu de /root pour la portabilité
- Mettre à jour INSTALL_LIBSOXR.md : ajouter méthode rapide avec les scripts
- Mettre à jour INSTALL_NOTES.md : référencer les scripts d'installation
- Mettre à jour Readme.md : ajouter section démarrage rapide

Ces changements facilitent l'installation dans les environnements sans sudo
(comme Claude Code) en automatisant le téléchargement et l'extraction des
dépendances système nécessaires.
This commit is contained in:
Claude
2025-11-06 07:45:36 +00:00
parent 4803c6ab73
commit b629d57c34
4 changed files with 134 additions and 18 deletions

View File

@@ -152,7 +152,22 @@ cargo test
### Configuration initiale (à faire une seule fois)
Dans une session Claude Code (https://claude.ai/code), vous n'avez pas de droits sudo. Suivez ces étapes :
Dans une session Claude Code (https://claude.ai/code), vous n'avez pas de droits sudo.
**🚀 Méthode rapide (recommandée) :**
```bash
# 1. Installation automatique des dépendances (une seule fois)
./setup-deps.sh
# 2. Configuration des variables d'environnement (à chaque session)
source setup-env.sh
# 3. Compilation
cargo build
```
**📋 Méthode manuelle (si les scripts ne fonctionnent pas) :**
#### 1. Installation des dépendances
@@ -184,23 +199,13 @@ export LD_LIBRARY_PATH="$HOME/.local/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
export RUSTFLAGS="-L $HOME/.local/usr/lib/x86_64-linux-gnu"
```
**Astuce :** Copier ces trois lignes dans un fichier `setup-env.sh` à la racine du projet :
```bash
cat > setup-env.sh << 'EOF'
export PKG_CONFIG_PATH="$HOME/.local/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH"
export LD_LIBRARY_PATH="$HOME/.local/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
export RUSTFLAGS="-L $HOME/.local/usr/lib/x86_64-linux-gnu"
EOF
```
Puis dans chaque session :
Ou utilisez le script fourni :
```bash
source setup-env.sh
```
⚠️ **NE PAS committer `setup-env.sh`** - ajouter au `.gitignore`
⚠️ **Note :** Les scripts `setup-deps.sh` et `setup-env.sh` sont déjà dans `.gitignore`
#### 3. Vérifier l'installation
@@ -228,9 +233,16 @@ cargo run --package pmoparadise --example play_and_cache --features full -- 0
À chaque fois que vous démarrez une nouvelle session Claude Code :
1. **Exporter les variables d'environnement** (ou `source setup-env.sh`)
2. Compiler avec `cargo build`
3. Exécuter les exemples ou tests
```bash
# 1. Configuration de l'environnement
source setup-env.sh
# 2. Compilation
cargo build
# 3. Exécution des exemples
cargo run --package pmoparadise --example play_and_cache --features full -- 0
```
**IMPORTANT :** Si vous oubliez d'exporter les variables, vous obtiendrez des erreurs comme :
```
@@ -244,7 +256,7 @@ ou
rust-lld: error: unable to find library -lasound
```
Solution : Exporter les variables et recompiler.
**Solution :** Exécutez `source setup-env.sh` et recompilez.
### Notes importantes

View File

@@ -29,7 +29,22 @@ brew install libsoxr
apk add soxr-dev alsa-lib-dev
```
**Sans privilèges root** : Si vous n'avez pas les droits sudo, consultez `INSTALL_LIBSOXR.md` pour l'installation locale de `libsoxr` et `libasound2`.
**Sans privilèges root (Claude Code, environnements sans sudo)** :
🚀 **Installation automatique** :
```bash
# 1. Installation des dépendances (une seule fois)
./setup-deps.sh
# 2. Configuration de l'environnement (à chaque session)
source setup-env.sh
# 3. Compilation
cargo build
```
Pour plus de détails, consultez `INSTALL_LIBSOXR.md`.
---

View File

@@ -1,5 +1,32 @@
# Développement de l'application PMOMusic en RUST
## 🚀 Démarrage rapide
### Installation des dépendances (environnement sans sudo)
Pour compiler PMOMusic dans un environnement sans privilèges sudo (comme Claude Code) :
```bash
# 1. Installation automatique de libsoxr et libasound2 (une seule fois)
./setup-deps.sh
# 2. Configuration de l'environnement (à chaque nouvelle session)
source setup-env.sh
# 3. Compilation
cargo build
# 4. Test de l'exemple Radio Paradise
cargo run --package pmoparadise --example play_and_cache --features full -- 0
```
### Documentation
- **[INSTALL_NOTES.md](INSTALL_NOTES.md)** - Guide d'installation général
- **[INSTALL_LIBSOXR.md](INSTALL_LIBSOXR.md)** - Installation détaillée de libsoxr et ALSA
---
## Création de la structure
```bash

62
setup-deps.sh Executable file
View File

@@ -0,0 +1,62 @@
#!/bin/bash
# Script d'installation automatique des dépendances soxr et alsa pour PMOMusic
# Usage: ./setup-deps.sh
set -e
echo "========================================="
echo "Installation des dépendances PMOMusic"
echo "========================================="
echo ""
# Créer le répertoire local
echo "1. Création du répertoire ~/.local"
mkdir -p ~/.local
cd ~/.local
# Télécharger les packages
echo ""
echo "2. Téléchargement des packages libsoxr et libasound2"
apt-get download libsoxr-dev libsoxr0 libasound2-dev libasound2t64
# Extraire les packages
echo ""
echo "3. Extraction des packages"
dpkg -x libsoxr-dev_*.deb .
dpkg -x libsoxr0_*.deb .
dpkg -x libasound2-dev_*.deb .
dpkg -x libasound2t64_*.deb .
# Vérifier l'installation
echo ""
echo "4. Vérification de l'installation"
if [ -f usr/lib/x86_64-linux-gnu/pkgconfig/soxr.pc ]; then
echo " ✓ libsoxr installé"
else
echo " ✗ Erreur: libsoxr non trouvé"
exit 1
fi
if [ -f usr/lib/x86_64-linux-gnu/pkgconfig/alsa.pc ]; then
echo " ✓ libasound2 installé"
else
echo " ✗ Erreur: libasound2 non trouvé"
exit 1
fi
# Retourner au projet
cd - > /dev/null
echo ""
echo "========================================="
echo "Installation terminée avec succès !"
echo "========================================="
echo ""
echo "Pour compiler le projet, exportez les variables d'environnement :"
echo ""
echo " source setup-env.sh"
echo ""
echo "Puis compilez avec :"
echo ""
echo " cargo build"
echo ""