Ruby gem: nokogiri
gem install nokogiri -v 1.5.6.rc2 gem 'nokogiri', '~> 1.5.6.rc2' To lock this gem at this specific version, update your Gemfile:
gem 'nokogiri', '1.5.6.rc2' Then run:
bundle install Note: This is an older version. Consider upgrading to the latest version (1.18.10) for the newest features and security fixes.
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 \
libxml2-dev \
libxslt-dev \
zlib-dev
# Note: The following dependencies do not have package lists for alpine:
# - libgumbo (canonical: libgumbo)
# - libiconv (canonical: libiconv)
# - liblzma (canonical: liblzma)
# - libopt (canonical: libopt)
# Install the gem
RUN gem install nokogiri -v 1.5.6.rc2
# Verify installation
RUN ruby -e "require 'nokogiri'; puts 'Successfully loaded nokogiri'"
FROM archlinux:latest
# Install Ruby and build tools
RUN pacman -Sy --noconfirm ruby base-devel
# Install system dependencies
RUN pacman -Sy --noconfirm \
libxml2 \
libxslt \
zlib
# Note: The following dependencies do not have package lists for arch:
# - libgumbo (canonical: libgumbo)
# - libiconv (canonical: libiconv)
# - liblzma (canonical: liblzma)
# - libopt (canonical: libopt)
# Install the gem
RUN gem install nokogiri -v 1.5.6.rc2
# Verify installation
RUN ruby -e "require 'nokogiri'; puts 'Successfully loaded nokogiri'"
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 libxml2-dev libxslt1-dev zlib1g-dev&& \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Note: The following dependencies do not have package lists for debian:
# - libgumbo (canonical: libgumbo)
# - libiconv (canonical: libiconv)
# - liblzma (canonical: liblzma)
# - libopt (canonical: libopt)
# Install the gem
RUN gem install nokogiri -v 1.5.6.rc2
# Verify installation
RUN ruby -e "require 'nokogiri'; puts 'Successfully loaded nokogiri'"
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 \
libxml2-devel \
libxslt-devel \
zlib-ng-compat-devel && \
dnf clean all
# Note: The following dependencies do not have package lists for fedora:
# - libgumbo (canonical: libgumbo)
# - libiconv (canonical: libiconv)
# - liblzma (canonical: liblzma)
# - libopt (canonical: libopt)
# Install the gem
RUN gem install nokogiri -v 1.5.6.rc2
# Verify installation
RUN ruby -e "require 'nokogiri'; puts 'Successfully loaded nokogiri'"
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 libxml2-dev libxslt1-dev zlib1g-dev&& \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Note: The following dependencies do not have package lists for ubuntu:
# - libgumbo (canonical: libgumbo)
# - libiconv (canonical: libiconv)
# - liblzma (canonical: liblzma)
# - libopt (canonical: libopt)
# Install the gem
RUN gem install nokogiri -v 1.5.6.rc2
# Verify installation
RUN ruby -e "require 'nokogiri'; puts 'Successfully loaded nokogiri'"
Deploy with Nixpacks (Railway, Render, etc.)
# nixpacks.toml for nokogiri 1.5.6.rc2 [phases.setup] # System dependencies: aptPkgs = ["libxml2-dev", "libxslt1-dev", "zlib1g-dev"] # Note: The following dependencies do not have package lists for debian: # - libgumbo (canonical: libgumbo) # - libiconv (canonical: libiconv) # - liblzma (canonical: liblzma) # - libopt (canonical: libopt) [phases.install] cmds = ["gem install nokogiri -v 1.5.6.rc2"] [phases.build] cmds = ["ruby -e \"require 'nokogiri'; puts 'Successfully loaded nokogiri'\""]
Save this as nixpacks.toml in your project root.
Deploy with Cloud Native Buildpacks (Heroku, Paketo, etc.)
# package.toml for nokogiri 1.5.6.rc2 # Cloud Native Buildpacks configuration # System dependencies: [[build.env]] name = "BP_APT_PACKAGES" value = "libxml2-dev libxslt1-dev zlib1g-dev" # Note: The following dependencies do not have package lists for debian: # - libgumbo (canonical: libgumbo) # - libiconv (canonical: libiconv) # - liblzma (canonical: liblzma) # - libopt (canonical: libopt) # 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 nokogiri 1.5.6.rc2
# 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 = "nokogiri-1.5.6.rc2";
ruby = rubyVersion;
gemdir = ./.;
};
in
pkgs.mkShell {
buildInputs = [
rubyVersion
pkgs.bundler
pkgs.ruby-nixpkgs
# System dependencies
pkgs.libxml2
pkgs.libxslt
pkgs.zlib
# Note: The following dependencies do not have package lists for nixpkgs:
# - libgumbo (canonical: libgumbo)
# - libiconv (canonical: libiconv)
# - liblzma (canonical: liblzma)
# - libopt (canonical: libopt)
];
shellHook = ''
echo "Ruby environment for nokogiri 1.5.6.rc2"
echo "Use: gem install nokogiri -v 1.5.6.rc2"
'';
}
Save this as shell.nix in your project root, then run nix-shell.
Develop with Devenv for declarative development environments
# devenv.nix for nokogiri 1.5.6.rc2
# Usage: devenv shell
{ pkgs, lib, config, ... }:
{
languages.ruby = {
enable = true;
version = "3.3.0";
};
packages = [
pkgs.libxml2
pkgs.libxslt
pkgs.zlib
# Note: The following dependencies do not have package lists for nixpkgs:
# - libgumbo (canonical: libgumbo)
# - libiconv (canonical: libiconv)
# - liblzma (canonical: liblzma)
# - libopt (canonical: libopt)
];
enterShell = ''
echo "Development environment for nokogiri 1.5.6.rc2"
echo "Use: gem install nokogiri -v 1.5.6.rc2"
'';
}
Save this as devenv.nix in your project root, then run devenv shell.
Develop with Nix Flakes for reproducible development environments
# flake.nix for nokogiri 1.5.6.rc2
# Usage: nix develop
{
description = "Development environment for nokogiri 1.5.6.rc2";
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.libxml2
pkgs.libxslt
pkgs.zlib
# Note: The following dependencies do not have package lists for nixpkgs:
# - libgumbo (canonical: libgumbo)
# - libiconv (canonical: libiconv)
# - liblzma (canonical: liblzma)
# - libopt (canonical: libopt)
];
shellHook = ''
echo "Development environment for nokogiri 1.5.6.rc2"
echo "Use: gem install nokogiri -v 1.5.6.rc2"
'';
};
}
);
}
Save this as flake.nix in your project root, then run nix develop.