Solución: Error en instalación de binarios whisper.cpp
Problema Detectado
✅ Compilación exitosa!
📦 Instalando whisper-amd...
cp: no se puede efectuar `stat' sobre 'bin/whisper': No existe el fichero o el directorio
❌ Error: whisper-amd no funciona correctamente
Diagnóstico
La compilación fue exitosa, pero los binarios están en ubicación diferente o con nombres diferentes en la versión actual de whisper.cpp.
Script de Diagnóstico y Corrección
#!/bin/bash
# fix_whisper_binaries.sh
echo "🔍 Diagnosticando ubicación de binarios whisper.cpp"
echo "================================================="
# Navegar al directorio de build
WORK_DIR="$HOME/whisper_amd_build"
cd "$WORK_DIR/whisper.cpp/build"
echo "📁 Contenido del directorio build:"
ls -la
echo -e "\n📁 Buscando binarios compilados..."
find . -name "*whisper*" -type f -executable
echo -e "\n📁 Contenido del directorio bin (si existe):"
if [ -d "bin" ]; then
ls -la bin/
else
echo "❌ Directorio bin/ no existe"
fi
echo -e "\n📁 Buscando ejecutables en todo el directorio build:"
find . -type f -executable -name "*main*" -o -name "*whisper*" | head -10
echo -e "\n🔧 Instalando binarios encontrados..."
# Buscar el ejecutable principal de whisper
MAIN_BINARY=""
WHISPER_BINARY=""
# Posibles ubicaciones del binario principal
for possible in "./main" "./whisper" "./bin/main" "./bin/whisper" "./src/main" "./examples/main"; do
if [ -x "$possible" ]; then
echo "✅ Encontrado ejecutable principal: $possible"
MAIN_BINARY="$possible"
break
fi
done
# Buscar ejecutable whisper específico
for possible in "./whisper" "./bin/whisper" "./src/whisper" "./examples/whisper"; do
if [ -x "$possible" ]; then
echo "✅ Encontrado ejecutable whisper: $possible"
WHISPER_BINARY="$possible"
break
fi
done
# Instalar binarios encontrados
if [ -n "$MAIN_BINARY" ]; then
echo "📦 Instalando $MAIN_BINARY como whisper-amd..."
sudo cp "$MAIN_BINARY" /usr/local/bin/whisper-amd
sudo chmod +x /usr/local/bin/whisper-amd
# Crear enlaces de compatibilidad
sudo ln -sf /usr/local/bin/whisper-amd /usr/local/bin/whisper-main-amd
echo "✅ whisper-amd instalado desde $MAIN_BINARY"
elif [ -n "$WHISPER_BINARY" ]; then
echo "📦 Instalando $WHISPER_BINARY como whisper-amd..."
sudo cp "$WHISPER_BINARY" /usr/local/bin/whisper-amd
sudo chmod +x /usr/local/bin/whisper-amd
echo "✅ whisper-amd instalado desde $WHISPER_BINARY"
else
echo "❌ No se encontraron binarios ejecutables"
echo "🔍 Listando todos los archivos ejecutables:"
find . -type f -executable
exit 1
fi
# Verificar instalación
echo -e "\n🧪 Verificando instalación final..."
if /usr/local/bin/whisper-amd --help >/dev/null 2>&1; then
echo "✅ whisper-amd funciona correctamente"
echo "📍 Ubicación: /usr/local/bin/whisper-amd"
# Mostrar información del binario
echo -e "\n📊 Información del binario instalado:"
/usr/local/bin/whisper-amd --help 2>&1 | head -8
echo -e "\n🎉 ¡Instalación corregida exitosamente!"
echo "🔥 whisper-amd listo para usar"
else
echo "❌ whisper-amd aún no funciona"
echo "🔧 Intentando diagnóstico adicional..."
# Verificar dependencias
echo "📋 Verificando dependencias del binario:"
ldd /usr/local/bin/whisper-amd 2>/dev/null || echo "No se puede verificar dependencias"
# Verificar permisos
echo "📋 Permisos del archivo:"
ls -la /usr/local/bin/whisper-amd
fi
Script de Verificación Adicional
#!/bin/bash
# verify_whisper_compilation.sh
echo "🔍 VERIFICACIÓN COMPLETA DE COMPILACIÓN"
echo "======================================"
WORK_DIR="$HOME/whisper_amd_build"
BUILD_DIR="$WORK_DIR/whisper.cpp/build"
if [ ! -d "$BUILD_DIR" ]; then
echo "❌ Directorio de build no encontrado: $BUILD_DIR"
exit 1
fi
cd "$BUILD_DIR"
echo "📊 Análisis de la compilación:"
echo "Directorio actual: $(pwd)"
echo "Tamaño del directorio build: $(du -sh . 2>/dev/null || echo 'No calculable')"
echo -e "\n📁 Estructura del directorio build:"
tree -L 2 . 2>/dev/null || find . -type d -maxdepth 2 | sort
echo -e "\n🔍 Todos los archivos ejecutables encontrados:"
find . -type f -executable -exec ls -lh {} \; | sort -k5 -hr
echo -e "\n📋 Archivos que contienen 'whisper' en el nombre:"
find . -name "*whisper*" -type f
echo -e "\n📋 Archivos que contienen 'main' en el nombre:"
find . -name "*main*" -type f
echo -e "\n🧪 Probando ejecutables encontrados:"
for exe in $(find . -type f -executable); do
echo "Probando: $exe"
if timeout 5s "$exe" --help >/dev/null 2>&1; then
echo " ✅ $exe responde a --help"
size=$(stat -c%s "$exe" 2>/dev/null || echo "0")
echo " 📊 Tamaño: $((size/1024/1024))MB"
else
echo " ❌ $exe no responde o error"
fi
done
echo -e "\n🔧 Verificación de bibliotecas compiladas:"
find . -name "*.so" -o -name "*.a" | head -5
echo -e "\n📋 Log de make (últimas líneas si existe):"
if [ -f "CMakeFiles/whisper.dir/build.make" ]; then
echo "✅ Archivos de make encontrados"
else
echo "⚠️ Archivos de make no encontrados"
fi
Solución Rápida (Método Manual)
#!/bin/bash
# quick_install_whisper.sh
echo "🚀 INSTALACIÓN RÁPIDA - MÉTODO MANUAL"
echo "===================================="
cd ~/whisper_amd_build/whisper.cpp/build
# Buscar y probar el ejecutable principal
echo "🔍 Buscando ejecutable principal..."
CANDIDATES=("./main" "./whisper" "./examples/main" "./src/main")
for candidate in "${CANDIDATES[@]}"; do
if [ -f "$candidate" ] && [ -x "$candidate" ]; then
echo "✅ Probando: $candidate"
# Probar si responde
if timeout 5s "$candidate" --help >/dev/null 2>&1; then
echo "🎯 ¡Ejecutable válido encontrado!"
# Instalar
sudo cp "$candidate" /usr/local/bin/whisper-amd
sudo chmod +x /usr/local/bin/whisper-amd
# Verificar instalación
if /usr/local/bin/whisper-amd --help >/dev/null 2>&1; then
echo "✅ whisper-amd instalado correctamente"
echo "📍 Fuente: $candidate"
echo "📍 Destino: /usr/local/bin/whisper-amd"
# Mostrar ayuda básica
echo -e "\n📊 Verificación final:"
/usr/local/bin/whisper-amd --help 2>&1 | head -5
echo -e "\n🎉 ¡INSTALACIÓN EXITOSA!"
exit 0
fi
fi
fi
done
echo "❌ No se encontró ejecutable válido"
echo "🔧 Ejecutar script de diagnóstico completo"
Pasos de Corrección
Paso 1: Ejecutar diagnóstico
chmod +x fix_whisper_binaries.sh
./fix_whisper_binaries.sh
Paso 2: Si el diagnóstico falla, usar método manual
chmod +x quick_install_whisper.sh
./quick_install_whisper.sh
Paso 3: Verificación completa (opcional)
chmod +x verify_whisper_compilation.sh
./verify_whisper_compilation.sh
Solución: Error en instalación de binarios whisper.cpp
Problema Detectado
Diagnóstico
La compilación fue exitosa, pero los binarios están en ubicación diferente o con nombres diferentes en la versión actual de whisper.cpp.
Script de Diagnóstico y Corrección
Script de Verificación Adicional
Solución Rápida (Método Manual)
Pasos de Corrección
Paso 1: Ejecutar diagnóstico
Paso 2: Si el diagnóstico falla, usar método manual
Paso 3: Verificación completa (opcional)