Scala

Notas sobre la instalación y uso de Scala.


Introducción

De acuerdo a la Wikipedia1,2, «Scala es un lenguaje de programación multi paradigma diseñado para expresar patrones comunes de programación en forma concisa, elegante y con tipos seguros. Integra sutilmente características de lenguajes funcionales y orientados a objetos. La implementación actual se ejecuta en la máquina virtual de Java«, y a primera vista parece similar a Java. Pero, conforme uno va explorando el lenguaje va uno advirtiendo las diferencias y, en ciertos aspectos, algunas similitudes con Python.

Instalación

Scala puede ser instalado en macOS vía Homebrew o a través de Coursier. De acuerdo a la opción seleccionada serán las acciones a seguir en la instalación.

Coursier

Coursier es el administrador de aplicaciones y artefactos de Scala, es el equivalente al pip de Python (aunque quizás sea mucho más apropiado compararlo con conda). Permite instalar aplicaciones de Scala y configurar el entorno de desarrollo. También puede descargar y almacenar en caché artefactos desde la web. Este debe ser instalado primero para proceder con la instalación de Scala. Ahora bien, Coursier mismo puede ser instalado via Homebrew o por via propia.

Vía propia

Conforme se indica en las páginas de la documentación de Scala sobre su instalación, para el caso de macOS uno debe seleccionar la instalación apropiada para un equipo Intel inside o Apple Silicon. Para el caso que aquí se registra, el comando usado fue:

$ cd $HOME/Downloads
$ curl -fL https://github.com/VirtusLab/coursier-m1/releases/latest/download/cs-aarch64-apple-darwin.gz | gzip -d > cs
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 20.1M 100 20.1M 0 0 10.2M 0 0:00:01 0:00:01 --:--:-- 13.3M
$

tras lo que se ejecutó:

$ chmod +x cs
$ ./cs setup
Checking if a JVM is installed
Found a JVM installed under /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home.

Checking if ~/Library/Application Support/Coursier/bin is in PATH
Should we add ~/Library/Application Support/Coursier/bin to your PATH via ~/.profile, ~/.bash_profile? [Y/n] Y

Checking if the standard Scala applications are installed
Installed ammonite
Installed cs
Installed coursier
Installed scala
Installed scalac
Installed scala-cli
Installed sbt
Installed sbtn
Installed scalafmt

$

Y, conviene revisar y anotar (lo destacado en negritas) la adición del script al profile de BASH.

# Scala
# >>> coursier install directory >>>
export PATH="$PATH:/Users/lalo/Library/Application Support/Coursier/bin"
# <<< coursier install directory <<<

Cerrar y abrir la sesón en Terminal para que se tomen los cambios y validar el resultado con:

$ scala --version
Scala code runner version: 1.5.4
Scala version (default): 3.6.2

Vía Homebrew

La instalación de Coursier a través de Homebrew es sencilla para el usuario (como podrá apreciar con el comando resaltado en negritas) pero, podrá observarse que es una tarea compleja para el administrador de paquetes (en la M1 todo esto tomó unos 15 minutos). En este ejemplo, Homebrew mismo identifica elementos que requieren ser actualizados antes y procede con ello. El punto donde inicia con la instalación de Coursier ha sido destacado en anaranjado para fácil identificación.

Hay que destacar lo siguiente:

  • La actualización de paquetes y bibliotecas (formulae, taps, casks, etc., de acuerdo a la terminología de Homebrew), como puede leerse, puede sólo recurrir a la descarga de un binario (asumiendo que las referencias a blobs en las rutas impliquen esto), o llevar a cabo la recompilación desde el fuente. Esto suma varios minutos a todo este proceso de instalación.
  • Similarmente, prodrá observarse en lo que respecta a la instalación de Coursier, varias compilaciones son llevadas a cabo.
