Building Minio - linux-on-ibm-z/docs GitHub Wiki

Building Minio

The instructions provided below specify the steps to build Minio version RELEASE.2025-04-08T15-41-24Z and Minio-Client (mc) version RELEASE.2025-04-08T15-39-49Z on Linux on IBM Z for the following distributions:

  • RHEL (8.8, 8.10, 9.2, 9.4, 9.5)
  • SLES 15 SP6
  • Ubuntu (22.04, 24.04, 24.10)

General Notes:

  • When following the steps below please use a standard permission user unless otherwise specified.
  • A directory /<source_root>/ will be referred to in these instructions, this is a temporary writable directory anywhere you'd like to place it.

1. Build using script

If you want to build Minio using manual steps, go to STEP 2.

Use the following commands to build Minio using the build script. Please make sure you have wget installed.

wget -q https://raw.githubusercontent.com/linux-on-ibm-z/scripts/master/minio/2025-04-08T15-41-24Z/build_minio.sh
# Build Minio
bash build_minio.sh  [Provide -t option for executing build with tests]

2. Install dependencies

export SOURCE_ROOT=/<source_root>/
  • RHEL (8.8, 8.10, 9.2, 9.4, 9.5)
   sudo yum install -y git make wget tar gcc curl which diffutils jq
  • SLES 15 SP6
   sudo zypper install -y git make wget tar gcc which curl gawk m4 jq
  • Ubuntu (22.04, 24.04, 24.10)
   sudo apt-get update
   sudo apt-get install -y git make wget tar gcc curl jq
  • Install Go
   export GOPATH=$SOURCE_ROOT
   cd $GOPATH
   GO_VERSION=1.23.4
   wget -q https://storage.googleapis.com/golang/go"${GO_VERSION}".linux-s390x.tar.gz
   chmod ugo+r go"${GO_VERSION}".linux-s390x.tar.gz
   sudo rm -rf /usr/local/go /usr/bin/go
   sudo tar -C /usr/local -xzf go"${GO_VERSION}".linux-s390x.tar.gz
   sudo ln -sf /usr/local/go/bin/go /usr/bin/ 
   sudo ln -sf /usr/local/go/bin/gofmt /usr/bin/
   go version  
   export PATH=$PATH:$GOPATH/bin

3. Download, build and configure Minio

3.1. Download Minio code

   mkdir -p $GOPATH/src/github.com/minio
   cd $GOPATH/src/github.com/minio
   git clone -b RELEASE.2024-12-18T13-15-44Z https://github.com/minio/minio.git

3.2. Build and Install Minio

   cd $GOPATH/src/github.com/minio/minio
   make
   make install

3.3. Run tests (Optional)

   cd $GOPATH/src/github.com/minio/minio
   make test

Notes:

  • Test case failure having panic: test timed out after 10m0s error, passes on rerun with increased timeout as below:
       sed -i 's:go test -v:go test -timeout 20m -v:g' Makefile
  • TestIAMInternalIDPConcurrencyServerSuite test case may fail. It passes on a rerun.

3.4. Start Minio Server

   minio server $SOURCE_ROOT/data

3.5. Access Minio on browser

  • Open http://<ip_address>:9000 in your browser to access Web UI.

4. Download, build and configure Minio-Client (mc)

4.1. Download mc code

   mkdir -p $GOPATH/src/github.com/minio
   cd $GOPATH/src/github.com/minio
   git clone -b RELEASE.2024-11-21T17-21-54Z https://github.com/minio/mc.git

4.2. Build and Install mc

   cd $GOPATH/src/github.com/minio/mc
   make
   make install

4.3. Run tests (Optional)

   # Start MinIO server in the background and store the PID
   minio server data/ > minio.log 2>&1 &
   MINIO_PID=$!
   # Execute tests
   cd $GOPATH/src/github.com/minio/mc
   make test
   # Kill the PID running the MinIO server after test execution
   kill "$MINIO_PID"

4.4. Verification

   cd $GOPATH/src/github.com/minio/mc
   ADM=minioadmin
   minio server $SOURCE_ROOT/data &
   sleep 10
   mc config host add myminio http://127.0.0.1:9000 ${ADM} ${ADM}
   mc admin info myminio
   mc admin service stop myminio

References:

⚠️ **GitHub.com Fallback** ⚠️