Aprende a instalar Pharo localmente para resolver los ejercicios de Exercism en tu propia máquina
La forma más sencilla de instalar Pharo es usar una descarga zero conf desde la línea de comandos de una terminal.
Nota: si intentas actualizar una instalación existente, consulta las instrucciones de actualización.
Si usas Windows y no tienes instalado un shell estilo UNIX, salta a las instrucciones de instalación en Windows (más abajo).
Si eres un usuario de Linux más avanzado, quizá quieras consultar la instalación para hackers de Linux.
Para Linux/OSX (suponiendo que ya instalaste Exercism y te uniste al track de Pharo), navega a tu directorio /Exercism/pharo-smalltalk y escribe:
curl https://get.pharo.org/64/ | bash
y lanza Pharo con las herramientas de Exercism pegando el siguiente «script de carga»:
./pharo-ui Pharo.image eval "
Iceberg remoteTypeSelector: #httpsUrl.
Metacello new
baseline: 'Exercism';
repository: 'github://exercism/pharo-smalltalk:main/releases/latest';
load.
#ExercismManager asClass welcome.
"
Si tienes algún problema de TIMEOUT al cargar las herramientas, sal de Pharo y limpia la caché de git escribiendo:
rm -rf pharo-local/iceberg/
Y después repite el ejemplo ./pharo-ui ... de arriba.
Si sigues teniendo problemas, visita el canal de Discord de Pharo que se describe en la página de la comunidad de Pharo.
Si todo funciona bien, verás barras de progreso de carga parpadear en la pantalla y luego aparecerá una ventana de System Browser.
CONSEJO: Cuando vayas a salir de Pharo, guarda tus cambios (elige el menú de Pharo y selecciona "Save and Quit"). Ahora puedes iniciar Pharo con Exercism ya cargado simplemente escribiendo:
./pharo-ui Pharo.image
Todavía estamos definiendo cuáles son los mejores requisitos de herramientas de línea de comandos para Windows, pero también puedes instalar Pharo de forma gráfica con el Windows Pharo Launcher (una herramienta práctica para administrar varias imágenes de Pharo). Este lanzador también está disponible para OSX y Linux si prefieres una interfaz gráfica.
Ejecuta el archivo .msi que descargaste para instalar el Pharo Launcher.
Ejecuta el lanzador de Pharo.
En la esquina superior izquierda, haz clic en "New".
En la ventana, selecciona "Official distributions" en las categorías de plantillas.
Para los ejercicios de Exercism, elige de la lista de plantillas de imágenes de Pharo la última versión estable (actualmente "Pharo 10.0 64-bit (stable)", que es la recomendada).
Haz clic para resaltar una plantilla de imagen, dale un nombre y luego haz clic en el botón de crear imagen que está abajo (una forma de engranaje naranja).

Una vez que se descargue la plantilla, aparecerá a la derecha en la tabla Existing Images. Haz clic en ella y luego haz clic en el botón de lanzar que está arriba (una flecha verde de play).

Cuando la imagen de Pharo se haya iniciado, abre un Playground eligiendo el menú Browse y seleccionando Playground, o usa
ctrl + o + w.

Por último, copia y pega el siguiente fragmento en el playground:
Iceberg remoteTypeSelector: #httpsUrl.
Metacello new
baseline: 'Exercism';
repository: 'github://exercism/pharo-smalltalk:main/releases/latest';
load.
#ExercismManager asClass welcome.
Luego evalúa el código pegado seleccionándolo todo, haciendo clic derecho y seleccionando Do it en el menú (o usando ctrl + d).
Si todo funciona bien, verás barras de progreso de carga parpadear en la pantalla y luego aparecerá una ventana de System Browser.
Cuando inicies Pharo, verás un proyecto Welcome, en un System Browser (consejo: si alguna vez pierdes esta ventana, puedes abrir una nueva desde el menú Tools|System Browser).

El panel superior izquierdo del System Browser muestra los paquetes de tu entorno, y notarás que el script de instalación ya configuró
un paquete llamado Exercism, que contiene una etiqueta de subproyecto llamada Welcome. El segundo panel muestra las clases, y también hay una clase llamada Welcome. Debajo del panel de clases hay 4 botones de opción: "Flat" (muestra las clases del paquete), "Hier." (muestra una jerarquía de clases), "Inst. side" (muestra los métodos de instancia) y "Class side" (muestra los métodos y constructores de clase).
Si haces clic en la pestaña Comment, puedes ver las instrucciones más recientes para usar Pharo Exercism. Lee los comentarios e intenta ejecutar tu primera prueba.
En otros lenguajes basados en archivos, normalmente irías a una terminal en este punto y usarías la CLI de Exercism para obtener el siguiente ejercicio. Aunque Pharo puede trabajar con archivos de forma similar, el entorno está en realidad ajustado para trabajar con objetos vivos. Las clases, los métodos y el código fuente son, curiosamente, objetos como todo lo demás en Pharo. Aprenderás más sobre esto a lo largo de este track.
Para Exercism, incluimos un plugin que te permite obtener y enviar ejercicios de Pharo desde dentro del IDE.
Todo lo que necesitas hacer es hacer clic derecho en un paquete de ejercicio (en este caso, el paquete Welcome en el panel superior izquierdo) y seleccionar el
elemento de menú Exercism | Fetch Exercise. Esto te pedirá el nombre de un ejercicio (por ejemplo, hello-world) y, cuando lo escribas, lo obtendrá automáticamente por ti.
Los nombres de los ejercicios aparecen en la descripción de cada ejercicio en tu página del track de Pharo (a la derecha del todo). Hay una instrucción Download con una cadena de CLI que contiene la clave de cada ejercicio. También puedes usar el botón de copiar que está junto a las instrucciones de la CLI y pegar la cadena completa en el mensaje de búsqueda (y extraeremos la clave automáticamente).
Cuando hayas introducido un ejercicio válido, el plugin obtendrá el código correspondiente y lo mostrará en el System Browser, listo para que empieces a programar con pruebas.
Cuando todas tus pruebas pasen, puedes enviar tu solución usando el mismo menú contextual de tu paquete de ejercicio (haz clic derecho en la etiqueta del paquete y selecciona Exercism | Submit Exercise...)

Por último, usa el menú Exercism | View Track Progress para visitar el sitio web de Exercism y ver qué otros ejercicios se han desbloqueado para ti, además de publicar preguntas sobre tu envío para que los mentores las lean.
¿Sabías que...? Cuando inicias Pharo, en realidad estás restaurando una instantánea de una imagen de ejecución, similar a una imagen de sistema operativo de VMWare. Es un concepto poderoso que te permite suspender el trabajo a mitad de una operación, incluso mientras depuras algo. Cuando vuelvas a iniciar Pharo, podrás seguir recorriendo el código en el depurador restaurado o continuar un paso de refactorización.
Si alguna vez necesitas restablecer tu token de la CLI por un problema de seguridad, visita tu página de configuración de Exercism y usa el botón de restablecer token. Cuando lo hayas hecho, debes borrar tu token anterior en Pharo Exercism evaluando el siguiente código en un Playground:
ExercismHttpClient
reset;
promptForToken.
De vez en cuando podemos pedirte que actualices las bibliotecas de tu imagen de Pharo Exercism. Sigue estas instrucciones.