% brew install coursier
==> Auto-updating Homebrew...
Adjust how often this is run with HOMEBREW_AUTO_UPDATE_SECS or disable with
HOMEBREW_NO_AUTO_UPDATE. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
==> Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:303bed4c7fc431a685db3c3c151d873740114adbdccd23762ea2d1e39ea78f47
######################################################################### 100.0%
==> Pouring portable-ruby-3.3.6.arm64_big_sur.bottle.tar.gz
==> Auto-updated Homebrew!
Updated 3 taps (coursier/formulas, homebrew/core and homebrew/cask).
==> New Formulae
acronym gurk poselib
action-docs harlequin postgresql@17
afl++ havn posting
aicommit hawkeye probe-rs-tools
aliae heroku protoc-gen-grpc-java
ampl-asl hgrep pscale
ansible-builder icu4c@74 pytest
ansible@10 icu4c@75 python-freethreading
argtable3 icu4c@76 python-gdbm@3.13
atac idsgrep python-tk@3.13
aws-c-auth imgp python@3.13
aws-c-cal inchi qbec
aws-c-common ipatool rainfrog
aws-c-compression jikken rapidyaml
aws-c-event-stream jwt-cli recc
aws-c-http jxl-oxide redka
aws-c-io kamal-proxy regal
aws-c-mqtt kanata render
aws-c-s3 keep-sorted replxx
aws-c-sdkutils kfr repren
aws-checksums kool reveal-md
aws-crt-cpp kraftkit rip2
azqr kty rogcat
azure-core-cpp kubeone roxctl
azurehound kubernetes-cli@1.31 rsgain
beautysh kubetail rshijack
bender kubetrim rust-script
bibtex-tidy kuzco s5cmd
binsider langgraph-cli scooter
blisp languagetool-rust screenpipe
boring lbfgspp sendme
bruno-cli leetcode-cli sentry-cli
carapace legba sequin
cargo-chef libcss sequoia-sq
cargo-expand libcutl sesh
cargo-public-api libdex setconf
cargo-run-bin libdom sf
cargo-shuttle libesedb sfsexp
cbfmt libhubbub sidekick
clickhouse-sql-parser libkeyfinder sigsum-go
cljfmt libmsquic sixtunnel
cloudquery libnice-gstreamer sleek
cmake-lint libparserutils slepc
cobo-cli librime slepc-complex
cobra-cli libsidplayfp slumber
codevis libspelling@0.2 spytrap-adb
comtrya libtatsu sqlitecpp
coordgen libultrahdr starlark-rust
cpp-peglib libunicode surfer
crates-tui libxsd-frontend swctl
crossplane limbo synchrony
cyphernetes lla sysprof
decasify lld tabulate
dipc llvm@18 talosctl
directx-headers localai tcl-tk@8
distill-cli m68k-elf-binutils television
djlint m68k-elf-gcc templ
dotnet@8 macmon tenere
draft maeparser termscp
dragonbox mago tex-fmt
dry malcontent tllist
ducker marisa tmux-sessionizer
dug markdown-oxide tomcat@10
dum mbpoll toml2json
energy mdz topiary
erlang@26 meli tuisky
eslint_d mergiraf typeshare
eventpp minijinja-cli typos-lsp
facad minio-warp tzdb
fairy-stockfish mkdocs-material vals
fcft mmdbctl versitygw
fileql nanobind veryfasttree
flang neocmakelsp victorialogs
fltk@1.3 neverest vimtutor-sequel
foot node@22 vipsdisp
funzzy nrm vo-amrwbenc
fzf-make onnx wails
gci openapi-diff wasi-libc
git-spice oranda wasi-runtimes
glaze oxlint wasm-component-ld
glibc@2.17 paperjam watcher
go-blueprint parca weaviate
goku parlay weaviate-cli
gopeed php@8.3 wgo
goyacc pie wthrr
gplugin pipelight xcresultparser
gptme pipet zizmor
graphql-inspector pixi-pack zsh-f-sy-h
gsan polkit zsh-system-clipboard
==> New Casks
ableset font-playwrite-is-guides
acronis-true-image-cleanup-tool font-playwrite-it-moderna-guides
adlock font-playwrite-it-trad-guides
aide-app font-playwrite-mx-guides
anytype@alpha font-playwrite-ng-modern-guides
anytype@beta font-playwrite-nl-guides
archivewebpage font-playwrite-no-guides
ba-connected font-playwrite-nz-guides
backyard-ai font-playwrite-pe-guides
bananas font-playwrite-pl-guides
beaver-notes font-playwrite-pt-guides
bentobox font-playwrite-ro-guides
beyond-compare@4 font-playwrite-sk-guides
bindiff font-playwrite-tz-guides
bobhelper font-playwrite-us-modern-guides
bookmacster@beta font-playwrite-us-trad-guides
caido font-playwrite-vn-guides
cap font-playwrite-za-guides
ccstudio font-pochaevsk
claude font-ponomar
cocoapacketanalyzer font-recursive-desktop
colemak-dh font-shafarik
colemak-dhk font-sketchybar-app-font
default-handler font-sour-gummy
dehesselle-meld font-suse
displaybuddy font-tagesschrift
djstudio font-tamzen
djuced font-triodion
dockside font-udev-gothic-hs
dorico font-zpix
excalidrawz fujifilm-tether-app
fastdmg furtherance
fathom github-copilot-for-xcode
follow halion-sonic
follow@alpha homerow
follow@nightly huggingchat
font-agave huly
font-agu-display hyperconnect
font-badeen-display imaging-edge
font-bravura ishare
font-bungee-tint jet-pilot
font-cica-without-emoji keyguard
font-departure-mono-nerd-font kimis
font-doto label-live
font-edu-au-vic-wa-nt-arrows langgraph-studio
font-edu-au-vic-wa-nt-dots last-window-quits
font-edu-au-vic-wa-nt-guides legcord
font-edu-au-vic-wa-nt-pre lets
font-eldur localsend
font-faculty-glyphic lunatask
font-fairfax-hd magicquit
font-funnel-display mailbird
font-funnel-sans mailsteward
font-greybeard meridiem
font-host-grotesk microsoft-edge@canary
font-ibm-plex-sans-sc minstaller
font-kanchenjunga morisawa-desktop-manager
font-kreative-square mouseless
font-maple-mono-nf mythic
font-matemasie neohtop
font-miracode nvidia-nsight-systems
font-moderustic octarine
font-montserrat-underline ontime
font-moralerspace openchrom
font-moralerspace-hw openhv
font-moralerspace-hw-jpdoc pixel-shift-combiner
font-moralerspace-hw-nf pixpin
font-moralerspace-jpdoc quba
font-moralerspace-nf restic-browser
font-mynaui-icons rode-unify
font-new-amsterdam rode-virtual-channels
font-new-computer-modern rouvy
font-noto-serif-todhri sanctum
font-parkinsans satyrn
font-playwrite-ar-guides shortwave
font-playwrite-at-guides silhouette-studio
font-playwrite-au-nsw-guides singlebox
font-playwrite-au-qld-guides sketchup
font-playwrite-au-sa-guides soundsource@test
font-playwrite-au-tas-guides steinberg-download-assistant
font-playwrite-au-vic-guides steinberg-library-manager
font-playwrite-be-vlg-guides steinberg-mediabay
font-playwrite-be-wal-guides stratoshark
font-playwrite-br-guides superwhisper
font-playwrite-ca-guides supremo
font-playwrite-cl-guides synology-image-assistant
font-playwrite-co-guides sys-pc-tool
font-playwrite-cu-guides tabtab
font-playwrite-cz-guides taskbar
font-playwrite-de-grund-guides teleport
font-playwrite-de-la-guides testfully
font-playwrite-de-sas-guides thunderbird@esr
font-playwrite-de-va-guides typefully
font-playwrite-dk-loopet-guides unraid-usb-creator-next
font-playwrite-dk-uloopet-guides vienna-assistant
font-playwrite-es-deco-guides viz
font-playwrite-es-guides webkinz
font-playwrite-fr-moderne-guides website-audit
font-playwrite-fr-trad-guides whimsical
font-playwrite-gb-j-guides windows-app
font-playwrite-gb-s-guides windsurf
font-playwrite-hr-guides wiso-steuer-2025
font-playwrite-hr-lijeva-guides wizcli
font-playwrite-hu-guides yellowdot
font-playwrite-id-guides zen-browser@twilight
font-playwrite-ie-guides zoom-m3-edit-and-play
font-playwrite-in-guides
==> Deleted Installed Formulae
icu4c ✘ pkg-config ✘

You have 126 outdated formulae installed.

==> Downloading https://ghcr.io/v2/homebrew/core/coursier/manifests/2.1.22
######################################################################### 100.0%
==> Fetching dependencies for coursier: libpng, python-packaging, ca-certificates, openssl@3, sqlite, xz, pkgconf, python@3.13, libunistring, gettext, meson, python-setuptools, glib, libxau, libxrender, pixman, cairo, icu4c@76, harfbuzz, jpeg-turbo, libtiff and openjdk
==> Downloading https://ghcr.io/v2/homebrew/core/libpng/manifests/1.6.44
######################################################################### 100.0%
==> Fetching libpng
==> Downloading https://ghcr.io/v2/homebrew/core/libpng/blobs/sha256:97e7780fa45
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/python-packaging/manifests/24.2
######################################################################### 100.0%
==> Fetching python-packaging
==> Downloading https://ghcr.io/v2/homebrew/core/python-packaging/blobs/sha256:8
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2024-
######################################################################### 100.0%
==> Fetching ca-certificates
==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/blobs/sha256:7a
######################################################################### 100.0%
==> Fetching openssl@3
Warning: Building openssl@3 from source as the bottle needs:
- HOMEBREW_CELLAR: /opt/homebrew/Cellar (yours is /opt/Homebrew/Cellar)
- HOMEBREW_PREFIX: /opt/homebrew (yours is /opt/Homebrew)
==> Downloading https://raw.githubusercontent.com/Homebrew/homebrew-core/32dafdc
######################################################################### 100.0%
==> Downloading https://github.com/openssl/openssl/releases/download/openssl-3.4
==> Downloading from https://objects.githubusercontent.com/github-production-rel
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/sqlite/manifests/3.47.2
######################################################################### 100.0%
==> Fetching sqlite
==> Downloading https://ghcr.io/v2/homebrew/core/sqlite/blobs/sha256:7eca69ad469
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/xz/manifests/5.6.3
######################################################################### 100.0%
==> Fetching xz
==> Downloading https://ghcr.io/v2/homebrew/core/xz/blobs/sha256:743c3d366f11b13
######################################################################### 100.0%
==> Fetching pkgconf
Warning: Building pkgconf from source:
The bottle (and many others) needs to be installed into /opt/homebrew.

