Skip to content

Instantly share code, notes, and snippets.

@alexishida
Last active November 18, 2025 17:17
Show Gist options
  • Select an option

  • Save alexishida/164285ca27d89511ad2f97ffc7e00a63 to your computer and use it in GitHub Desktop.

Select an option

Save alexishida/164285ca27d89511ad2f97ffc7e00a63 to your computer and use it in GitHub Desktop.
Rails Oracle Client 21 Linux
# Version 21.6.0.0.0 (Requires glibc 2.14)
# Instalar a biblioteca (http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.113-5_amd64.deb)
# sudo apt-get install libaio1 libaio-dev unzip
sudo apt-get install libaio1t64
sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1
# Criar a pasta
sudo mkdir /opt/oracle
# Mover para /opt/oracle
instantclient-basic-linux.x64-21.6.0.0.0.zip
instantclient-sdk-linux.x64-21.6.0.0.0.zip
# Extrair para /opt/oracle
unzip instantclient-basic-linux.x64-21.6.0.0.0.zip
unzip instantclient-sdk-linux.x64-21.6.0.0.0.zip
# Criar o link simbolico da lib
cd /opt/oracle/instantclient_21_6
ln -s libclntsh.so.19.1 libclntsh.so
ln -s libocci.so.19.1 libocci.so
# Manter versões legadas
ln -s /opt/oracle/instantclient_21_6 /opt/oracle/instantclient
# Configurando LD
sudo sh -c "echo /opt/oracle/instantclient > /etc/ld.so.conf.d/oracle-instantclient.conf"
sudo ldconfig
# Exporta as variaveis abaixo .bashrc .zshrc:
export LD_LIBRARY_PATH=/opt/oracle/instantclient:$LD_LIBRARY_PATH
export PATH=/opt/oracle/instantclient:$PATH
# Criando o projeto no Rails
rails new projeto -d oracle
# Adiciona no Gemfile
gem 'activerecord-oracle_enhanced-adapter'
gem 'ruby-oci8'
# Instalando as gems
bundle install
# colocar no config/boot.rb
ENV['LD_LIBRARY_PATH'] ||= '/opt/oracle/instantclient'
ENV['NLS_LANG'] = 'BRAZILIAN PORTUGUESE_BRAZIL.AL32UTF8'
# JAVA_HOME (jdk-8u331-linux-x64.tar.gz)
ln -s /opt/oracle/jdk1.8.0_202 /opt/oracle/jdk
export JAVA_HOME="/opt/oracle/jdk"
export PATH="$JAVA_HOME/bin:$PATH"
# Configuração do Number Oracle
# conf/database.yml
nls_numeric_characters: '.,'
# Criar um arquivo config/initializers/oracle.rb e inserir o código
ActiveSupport.on_load(:active_record) do
ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.class_eval do
# true and false will be stored as 'Y' and 'N'
self.emulate_booleans_from_strings = true
# start primary key sequences from 1 (and not 10000) and take just one next value in each session
self.default_sequence_start_value = "1 NOCACHE INCREMENT BY 1"
# Use old visitor for Oracle 12c database
self.use_old_oracle_visitor = false
# other settings ...
# ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter.default_tablespaces =
# {:clob => 'TSLOBS', :blob => 'TSLOBS', :index => 'TSINDEXES', :table => 'TSTABLES'}
end
end
@lucasslemos
Copy link

lucasslemos commented Mar 7, 2025

Instalação do Oracle Instant Client no Ubuntu MATE 24.04

Devido à descontinuação da biblioteca libaio1 na versão 24.04 do Ubuntu MATE, são necessárias adaptações específicas para configurar o Oracle Instant Client corretamente. Siga os passos abaixo:

1. Atualizar os repositórios e instalar dependências

Primeiramente, atualize os repositórios e instale o pacote libaio1t64, que substitui o libaio1, além das ferramentas essenciais de compilação:

sudo apt-get update
sudo apt-get install -y libaio1t64 build-essential

2. Criar o diretório para o Oracle Instant Client

Crie o diretório /opt/oracle para armazenar os arquivos do Oracle Instant Client:

sudo mkdir -p /opt/oracle

3. Extrair os arquivos do Oracle Instant Client

Extraia os arquivos dos pacotes instantclient-basic e instantclient-sdk para o diretório /opt/oracle:

sudo unzip instantclient-basic-linux.x64-21.17.0.0.0dbru.zip -d /opt/oracle/
sudo unzip instantclient-sdk-linux.x64-21.17.0.0.0dbru.zip -d /opt/oracle/

4. Criar links simbólicos necessários

Algumas bibliotecas requerem links simbólicos para serem reconhecidas corretamente. Crie-os com os comandos abaixo:

sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1
cd /opt/oracle/instantclient_21_17
sudo ln -s libclntsh.so.21.1 libclntsh.so

5. Configurar variáveis de ambiente

Adicione as variáveis de ambiente LD_LIBRARY_PATH e PATH ao arquivo ~/.bashrc para que o sistema reconheça o Oracle Instant Client:

echo 'export LD_LIBRARY_PATH=/opt/oracle/instantclient_21_17:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export PATH=/opt/oracle/instantclient_21_17:$PATH' >> ~/.bashrc

Após adicionar as linhas acima, recarregue o ~/.bashrc para aplicar as alterações:

source ~/.bashrc

6. Instalar a gem ruby-oci8

Com as configurações acima, você já pode instalar a gem ruby-oci8:

gem install ruby-oci8

Seguindo esses passos, o Oracle Instant Client estará configurado corretamente no Ubuntu MATE 24.04, permitindo o uso das gems activerecord-oracle_enhanced-adapter e ruby-oci8 em seu ambiente Ruby on Rails.


Este guia detalha os passos necessários para configurar o Oracle Instant Client no Ubuntu MATE 24.04, garantindo a compatibilidade com as gems mencionadas. 

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