Skip to content

On Apple Silicon (arm64), brew install instantclient-basic and alike installs x84_64 binary in Homebrew prefix while arm64 is expected #50

Description

@webadmin97

Symptoms

On Apple Silicon (arm64), brew install instantclient-basic and alike installs x84_64 binary in Homebrew prefix while arm64 is expected

Root cause

The Homebrew cask still provides Intel binary only
or
If brew fails to detect arm64 architecture, it installs x84_64 binary

Solution or workarounds

To force installing arm64 binary on arm64 based OS, use the commands below:
$ brew install instantclient-arm64-basic
$ brew install instantclient-arm64-sqlplus
$ brew install instantclient-arm64-sdk

To replicate the symptoms

Follow the steps for installing Oracle Instant Client on macOS Silicon (arm64):

$ brew tap InstantClientTap/instantclient
$ brew install instantclient-basic
$ file '/opt/homebrew/lib/libclntsh.dylib'

Output shows x84_64 based library

This can be replicated at will.

Output:

❯ brew install instantclient-basic
==> Auto-updating Homebrew...
Adjust how often this is run with `$HOMEBREW_AUTO_UPDATE_SECS` or disable with
`$HOMEBREW_NO_AUTO_UPDATE=1`. Hide these hints with `$HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
==> Downloading https://ghcr.io/v2/homebrew/core/portable-ruby/blobs/sha256:1c98fa49eacc935640a6f8e10a2bf33f14cfc276804b71ddb658ea45ba99d167
############################################################################## 100.0%
==> Pouring portable-ruby-3.4.8.arm64_big_sur.bottle.tar.gz
==> Auto-updated Homebrew!
...
==> New Formulae
....

You have 2 outdated formulae installed.

==> Fetching downloads for: instantclient-basic
✔︎ Formula instantclient-basic (19.8.0.0.0dbru)          [Verified     75.2MB/ 75.2MB]
==> Installing instantclient-basic from instantclienttap/instantclient
🍺  /opt/homebrew/Cellar/instantclient-basic/19.8.0.0.0dbru: 20 files, 245.0MB, built in 3 seconds
==> Running `brew cleanup instantclient-basic`...
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
❯
❯ file '/opt/homebrew/lib/libclntsh.dylib'
/opt/homebrew/lib/libclntsh.dylib: Mach-O 64-bit dynamically linked shared library x86_64
❯

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions