Ruby gem: pg
gem install pg -v 0.19.1.pre20170115074000 gem 'pg', '~> 0.19.1.pre20170115074000' Gem::Specification.new do |spec|
spec.name = "pg"
spec.version = "0.19.1.pre20170115074000"
spec.authors = ["Michael Granger","Lars Kanis"]
spec.license = "BSD-3-Clause"
spec.summary = "Pg is the Ruby interface to the {PostgreSQL RDBMS}[http://www.postgresql.org/]"
spec.description = "Pg is the Ruby interface to the {PostgreSQL RDBMS}[http://www.postgresql.org/].\n\nIt works with {PostgreSQL 9.1 and later}[http://www.postgresql.org/support/versioning/].\n\nA small example usage:\n\n #!/usr/bin/env ruby\n\n require 'pg'\n\n # Output a table of current connections to the DB\n conn = PG.connect( dbname: 'sales' )\n conn.exec( \"SELECT * FROM pg_stat_activity\" ) do |result|\n puts \" PID | User | Query\"\n result.each do |row|\n puts \" %7d | %-16s | %s \" %\n row.values_at('procpid', 'usename', 'current_query')\n end\n end"
spec.homepage = "https://github.com/ged/ruby-pg"
spec.required_ruby_version = ">= 2.0.0"
spec.required_rubygems_version = "> 1.3.1"
spec.platform = "x64-mingw32"
spec.add_development_dependency "hoe", "~> 3.12"
spec.add_development_dependency "hoe-bundler", "~> 1.0"
spec.add_development_dependency "hoe-deveiate", "~> 0.8"
spec.add_development_dependency "hoe-highline", "~> 0.2"
spec.add_development_dependency "hoe-mercurial", "~> 1.4"
spec.add_development_dependency "rake-compiler", "~> 1.0.3"
spec.add_development_dependency "rake-compiler-dock", "~> 0.6.0"
spec.add_development_dependency "rdoc", "~> 4.0"
spec.add_development_dependency "rspec", "~> 3.0"
end To lock this gem at this specific version, update your Gemfile:
gem 'pg', '0.19.1.pre20170115074000' Then run:
bundle install Note: This is an older version. Consider upgrading to the latest version (1.6.2) for the newest features and security fixes.
Run this to see all installed versions of pg:
gem list pg --exact To check for this exact version and get a true/false exit code (useful in scripts):
gem list pg -i -v 0.19.1.pre20170115074000 Exits 0 if installed, 1 if not.
To remove this specific version:
gem uninstall pg -v 0.19.1.pre20170115074000 To remove all installed versions at once:
gem uninstall pg --all
If another gem depends on this version, RubyGems will warn you. Add --force to bypass the warning, but check nothing still needs it first.
If the gem is already installed, unpack its source into the current directory:
gem unpack pg -v 0.19.1.pre20170115074000 If it is not installed, fetch it first and then unpack the file:
gem fetch pg -v 0.19.1.pre20170115074000
gem unpack pg-0.19.1.pre20170115074000.gem
This creates a pg-0.19.1.pre20170115074000/ directory with the full source tree.
Use gem fetch to download the .gem file to the current directory:
gem fetch pg -v 0.19.1.pre20170115074000 Useful for auditing, offline installs, or mirroring to a private gem server.
If the gem is installed:
gem specification pg -v 0.19.1.pre20170115074000 From a downloaded .gem file:
gem fetch pg -v 0.19.1.pre20170115074000
gem specification pg-0.19.1.pre20170115074000.gem Version 0.19.1.pre20170115074000 requires Ruby >= 2.0.0.
Check your Ruby version with ruby -v.
Development dependencies — only needed when working on the gem itself:
To see the full resolved dependency tree after installation: gem dependency pg -v 0.19.1.pre20170115074000
If the gem provides an executable, use the _version_ wrapper syntax:
pg _0.19.1.pre20170115074000_ [args] In a Bundler project, pin the version in your Gemfile and run via bundle exec:
# Gemfile
gem 'pg', '0.19.1.pre20170115074000' bundle exec ruby your_script.rb FROM alpine:latest
# Install Ruby and build tools
RUN apk add --no-cache ruby ruby-dev build-base
# Install system dependencies
RUN apk add --no-cache \
openssl-dev \
postgresql-client \
postgresql-dev
# Note: The following dependencies do not have package lists for alpine:
# - libruby (canonical: libruby)
# Install the gem
RUN gem install pg -v 0.19.1.pre20170115074000
# Verify installation
RUN ruby -e "require 'pg'; puts 'Successfully loaded pg'"
FROM archlinux:latest
# Install Ruby and build tools
RUN pacman -Sy --noconfirm ruby base-devel
# Install system dependencies
RUN pacman -Sy --noconfirm \
openssl \
postgresql-libs
# Note: The following dependencies do not have package lists for arch:
# - libruby (canonical: libruby)
# Install the gem
RUN gem install pg -v 0.19.1.pre20170115074000
# Verify installation
RUN ruby -e "require 'pg'; puts 'Successfully loaded pg'"
FROM debian:bookworm-slim
# Install Ruby and build tools
RUN apt-get update -qq && apt-get install -y --no-install-recommends ruby ruby-dev build-essential
# Install system dependencies
RUN apt-get update -qq && \
apt-get install -y --no-install-recommends libssl-dev postgresql-client libpq-dev&& \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Note: The following dependencies do not have package lists for debian:
# - libruby (canonical: libruby)
# Install the gem
RUN gem install pg -v 0.19.1.pre20170115074000
# Verify installation
RUN ruby -e "require 'pg'; puts 'Successfully loaded pg'"
FROM fedora:latest
# Install Ruby and build tools
RUN dnf install -y ruby ruby-devel gcc gcc-c++ make
# Install system dependencies
RUN dnf install -y \
openssl-devel \
postgresql \
libpq-devel && \
dnf clean all
# Note: The following dependencies do not have package lists for fedora:
# - libruby (canonical: libruby)
# Install the gem
RUN gem install pg -v 0.19.1.pre20170115074000
# Verify installation
RUN ruby -e "require 'pg'; puts 'Successfully loaded pg'"
FROM ubuntu:24.04
# Install Ruby and build tools
RUN apt-get update -qq && apt-get install -y --no-install-recommends ruby ruby-dev build-essential
# Install system dependencies
RUN apt-get update -qq && \
apt-get install -y --no-install-recommends libssl-dev postgresql-client libpq-dev&& \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Note: The following dependencies do not have package lists for ubuntu:
# - libruby (canonical: libruby)
# Install the gem
RUN gem install pg -v 0.19.1.pre20170115074000
# Verify installation
RUN ruby -e "require 'pg'; puts 'Successfully loaded pg'"
Deploy with Nixpacks (Railway, Render, etc.)
# nixpacks.toml for pg 0.19.1.pre20170115074000 [phases.setup] # System dependencies: aptPkgs = ["libssl-dev", "postgresql-client", "libpq-dev"] # Note: The following dependencies do not have package lists for debian: # - libruby (canonical: libruby) [phases.install] cmds = ["gem install pg -v 0.19.1.pre20170115074000"] [phases.build] cmds = ["ruby -e \"require 'pg'; puts 'Successfully loaded pg'\""]
Save this as nixpacks.toml in your project root.
Deploy with Cloud Native Buildpacks (Heroku, Paketo, etc.)
# package.toml for pg 0.19.1.pre20170115074000 # Cloud Native Buildpacks configuration # System dependencies: [[build.env]] name = "BP_APT_PACKAGES" value = "libssl-dev postgresql-client libpq-dev" # Note: The following dependencies do not have package lists for debian: # - libruby (canonical: libruby) # Gem installation will be handled by the Ruby buildpack # which automatically installs gems from Gemfile or bundler
Save this as package.toml in your project root.
Develop with Nix using ruby-nixpkgs
# shell.nix for pg 0.19.1.pre20170115074000
# Usage: nix-shell
# Uses ruby-nixpkgs for gem management
{ pkgs ? import <nixpkgs> {} }:
let
rubyVersion = pkgs.ruby_3_3;
# Ruby environment with ruby-nixpkgs
rubyEnv = pkgs.bundlerEnv {
name = "pg-0.19.1.pre20170115074000";
ruby = rubyVersion;
gemdir = ./.;
};
in
pkgs.mkShell {
buildInputs = [
rubyVersion
pkgs.bundler
pkgs.ruby-nixpkgs
# System dependencies
pkgs.postgresql
# Note: The following dependencies do not have package lists for nixpkgs:
# - libruby (canonical: libruby)
# - openssl (canonical: openssl)
];
shellHook = ''
echo "Ruby environment for pg 0.19.1.pre20170115074000"
echo "Use: gem install pg -v 0.19.1.pre20170115074000"
'';
}
Save this as shell.nix in your project root, then run nix-shell.
Develop with Devenv for declarative development environments
# devenv.nix for pg 0.19.1.pre20170115074000
# Usage: devenv shell
{ pkgs, lib, config, ... }:
{
languages.ruby = {
enable = true;
version = "3.3.0";
};
packages = [
pkgs.postgresql
# Note: The following dependencies do not have package lists for nixpkgs:
# - libruby (canonical: libruby)
# - openssl (canonical: openssl)
];
enterShell = ''
echo "Development environment for pg 0.19.1.pre20170115074000"
echo "Use: gem install pg -v 0.19.1.pre20170115074000"
'';
}
Save this as devenv.nix in your project root, then run devenv shell.
Develop with Nix Flakes for reproducible development environments
# flake.nix for pg 0.19.1.pre20170115074000
# Usage: nix develop
{
description = "Development environment for pg 0.19.1.pre20170115074000";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
rubyVersion = pkgs.ruby_3_3;
in
{
devShells.default = pkgs.mkShell {
buildInputs = [
rubyVersion
pkgs.bundler
# System dependencies
pkgs.postgresql
# Note: The following dependencies do not have package lists for nixpkgs:
# - libruby (canonical: libruby)
# - openssl (canonical: openssl)
];
shellHook = ''
echo "Development environment for pg 0.19.1.pre20170115074000"
echo "Use: gem install pg -v 0.19.1.pre20170115074000"
'';
};
}
);
}
Save this as flake.nix in your project root, then run nix develop.