Ce document fournit des instructions et des solutions pour compiler EVIL2ROOT AI sur des machines ARM64, en particulier les Mac équipés d'Apple Silicon (M1/M2/M3).
L'architecture ARM64 (Apple Silicon) présente des défis particuliers lors de la compilation:
-
Détection d'architecture: Les scripts
config.guessetconfig.subdes packages plus anciens comme TA-Lib ne reconnaissent pas toujours correctement l'architecture ARM64. -
Compatibilité des bibliothèques: Certains packages C/C++ n'ont pas été conçus pour ARM64 et nécessitent des modifications pour compiler correctement.
-
Émulation Rosetta: Parfois, l'émulation x86_64 via Rosetta est nécessaire pour les dépendances qui n'ont pas de support ARM64 natif.
-
Timeouts de build: Les compilations peuvent prendre plus de temps, surtout pour les packages complexes comme TA-Lib, ce qui peut entraîner des timeouts.
Dans Docker Desktop:
-
Allouez suffisamment de ressources:
- Au moins 4GB de RAM
- Au moins 2 CPUs
- 20GB+ d'espace disque
-
Activez les fonctionnalités expérimentales:
Use Rosetta for x86/amd64 emulationVirtioFSpour de meilleures performances de système de fichiers
Nous fournissons un script de diagnostic ARM64:
# Diagnostiquer votre environnement
./docker/arm64-troubleshoot.sh --diagnose
# Optimiser votre environnement
./docker/arm64-troubleshoot.sh --prepare-env
# Vérifier la configuration Rosetta
./docker/arm64-troubleshoot.sh --check-rosettaCette méthode utilise des optimisations spécifiques à ARM64:
# Via le script dédié
./docker/build-arm64.sh
# Ou via make
make build-arm64Cette méthode utilise une implémentation simplifiée de TA-Lib optimisée pour ARM64:
# Via le script dédié
./docker/build-arm64.sh --use-mock-talib
# Ou via make
make build-arm64-mockCette option n'installe que les dépendances essentielles:
# Via le script dédié
./docker/build-arm64.sh --essential-only
# Ou via make
make build-arm64-minimalSi vous rencontrez des problèmes persistants avec TA-Lib:
# Créer une configuration optimisée avec mock TA-Lib
./docker/arm64-troubleshoot.sh --force-mock
# Puis construire avec le Dockerfile optimisé
./quick-build-arm64.shSi vous rencontrez des timeouts lors de la compilation de TA-Lib:
# Réparer spécifiquement TA-Lib
./docker/arm64-troubleshoot.sh --fix-talibLes erreurs courantes incluent:
-
Erreur de détection d'architecture:
configure: error: cannot guess build type; you must specify oneSolution: Utilisez le script
--fix-taliboubuild-arm64.shqui corrige automatiquement ce problème. -
Erreurs de compilation de code source:
ta_abstract.c:27:10: fatal error: 'stddef.h' file not foundSolution: Utilisez l'option
--use-mock-talibqui évite complètement la compilation. -
Problèmes avec les en-têtes Python: Solution: Le script
talib-fallback-install.shamélioré ajoute automatiquement les chemins corrects.
-
Manque de mémoire:
KilledSolution: Augmentez la mémoire allouée à Docker Desktop.
-
Problèmes avec Rosetta:
qemu: uncaught target signal 11 (Segmentation fault) - core dumpedSolution: Exécutez
./docker/arm64-troubleshoot.sh --check-rosettapour vérifier et configurer Rosetta.
Notre implémentation mockup de TA-Lib offre:
- Implémentations natives des indicateurs populaires (SMA, EMA, RSI, MACD, BBANDS)
- Optimisations spécifiques à ARM64
- Rapidité d'installation sans compilation
- Compatible avec l'API TA-Lib standard pour assurer le fonctionnement du bot
- Les builds natifs ARM64 sont généralement 30-40% plus rapides que les versions émulées
- Le mock TA-Lib peut être 5-10% moins précis mais offre d'excellentes performances
- La version minimale est suffisante pour le trading de base mais manque de fonctionnalités d'analyse avancées
| Configuration | Temps de build | Taille d'image | Performances |
|---|---|---|---|
| ARM64 Complet | ~45 min | ~2.5GB | 100% |
| ARM64 + Mock | ~15 min | ~2.3GB | 95% |
| ARM64 Minimal | ~5 min | ~800MB | 70% |
Si vous rencontrez des problèmes persistants avec les builds ARM64, contactez-nous sur le Discord de EVIL2ROOT ou ouvrez un ticket sur GitHub.