==> Downloading https://raw.githubusercontent.com/Homebrew/homebrew-core/32dafdc
######################################################################### 100.0%
==> Downloading https://distfiles.ariadne.space/pkgconf/pkgconf-2.3.0.tar.xz
######################################################################### 100.0%
==> Fetching dependencies for python@3.13: openssl@3 and pkgconf
==> Fetching python@3.13
Warning: Building python@3.13 from source as the bottle needs:
- HOMEBREW_CELLAR: /opt/homebrew/Cellar (yours is /opt/Homebrew/Cellar)
- HOMEBREW_PREFIX: /opt/homebrew (yours is /opt/Homebrew)
==> Downloading https://raw.githubusercontent.com/Homebrew/homebrew-core/32dafdc
######################################################################### 100.0%
==> Downloading https://raw.githubusercontent.com/Homebrew/formula-patches/8b5bc
######################################################################### 100.0%
==> Downloading https://files.pythonhosted.org/packages/d5/ae/09427bea9227a33ec8
######################################################################### 100.0%
==> Downloading https://files.pythonhosted.org/packages/f4/b1/b422acd212ad7eeddd
######################################################################### 100.0%
==> Downloading https://files.pythonhosted.org/packages/43/54/292f26c208734e9a7f
######################################################################### 100.0%
==> Downloading https://files.pythonhosted.org/packages/8a/98/2d9906746cdc6a6ef8
######################################################################### 100.0%
==> Downloading https://www.python.org/ftp/python/3.13.1/Python-3.13.1.tgz
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/libunistring/manifests/1.3
######################################################################### 100.0%
==> Fetching libunistring
==> Downloading https://ghcr.io/v2/homebrew/core/libunistring/blobs/sha256:3cd26
######################################################################### 100.0%
==> Fetching gettext
Warning: Building gettext from source as the bottle needs:
- HOMEBREW_CELLAR: /opt/homebrew/Cellar (yours is /opt/Homebrew/Cellar)
- HOMEBREW_PREFIX: /opt/homebrew (yours is /opt/Homebrew)
==> Downloading https://raw.githubusercontent.com/Homebrew/homebrew-core/32dafdc
######################################################################### 100.0%
==> Downloading https://ftp.gnu.org/gnu/gettext/gettext-0.23.tar.gz
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/meson/manifests/1.6.1
######################################################################### 100.0%
==> Fetching dependencies for meson: openssl@3, pkgconf and python@3.13
==> Fetching meson
==> Downloading https://ghcr.io/v2/homebrew/core/meson/blobs/sha256:cb5d34c2d597
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/python-setuptools/manifests/75.
######################################################################### 100.0%
==> Fetching python-setuptools
==> Downloading https://ghcr.io/v2/homebrew/core/python-setuptools/blobs/sha256:
######################################################################### 100.0%
==> Fetching dependencies for glib: openssl@3, pkgconf, python@3.13 and gettext
==> Fetching glib
Warning: Building glib from source as the bottle needs:
- HOMEBREW_CELLAR: /opt/homebrew/Cellar (yours is /opt/Homebrew/Cellar)
- HOMEBREW_PREFIX: /opt/homebrew (yours is /opt/Homebrew)
==> Downloading https://raw.githubusercontent.com/Homebrew/homebrew-core/32dafdc
######################################################################### 100.0%
==> Downloading https://raw.githubusercontent.com/Homebrew/formula-patches/43467
######################################################################### 100.0%
==> Downloading https://download.gnome.org/sources/gobject-introspection/1.82/go
######################################################################### 100.0%
==> Downloading https://download.gnome.org/sources/glib/2.82/glib-2.82.4.tar.xz
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/libxau/manifests/1.0.12
######################################################################### 100.0%
==> Fetching libxau
==> Downloading https://ghcr.io/v2/homebrew/core/libxau/blobs/sha256:e8a5fedbd9e
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/libxrender/manifests/0.9.12
######################################################################### 100.0%
==> Fetching libxrender
==> Downloading https://ghcr.io/v2/homebrew/core/libxrender/blobs/sha256:edcb888
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/pixman/manifests/0.44.2
######################################################################### 100.0%
==> Fetching pixman
==> Downloading https://ghcr.io/v2/homebrew/core/pixman/blobs/sha256:8ec43a3f69d
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/cairo/manifests/1.18.2
######################################################################### 100.0%
==> Fetching dependencies for cairo: pkgconf and python@3.13
==> Fetching cairo
==> Downloading https://ghcr.io/v2/homebrew/core/cairo/blobs/sha256:d74a4f1916b9
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/icu4c/76/manifests/76.1_1
######################################################################### 100.0%
==> Fetching icu4c@76
==> Downloading https://ghcr.io/v2/homebrew/core/icu4c/76/blobs/sha256:66a2995c0
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/harfbuzz/manifests/10.1.0
######################################################################### 100.0%
==> Fetching dependencies for harfbuzz: openssl@3, pkgconf, python@3.13 and glib
==> Fetching harfbuzz
==> Downloading https://ghcr.io/v2/homebrew/core/harfbuzz/blobs/sha256:442fc5e12
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/jpeg-turbo/manifests/3.1.0
######################################################################### 100.0%
==> Fetching jpeg-turbo
==> Downloading https://ghcr.io/v2/homebrew/core/jpeg-turbo/blobs/sha256:c43b108
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/libtiff/manifests/4.7.0-1
######################################################################### 100.0%
==> Fetching libtiff
==> Downloading https://ghcr.io/v2/homebrew/core/libtiff/blobs/sha256:5f771cedcb
######################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/openjdk/manifests/23.0.1
######################################################################### 100.0%
==> Fetching dependencies for openjdk: openssl@3, pkgconf, python@3.13 and glib
==> Fetching openjdk
==> Downloading https://ghcr.io/v2/homebrew/core/openjdk/blobs/sha256:5cba5c9149
######################################################################### 100.0%
==> Fetching coursier
==> Downloading https://ghcr.io/v2/homebrew/core/coursier/blobs/sha256:46cf11081
######################################################################### 100.0%
==> Installing dependencies for coursier: libpng, python-packaging, ca-certificates, openssl@3, sqlite, xz, pkgconf, python@3.13, libunistring, gettext, meson, python-setuptools, glib, libxau, libxrender, pixman, cairo, icu4c@76, harfbuzz, jpeg-turbo, libtiff and openjdk
==> Installing coursier dependency: libpng
==> Downloading https://ghcr.io/v2/homebrew/core/libpng/manifests/1.6.44
Already downloaded: /Users/admin/Library/Caches/Homebrew/downloads/0e089cec124a817e140dfc78aba6887ae650dd4fefe1d55d5b516a872f8007b5--libpng-1.6.44.bottle_manifest.json
==> Pouring libpng--1.6.44.arm64_sequoia.bottle.tar.gz
🍺 /opt/Homebrew/Cellar/libpng/1.6.44: 28 files, 1.3MB
==> Installing coursier dependency: python-packaging
==> Downloading https://ghcr.io/v2/homebrew/core/python-packaging/manifests/24.2
Already downloaded: /Users/admin/Library/Caches/Homebrew/downloads/a654ed84d67e434e714ac548959721dfcfc2297e1cb87be9237baee7632a2b76--python-packaging-24.2.bottle_manifest.json
==> Pouring python-packaging--24.2.all.bottle.tar.gz
🍺 /opt/Homebrew/Cellar/python-packaging/24.2: 56 files, 491.3KB
==> Installing coursier dependency: ca-certificates
==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2024-
Already downloaded: /Users/admin/Library/Caches/Homebrew/downloads/e16b55434e8bc1472ffb41e1a71c1b853417578c631fa1b69e8730f8cafca76c--ca-certificates-2024-11-26.bottle_manifest.json
==> Pouring ca-certificates--2024-11-26.all.bottle.tar.gz
==> Regenerating CA certificate bundle from keychain, this may take a while...
🍺 /opt/Homebrew/Cellar/ca-certificates/2024-11-26: 4 files, 239.4KB
==> Installing coursier dependency: openssl@3
==> perl ./Configure --prefix=/opt/Homebrew/Cellar/openssl@3/3.4.0 --openssldir=
==> make
==> make install MANDIR=/opt/Homebrew/Cellar/openssl@3/3.4.0/share/man MANSUFFIX
==> make HARNESS_JOBS=8 test TESTS=-test_afalg
🍺 /opt/Homebrew/Cellar/openssl@3/3.4.0: 7,227 files, 33.3MB, built in 2 minutes 59 seconds
==> Installing coursier dependency: sqlite
==> Downloading https://ghcr.io/v2/homebrew/core/sqlite/manifests/3.47.2
Already downloaded: /Users/admin/Library/Caches/Homebrew/downloads/27ec8d19bd501f36464da50d9b2641d87015b451a6b81864afce75a247a2d3b1--sqlite-3.47.2.bottle_manifest.json
==> Pouring sqlite--3.47.2.arm64_sequoia.bottle.tar.gz
🍺 /opt/Homebrew/Cellar/sqlite/3.47.2: 12 files, 4.9MB
==> Installing coursier dependency: xz
==> Downloading https://ghcr.io/v2/homebrew/core/xz/manifests/5.6.3
Already downloaded: /Users/admin/Library/Caches/Homebrew/downloads/e68799185cc17334108ba286ba8c3df0587c9fd8375647d85f7157b62a797599--xz-5.6.3.bottle_manifest.json
==> Pouring xz--5.6.3.arm64_sequoia.bottle.tar.gz
🍺 /opt/Homebrew/Cellar/xz/5.6.3: 96 files, 2.0MB
==> Installing coursier dependency: pkgconf
==> ./configure --disable-silent-rules --with-pkg-config-dir=/opt/Homebrew/lib/p
==> make
==> make install
🍺 /opt/Homebrew/Cellar/pkgconf/2.3.0_1: 27 files, 439KB, built in 9 seconds
==> Installing coursier dependency: python@3.13
==> Patching
==> Applying 3.13-sysconfig.diff
==> ./configure --enable-ipv6 --datarootdir=/opt/Homebrew/Cellar/python@3.13/3.1
==> make
==> make install PYTHONAPPSDIR=/opt/Homebrew/Cellar/python@3.13/3.13.1
==> make frameworkinstallextras PYTHONAPPSDIR=/opt/Homebrew/Cellar/python@3.13/3
==> /opt/Homebrew/Cellar/python@3.13/3.13.1/bin/python3.13 -m venv /private/tmp/
==> /private/tmp/pythonA3.13-20241223-87972-vtd6g7/Python-3.13.1/whl_build/bin/p
==> /private/tmp/pythonA3.13-20241223-87972-vtd6g7/Python-3.13.1/whl_build/bin/p
==> /private/tmp/pythonA3.13-20241223-87972-vtd6g7/Python-3.13.1/whl_build/bin/p
==> /private/tmp/pythonA3.13-20241223-87972-vtd6g7/Python-3.13.1/whl_build/bin/p
==> /private/tmp/pythonA3.13-20241223-87972-vtd6g7/Python-3.13.1/whl_build/bin/p
Warning: These files were overwritten during the `brew link` step:
/opt/Homebrew/bin/idle3
/opt/Homebrew/bin/pydoc3
/opt/Homebrew/bin/python3
/opt/Homebrew/bin/python3-config
/opt/Homebrew/share/man/man1/python3.1
/opt/Homebrew/lib/pkgconfig/python3-embed.pc
/opt/Homebrew/lib/pkgconfig/python3.pc
/opt/Homebrew/Frameworks/Python.framework/Headers
/opt/Homebrew/Frameworks/Python.framework/Python
/opt/Homebrew/Frameworks/Python.framework/Resources
/opt/Homebrew/Frameworks/Python.framework/Versions/Current

They have been backed up to: /Users/admin/Library/Caches/Homebrew/Backup
==> Downloading https://formulae.brew.sh/api/formula.jws.json
#=#=#
==> /opt/Homebrew/Cellar/python@3.13/3.13.1/bin/python3.13 -Im ensurepip
==> /opt/Homebrew/Cellar/python@3.13/3.13.1/bin/python3.13 -Im pip install -v --
==> Summary
🍺 /opt/Homebrew/Cellar/python@3.13/3.13.1: 8,286 files, 194.7MB, built in 3 minutes 25 seconds
==> Installing coursier dependency: libunistring
==> Downloading https://ghcr.io/v2/homebrew/core/libunistring/manifests/1.3
Already downloaded: /Users/admin/Library/Caches/Homebrew/downloads/a570da63bc1839c7e217f203abd54d4d873ebd6b99f6e88994d0e79e2ebe987c--libunistring-1.3.bottle_manifest.json
==> Pouring libunistring--1.3.arm64_sequoia.bottle.tar.gz
🍺 /opt/Homebrew/Cellar/libunistring/1.3: 59 files, 5.4MB
==> Installing coursier dependency: gettext
==> ./configure --with-libunistring-prefix=/opt/Homebrew/opt/libunistring --disa
==> make
==> make install
🍺 /opt/Homebrew/Cellar/gettext/0.23: 2,052 files, 22.0MB, built in 5 minutes 6 seconds
==> Installing coursier dependency: meson
==> Downloading https://ghcr.io/v2/homebrew/core/meson/manifests/1.6.1
Already downloaded: /Users/admin/Library/Caches/Homebrew/downloads/9f51235016dc78883bf05a878292a910049786e6ef595f90599bf392290329dc--meson-1.6.1.bottle_manifest.json
==> Pouring meson--1.6.1.all.bottle.tar.gz
🍺 /opt/Homebrew/Cellar/meson/1.6.1: 257 files, 3.7MB
==> Installing coursier dependency: python-setuptools
==> Downloading https://ghcr.io/v2/homebrew/core/python-setuptools/manifests/75.
Already downloaded: /Users/admin/Library/Caches/Homebrew/downloads/78d060d30c6c92fd7d0f6232745566828cf6b8bc6c56732c79acd6daf82d7fda--python-setuptools-75.6.0.bottle_manifest.json
==> Pouring python-setuptools--75.6.0.all.bottle.tar.gz
🍺 /opt/Homebrew/Cellar/python-setuptools/75.6.0: 984 files, 8.2MB
==> Installing coursier dependency: glib
==> Patching
==> Applying hardcoded-paths.diff
==> meson setup build_staging -Dintrospection=disabled --localstatedir=/opt/Home
==> meson compile -C build_staging --verbose
==> meson install -C build_staging
==> meson setup build -Dcairo=disabled -Ddoctool=disabled --prefix=/private/tmp/
==> meson compile -C build --verbose
Last 15 lines from /Users/admin/Library/Logs/Homebrew/glib/05.meson:

[154/177] /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build/tools/g-ir-scanner --quiet --output=tests/scanner/SLetter-1.0.gir --no-libtool --reparse-validate --add-include-path /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/gir --add-include-path /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build/gir --warn-all --warn-error --namespace=SLetter --nsversion=1.0 --identifier-prefix=S --include=Gio-2.0 --library=sletter-1.0 --c-include=sletter.h -L /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build/tests/scanner -I /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/tests/scanner -I /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/tests/scanner/.. -I /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/gobject-introspection-tests ../tests/scanner/sletter.c ../tests/scanner/sletter.h
FAILED: tests/scanner/SLetter-1.0.gir
/private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build/tools/g-ir-scanner --quiet --output=tests/scanner/SLetter-1.0.gir --no-libtool --reparse-validate --add-include-path /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/gir --add-include-path /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build/gir --warn-all --warn-error --namespace=SLetter --nsversion=1.0 --identifier-prefix=S --include=Gio-2.0 --library=sletter-1.0 --c-include=sletter.h -L /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build/tests/scanner -I /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/tests/scanner -I /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/tests/scanner/.. -I /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/gobject-introspection-tests ../tests/scanner/sletter.c ../tests/scanner/sletter.h
<unknown>:: Warning: SLetter: (ErrorQuarkFunction)spawn_error_quark: s_spawn_error_quark: return value: Unresolved type: 'GQuark'
<unknown>:: Warning: SLetter: (ErrorQuarkFunction)dbus_error_quark: s_dbus_error_quark: return value: Unresolved type: 'GQuark'
<unknown>:: Fatal: SLetter: warnings configured as fatal
<unknown>:: Fatal: SLetter: warnings configured as fatal

