Rocky Linux vs. AlmaLinux: A Comparison

The recent discontinuation of CentOS Linux left many users searching for alternative options. Two prominent contenders that have emerged to fill the void are Rocky Linux and AlmaLinux. Both distributions aim to provide a CentOS-compatible Linux experience, but they have different origins and slightly varied approaches. In this article, we’ll compare Rocky Linux and AlmaLinux to help you choose the one that suits your needs.


Rocky Linux

Rocky Linux is the brainchild of Gregory M. Kurtzer, who is also one of the co-founders of the popular CentOS project. After CentOS shifted its focus from being a downstream, binary-compatible rebuild of Red Hat Enterprise Linux (RHEL) to a rolling release called CentOS Stream, Kurtzer started Rocky Linux to provide a community-supported, RHEL-compatible distribution. Rocky Linux’s goal is to be a free and open alternative to RHEL for enterprise environments.


AlmaLinux OS, on the other hand, was created by CloudLinux Inc., a company known for its expertise in web hosting and server security. AlmaLinux OS is positioned as a drop-in replacement for CentOS. It shares the same ancestry as CentOS, striving to provide a seamless transition for CentOS users who were left in the lurch after the changes to CentOS.

Key Points of Comparison

1. Origin and Governance

  • Rocky Linux: Founded by the original co-founder of CentOS, Gregory M. Kurtzer, and governed by the Rocky Enterprise Software Foundation (RESF), which aims to ensure long-term support and stability.
  • AlmaLinux: Developed and maintained by CloudLinux Inc., a company with a strong history in web hosting. The project is managed by the AlmaLinux OS Foundation, which also oversees the governance and development.

2. Compatibility

  • Rocky Linux: Strives to maintain binary compatibility with RHEL and is intended for use in environments that previously relied on CentOS. It follows RHEL’s release schedule.
  • AlmaLinux: Aims to be a drop-in replacement for CentOS, offering the same compatibility and support timeline as CentOS had before its changes.

3. Support and Community

  • Rocky Linux: Built on community-driven principles and welcomes contributions from users and developers. Community support and involvement are crucial to its development and growth.
  • AlmaLinux: Also encourages community participation but has the backing of a commercial entity, CloudLinux Inc., which provides additional resources and support.

4. Release Schedule

  • Rocky Linux: Follows RHEL’s release cycle and aims to release updates and security patches in a timely manner to ensure stability.
  • AlmaLinux: Commits to a predictable release schedule to match CentOS’s lifecycle, which typically includes updates and maintenance for up to 10 years.

5. User Experience

  • Rocky Linux: Aims to provide a clean, minimalistic server environment, with a focus on stability and reliability. Offers both a command-line interface (CLI) and graphical user interface (GUI) for management.
  • AlmaLinux: Strives to provide a seamless experience for CentOS users, with a familiar interface and package ecosystem. Offers a choice of CLI and GUI tools for system administration.

Which One Should You Choose?

The choice between Rocky Linux and AlmaLinux largely depends on your specific needs and preferences:

  • Rocky Linux may be a preferred choice if you appreciate its community-driven approach and its alignment with RHEL’s release schedule. It’s suitable for those looking for a reliable, CentOS-compatible distribution that is independent of any commercial entity.
  • AlmaLinux may be more appealing if you desire a distribution closely mirroring the CentOS experience, with the backing of a well-established company. AlmaLinux aims to provide continuity for CentOS users with minimal disruption.

Ultimately, both Rocky Linux and AlmaLinux are credible options to consider for your server deployments, offering the stability and compatibility required for enterprise-level applications. Your decision should be based on your specific use case, comfort level with the community or commercial backing, and your long-term support requirements.

script file sharing with node js

Creating a basic file-sharing script with Node.js can be accomplished using the built-in http module for creating a web server and the fs module for file manipulation. In this example, we’ll create a simple file-sharing service where users can upload and download files.

Before you begin, make sure you have Node.js installed on your system.

  1. Initialize a Node.js project:

    Create a new directory for your project and run the following command to set up a new Node.js project:

    mkdir file-sharing-app
    cd file-sharing-app
    npm init -y
  2. Install required packages:

    We need the express framework for creating the web server and the multer middleware for handling file uploads.

    npm install express multer
  3. Create your main script (app.js):

    Create a file named app.js and add the following code:

    const express = require('express');
    const multer = require('multer');
    const fs = require('fs');
    const path = require('path');

    const app = express();
    const port = 3000;

    // Set up Multer for handling file uploads
    const storage = multer.diskStorage({
    destination: function (req, file, cb) {
    cb(null, 'uploads/'); // Files will be uploaded to the 'uploads' folder
    filename: function (req, file, cb) {
    const uniqueSuffix = + '-' + Math.round(Math.random() * 1e9);
    cb(null, file.fieldname + '-' + uniqueSuffix + path.extname(file.originalname));

    const upload = multer({ storage: storage });

    // Serve uploaded files
    app.use('/uploads', express.static('uploads'));

    // Handle file uploads'/upload', upload.single('file'), (req, res) => {
    if (!req.file) {
    return res.status(400).send('No files were uploaded.');
    res.send('File uploaded!');

    // Serve an HTML form for uploading files
    app.get('/', (req, res) => {
    fs.readFile('upload-form.html', 'utf8', (err, data) => {
    if (err) {
    return res.status(500).send('Internal Server Error');

    app.listen(port, () => {
    console.log(`Server is listening at http://localhost:${port}`);

  4. Create an HTML file for the upload form (upload-form.html):

    Create a file named upload-form.html in your project directory with the following content:

    <!DOCTYPE html>
    <title>File Upload</title>
    <h1>File Upload</h1>
    <form action="/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="Upload">
  5. Create an “uploads” folder:

    Create a folder named uploads in your project directory. This is where the uploaded files will be stored.

  6. Run your Node.js application:

    Run your Node.js application using the following command:

    node app.js

    Your file-sharing service should now be running at http://localhost:3000.

  7. Access the file upload form:

    Open your web browser and navigate to http://localhost:3000 to access the file upload form. You can use this form to upload files, and they will be stored in the “uploads” folder.

  8. Access uploaded files:

    You can access the uploaded files at http://localhost:3000/uploads/filename. Replace “filename” with the actual name of the uploaded file.

This basic script provides a simple file-sharing service using Node.js and Express. It allows users to upload files, and those files can be accessed and downloaded through URLs. Depending on your requirements, you can enhance this script with additional features such as user authentication, file deletion, or file expiration.

Leave a Reply

Your email address will not be published. Required fields are marked *