I’m excited to share the availability of two powerful, community-driven scripts designed to simplify and scale your Oracle Linux adoption journey:

  • 🔄 migrate-to-oracle-linux.sh — seamlessly migrate existing Enterprise Linux systems to Oracle Linux
  • 🪞 mirror-oracle-linux-yum.sh — build and serve a fully functional local Oracle Linux yum mirror

Together, these tools form a complete, production-ready workflow for organizations looking to standardize on Oracle Linux—whether at small scale or across large fleets.


🧭 A Complete Migration Workflow

The project delivers a clear separation of responsibilities:

  • The mirror script prepares and hosts Oracle Linux repositories
  • The migration script transforms target systems safely and predictably

This modular approach enables everything from direct internet migrations to air-gapped, enterprise-scale deployments.


⚙️ Why These Scripts Matter

🔄 Reliable, Repeatable Migrations

The migration script isn’t just a package swap—it’s a carefully orchestrated system transformation:

  • Validates source OS, architecture, and compatibility before execution
  • Replaces distribution packages and synchronizes RPMs to Oracle Linux equivalents
  • Handles edge cases (Amazon Linux 2, CentOS Stream, RHEL variants)
  • Produces detailed HTML and TSV reports for auditability and compliance
  • Supports kernel selection (UEK or RHCK where applicable)

This helps ensure migrations are predictable, transparent, and reversible with proper safeguards.


🪞 Enterprise-Grade Local Mirrors

For organizations operating at scale—or in restricted environments—the mirror script delivers:

  • Full Oracle Linux repository mirroring across Oracle Linux 7 to Oracle Linux 10
  • Support for both x86_64 and aarch64 architectures
  • Efficient syncing using reposync with metadata preservation and newest-only packages
  • Built-in HTTPS serving via Apache, including TLS setup
  • Parallelized downloads for performance and scalability

The result: a high-performance, internally controlled software supply chain that reduces external dependencies and improves reliability.


🚀 Built for Real-World Operations

These tools reflect practical operational needs:

  • 🧪 Dry-run modes for safe planning and validation
  • 🌐 Support for proxies and private mirrors
  • 📊 Rich reporting for governance and troubleshooting
  • 🔐 Maintains RPM signature verification even with custom mirrors
  • 🧹 Handles removal of vendor-specific or unsupported packages cleanly

Whether you’re migrating a handful of servers or thousands, the workflow is designed to scale with confidence.


🤝 Community-Driven Engineering

This project is more than just scripts—it’s a collaborative effort shaped by real user needs:

  • Built with input from practitioners managing heterogeneous Linux environments
  • Designed to handle the messy realities of enterprise systems
  • Focused on transparency, debuggability, and operational clarity

From curated repository sets to nuanced package replacement logic, the details reflect deep community experience and iteration.


🧩 Putting It All Together

A typical workflow looks like this:

  1. 🪞 Build your local Oracle Linux mirror
  2. 📄 Capture the generated mirror URL
  3. 🎯 Run the migration script across your fleet using that mirror

Or, if connectivity allows, skip the mirror and migrate directly from Oracle’s public repositories.


📣 Get Started

These scripts are available now and ready to use in your environments. Whether you’re modernizing infrastructure, consolidating distributions, or standardizing on Oracle Linux, this toolkit gives you a robust, flexible foundation to do it right.

# git clone https://github.com/oracle/migrate-to-ol


💬 We welcome feedback, contributions, and real-world experiences—this is a project built with and for the community.