[155/177] /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build/tools/g-ir-scanner --quiet --output=tests/Everything-1.0.gir --no-libtool --reparse-validate --add-include-path=/private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/gir --add-include-path=/private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build/gir --warn-all --warn-error --namespace=Everything --nsversion=1.0 --include=Gio-2.0 --library=everything-1.0 -L /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build/tests -I /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/tests -I /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/gobject-introspection-tests tests/everything.c tests/everything.h
[156/177] /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build/tools/g-ir-scanner --quiet --output=tests/scanner/GtkFrob-1.0.gir --no-libtool --reparse-validate --add-include-path /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/gir --add-include-path /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build/gir --warn-all --warn-error --namespace=GtkFrob --nsversion=1.0 --identifier-prefix=Gtk --symbol-prefix=gtk_frob --include=GObject-2.0 --pkg=gobject-2.0 --library=gtkfrob-1.0 -L /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build/tests/scanner -I /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/tests/scanner -I /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/tests/scanner/.. -I /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/gobject-introspection-tests ../tests/scanner/gtkfrob.c ../tests/scanner/gtkfrob.h
[157/177] /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build/tools/g-ir-scanner --quiet --output=tests/scanner/GetType-1.0.gir --no-libtool --reparse-validate --add-include-path /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/gir --add-include-path /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build/gir --namespace=GetType --nsversion=1.0 --identifier-prefix=GetType --symbol-prefix=gettype --include=GObject-2.0 --pkg=gobject-2.0 --library=gettype-1.0 --c-include=gettype.h -L /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build/tests/scanner -I /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/tests/scanner -I /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/tests/scanner/.. -I /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/gobject-introspection-tests ../tests/scanner/gettype.c ../tests/scanner/gettype.h
ninja: build stopped: subcommand failed.
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /opt/homebrew/Library/Homebrew/shims/mac/super/ninja -C /private/tmp/glib--gobject-introspection-20241224-91112-tgeefm/gobject-introspection-1.82.0/build -v

