Merge _configs/ into config/ for single configuration directory. Update all path references. Changes: - Move _configs/* to config/ - Update .gitignore for new patterns - No code references to _configs/ found Impact: -1 root directory (layout_conventions.md compliance)
293 lines
15 KiB
Plaintext
293 lines
15 KiB
Plaintext
╔════════════════════════════════════════════════════════════════════════════╗
|
|
║ LISTA COMPLETA DE COMANDOS BASH USADOS Y PARA QUÉ ║
|
|
╚════════════════════════════════════════════════════════════════════════════╝
|
|
|
|
CATEGORÍA 1: DETECTAR EL SISTEMA OPERATIVO
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
1. uname -s
|
|
Uso: Detectar el SO (Darwin=macOS, Linux=Linux)
|
|
Salida: Darwin
|
|
Por qué: El install.sh usa esto para elegir cómo instalar deps
|
|
|
|
2. uname -m
|
|
Uso: Detectar arquitectura del procesador
|
|
Salida: arm64 (también: x86_64, aarch64)
|
|
Por qué: Saber si es Intel, Apple Silicon, o ARM64 Linux
|
|
|
|
3. uname -a
|
|
Uso: Información completa del sistema
|
|
Salida: Darwin rigzin.local 25.1.0 Darwin Kernel...
|
|
Por qué: Ver kernel version, hostname, arquitectura todo junto
|
|
|
|
─────────────────────────────────────────────────────────────────────────────
|
|
|
|
CATEGORÍA 2: INFORMACIÓN DE RUST (RUSTC)
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
4. rustc --version
|
|
Uso: Ver versión de Rust instalada
|
|
Salida: rustc 1.91.1 (ed61e7d7e 2025-11-07)
|
|
Por qué: Verificar que sea compatible (1.75+)
|
|
|
|
5. rustc --print host-tuple ⭐ LA MÁS IMPORTANTE
|
|
Uso: Obtener el target triple del sistema actual
|
|
Salida: aarch64-apple-darwin
|
|
Por qué: ESTO es lo que Cargo usa para elegir qué compilar
|
|
- aarch64-apple-darwin = Mac M1/M2/M3
|
|
- x86_64-apple-darwin = Mac Intel
|
|
- aarch64-unknown-linux-gnu = Linux ARM64
|
|
- x86_64-unknown-linux-gnu = Linux Intel
|
|
|
|
6. rustc --version --verbose
|
|
Uso: Info detallada de Rust (LLVM version, etc)
|
|
Salida: Muestra release, commit, LLVM version
|
|
Por qué: Debug si hay problemas de compatibilidad
|
|
|
|
7. rustc --print cfg
|
|
Uso: Ver características del CPU que Rust detecta
|
|
Salida: target_arch="aarch64", target_os="macos", etc.
|
|
Por qué: Rust usa esto para #[cfg(...)] en el código
|
|
Los desarrolladores pueden hacer código específico para cada arch
|
|
|
|
─────────────────────────────────────────────────────────────────────────────
|
|
|
|
CATEGORÍA 3: INFORMACIÓN DE RUSTUP (TOOLCHAIN MANAGER)
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
8. rustup default
|
|
Uso: Ver qué toolchain es el default
|
|
Salida: stable-aarch64-apple-darwin (default)
|
|
Por qué: Saber si está configurado correctamente
|
|
|
|
9. rustup toolchain list
|
|
Uso: Ver todos los toolchains instalados
|
|
Salida: stable-aarch64-apple-darwin
|
|
stable-x86_64-unknown-linux-gnu
|
|
nightly-aarch64-apple-darwin
|
|
etc.
|
|
Por qué: Ver si tenemos múltiples versiones/targets
|
|
|
|
10. rustup target list | grep installed
|
|
Uso: Ver qué TARGETS están instalados para compilar
|
|
Salida: aarch64-apple-darwin (installed)
|
|
x86_64-apple-darwin (installed)
|
|
x86_64-unknown-linux-gnu (installed)
|
|
Por qué: ESTO determina si podemos hacer cross-compilation
|
|
Si solo tienes aarch64-apple-darwin → solo puedes compilar para Mac ARM
|
|
Si también tienes x86_64-unknown-linux-gnu → puedes compilar para Linux
|
|
|
|
11. rustup which rustc
|
|
Uso: Saber dónde está instalado rustc
|
|
Salida: /Users/jesusperezlorenzo/.rustup/toolchains/stable-aarch64-apple-darwin/bin/rustc
|
|
Por qué: Verificar que esté en el lugar correcto
|
|
|
|
─────────────────────────────────────────────────────────────────────────────
|
|
|
|
CATEGORÍA 4: INFORMACIÓN AVANZADA DE RUST
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
12. rustc --print sysroot
|
|
Uso: Encontrar dónde está la std library y targets instalados
|
|
Salida: /Users/jesusperezlorenzo/.rustup/toolchains/stable-aarch64-apple-darwin
|
|
Por qué: Verificar que todo esté en el lugar correcto
|
|
|
|
13. rustc --print sysroot | xargs -I {} ls {}/lib/rustlib/
|
|
Uso: Listar todos los targets disponibles en este toolchain
|
|
Salida: aarch64-apple-darwin
|
|
aarch64-apple-ios
|
|
x86_64-apple-darwin
|
|
x86_64-unknown-linux-gnu
|
|
etc.
|
|
Por qué: Ver exactamente qué targets puedes compilar
|
|
|
|
14. rustc --print target-list | head -20
|
|
Uso: Ver TODOS los targets que Rust teóricamente soporta (100+)
|
|
Salida: Muestra todas las combinaciones posibles
|
|
Por qué: Investigación académica, ver opciones disponibles
|
|
|
|
─────────────────────────────────────────────────────────────────────────────
|
|
|
|
CATEGORÍA 5: INFORMACIÓN DE CARGO
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
15. cargo --version
|
|
Uso: Ver versión de cargo
|
|
Salida: cargo 1.91.1 (ea2d97820 2025-10-10)
|
|
Por qué: Asegurar que sea compatible
|
|
|
|
16. cargo metadata --format-version=1 --no-deps
|
|
Uso: Obtener info JSON sobre el workspace
|
|
Salida: JSON con todos los crates, sus nombres, tipos, etc.
|
|
Por qué: Automatizar acceso a información del proyecto
|
|
|
|
17. cargo build --release --dry-run
|
|
Uso: Ver qué HARÍA cargo sin compilar realmente
|
|
Salida: Muestra qué se compilaría, sin hacerlo
|
|
Por qué: Preview seguro antes de compilar largo
|
|
|
|
18. cargo build --release -v
|
|
Uso: Ver cada comando que cargo ejecuta (verbose mode)
|
|
Salida: Muestra cada línea de rustc, rustcflags, etc.
|
|
Por qué: Debug para entender exactamente qué hace cargo
|
|
|
|
─────────────────────────────────────────────────────────────────────────────
|
|
|
|
CATEGORÍA 6: INVESTIGACIÓN DEL PROYECTO
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
19. ls -la .cargo/
|
|
Uso: Ver si existe config de cargo personalizada
|
|
Salida: total 0 (vacío) O archivos config.toml
|
|
Por qué: Si existe .cargo/config.toml, afecta cómo compila
|
|
|
|
20. cat .cargo/config.toml
|
|
Uso: Ver configuración personalizada de compilación
|
|
Salida: [build] sections, [target.x86_64-unknown-linux-gnu] etc.
|
|
Por qué: Cargo usa esto para cross-compilation y flags especiales
|
|
|
|
21. grep -A 10 "\[profile.release\]" Cargo.toml
|
|
Uso: Ver las optimizaciones de release en el proyecto
|
|
Salida: opt-level = 3
|
|
lto = true
|
|
strip = true
|
|
Por qué: Entender cómo se optimiza el build
|
|
|
|
22. cat Cargo.toml | grep resolver
|
|
Uso: Ver la versión de resolver que usa el workspace
|
|
Salida: resolver = "2"
|
|
Por qué: Afecta cómo se resuelven dependencias
|
|
|
|
─────────────────────────────────────────────────────────────────────────────
|
|
|
|
CATEGORÍA 7: INSPECCIÓN DEL TARGET DIRECTORY
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
23. du -sh target/debug target/release
|
|
Uso: Ver tamaño de builds
|
|
Salida: 12G target/debug
|
|
2.4G target/release
|
|
Por qué: Comparar debug vs release, ver espacio usado
|
|
|
|
24. cat target/.rustc_info.json
|
|
Uso: Ver info cacheada del host (target, features, etc)
|
|
Salida: JSON con target_arch, target_os, CPU features
|
|
Por qué: Entender qué detectó Cargo en el build anterior
|
|
|
|
25. ls -lh target/release/deps/ | head
|
|
Uso: Ver archivos compilados (.rlib, .dylib, .o)
|
|
Salida: libaho_corasick-43a015cbf5e800e6.rlib (2.2M)
|
|
Por qué: Verificar que se compiló correctamente
|
|
|
|
26. ls -lh target/release/
|
|
Uso: Listar ejecutables en target/release
|
|
Salida: workspace, workspace-tui, workspace-dashboard
|
|
Por qué: Verificar que se generaron los binarios
|
|
|
|
27. file target/release/workspace
|
|
Uso: Ver información del binario compilado ⭐
|
|
Salida: Mach-O 64-bit executable arm64
|
|
O: ELF 64-bit LSB pie executable, x86-64
|
|
Por qué: VERIFICAR que se compiló para la arquitectura correcta
|
|
|
|
─────────────────────────────────────────────────────────────────────────────
|
|
|
|
CATEGORÍA 8: CROSS-COMPILATION
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
28. rustup target add x86_64-unknown-linux-gnu
|
|
Uso: Instalar capacidad de compilar para Linux desde macOS
|
|
Salida: (no output, solo instala)
|
|
Por qué: Agregar un nuevo target para cross-compilation
|
|
|
|
29. cargo build --release --target x86_64-unknown-linux-gnu
|
|
Uso: Compilar explícitamente para un target DIFERENTE
|
|
Salida: Crea target/x86_64-unknown-linux-gnu/release/
|
|
Por qué: Cross-compilation (compilar para otro SO)
|
|
|
|
30. ls -lh target/x86_64-unknown-linux-gnu/release/
|
|
Uso: Ver binarios compilados para Linux
|
|
Salida: workspace, workspace-tui, etc. (para Linux)
|
|
Por qué: Verificar cross-compilation funcionó
|
|
|
|
─────────────────────────────────────────────────────────────────────────────
|
|
|
|
CATEGORÍA 9: ANÁLISIS DE BINARIOS
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
31. file target/release/workspace
|
|
Uso: Ver arquitectura del binario (LA MÁS IMPORTANTE)
|
|
Salida: Mach-O 64-bit executable arm64
|
|
O: ELF 64-bit LSB pie executable, x86-64
|
|
Por qué: CONFIRMAR que se compiló para la arquitectura CORRECTA
|
|
Si en Mac ves "x86-64" hay un problema
|
|
Si en Linux ves "arm64" hay un problema
|
|
|
|
32. nm target/release/workspace | head
|
|
Uso: Ver símbolos en el binario
|
|
Salida: (vacío si está stripped)
|
|
Por qué: Debug si sospechas problema en compilación
|
|
|
|
33. ldd target/release/workspace (solo Linux)
|
|
Uso: Ver librerías dinámicas que necesita
|
|
Salida: libstdc++.so.6, libc.so.6, etc.
|
|
Por qué: Verificar dependencias dinámicas
|
|
|
|
─────────────────────────────────────────────────────────────────────────────
|
|
|
|
CATEGORÍA 10: BUILD Y COMPILACIÓN
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
34. cargo build --workspace
|
|
Uso: Compilar en debug (rápido, para desarrollo)
|
|
Salida: Compiling workspace-core v0.1.0...
|
|
Por qué: Build rápido durante desarrollo
|
|
|
|
35. cargo build --release --workspace
|
|
Uso: Compilar en release (lento, optimizado)
|
|
Salida: Compiling workspace-core v0.1.0...
|
|
Por qué: Build para producción, con optimizaciones
|
|
|
|
36. cargo check --workspace
|
|
Uso: Verificar errores sin generar binarios
|
|
Salida: Checking workspace-core v0.1.0...
|
|
Por qué: Feedback rápido sin compilar completo
|
|
|
|
37. cargo test --workspace --lib --release
|
|
Uso: Ejecutar tests con binarios optimizados
|
|
Salida: test result: ok. X passed...
|
|
Por qué: Validar que todo funciona antes de release
|
|
|
|
╔════════════════════════════════════════════════════════════════════════════╗
|
|
║ RESUMEN CLAVE PARA TI ║
|
|
╚════════════════════════════════════════════════════════════════════════════╝
|
|
|
|
PARA ENTENDER CÓMO ELIGE CARGO EL TARGET, ESTOS 5 SON SUFICIENTES:
|
|
|
|
1. uname -s && uname -m
|
|
→ Ver qué SO y arquitectura tienes
|
|
|
|
2. rustc --print host-tuple
|
|
→ VER EXACTAMENTE QUÉ TARGET USA RUST (la clave)
|
|
|
|
3. rustup target list | grep installed
|
|
→ Ver qué targets puedes compilar
|
|
|
|
4. cargo build --release -v
|
|
→ Ver cada comando que ejecuta cargo/rustc
|
|
|
|
5. file target/release/workspace
|
|
→ CONFIRMAR que el binario es para la arquitectura correcta
|
|
|
|
════════════════════════════════════════════════════════════════════════════
|
|
|
|
ESTOS 5 COMANDOS RESUELVEN EL 99% DE PROBLEMAS DE TARGET SELECTION:
|
|
|
|
✓ ¿Por qué no compila para mi arquitectura? → file target/release/workspace
|
|
✓ ¿Cuál es mi target? → rustc --print host-tuple
|
|
✓ ¿Puedo compilar para Linux? → rustup target list
|
|
✓ ¿Qué está haciendo cargo? → cargo build -v
|
|
✓ ¿Qué SO tengo? → uname -s
|
|
|
|
════════════════════════════════════════════════════════════════════════════
|