Do not report this issue to Homebrew/brew or Homebrew/homebrew-core!

Do not report this issue: you are running in an unsupported configuration.
%

Desinstalación

De acuerdo a la opción seleccionada en la instalación, dependerá la forma en la que se lleve a cabo la desinstalación.

Coursier

Si la instalación se llevó a cabo mediante Coursier, es mediante Coursier que debe removerse. Los pasos a seguir para una desinstalación completa, es como se muestra a continuación:

$ cs uninstall --all
$ rm -r $HOME/Library/Application\ Support/Coursier

Finalmente, uno debe editar el .bash_profile (o el correspondiente archivo de arranque sel shell que se esté usando) y remover las líneas relacionadas con Scala, que pueden asemejarse por ejemplo a:

# Scala
export PATH="~/Library/Application Support/Coursier/bin":${PATH}

y reiniciar la sesión en Terminal, al menos.


Referencias

  1. «Scala (programming language)«, Wikipedia, web. Visited: 2024.12.22. URL: https://en.wikipedia.org/wiki/Scala_(programming_language)
  2. «Scala (lenguaje de programación)«, Wikipedia, web. Visited: 2024.12.22. URL: https://en.wikipedia.org/wiki/Scala_(programming_language)
  3. Coursier web site. Visited: 2024.12.22. URL: https://get-coursier.io/.

Twitter Wordpress eMail
© Todos los derechos reservados.
Dr. Eduardo René Rodríguez Avila
Creación: 2024.02.29
Última actualización: 2024.12.23
El contenido de este sitio puede ser copiado y reproducido libremente mientras no sea alterado y se cite su origen. Marcas y productos registrados son citados por referencia y sin fines de lucro o dolo. Todas las opiniones son a título personal del o los autores de éstas y, salvo sea expresado de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello que es tratado. Para conocer más sobre la posición de privacidad y responsabilidad de lo que se presenta en este sitio web y como ha sido obtenido, consulte la declaración al respecto.