Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Morpheus


Overview

morpheus is a universal tool for information gathering and system management on Unix-like operating systems, designed to simplify interactions with UNIX-like operating systems and streamline the development of system-related automation scripts.

Mainline version of morpheus is written in POSIX-compliant shell. Perl version is experimental.


Table of contents


Why?

Because interacting with countless package managers and init systems across UNIX-like platforms is painful — morpheus fixes that.

With morpheus, you:

  1. Don't need to be a Unix maniac who knows every package manager and init system syntax and arguments by heart;

  2. Don't waste time building utilities from scratch — core functions are prebuilt and ready;

  3. Don't write bloated, error-prone scripts — your code stays clean, readable, and portable.

What does it solve?

Managing packages and system services is inconsistent across distros. Whether you're scripting for Arch, Debian, Void, Slackware, Red Hat, or others, morpheus provides a unified interface to abstract those differences.

It gives you:

  1. A standardized way to install, remove, purge, update, upgrade packages (any many more!);

  2. Convenient tools to analyze running processes on the system;

  3. Unified service control (status, start, stop, enable, etc.) across multiple init systems (and many more);

  4. A modular approach to extend support for more tools and distros;

  5. Shell-friendly integration for faster development and cleaner scripts.

Use Cases

  • Write portable installation scripts that “just work” on all Unix-like systems;

  • Build lightweight system provisioning tools in pure shell;

  • Create consistent automation for servers, containers, or virtual machines;

  • Prototype cross-distro sysadmin tools without rewriting core logic.

tum executable consists of 676 lines of pure shell (without empty lines and comments) that makes your code support thousands GNU/Linux, BSD, Minix, Haiku, Android, iOS and macOS distros. That makes morpheus a very small and lightweight dependency in your project.

Your users can install it in one command and forget about morpheus existence for forever, because their cross-platform scripts are working just like intended.

So why not give it a shot?

Requirements

morpheus requires only one dependency - Unix-like operating system.

Installation

git clone https://github.com/Archetypum/Morpheus.git
cd Morpheus/

su  # switch to root
make install

Supported Package Management Utilities (35)

Debian-based:

  • apt, apt-get, aptitude, dpkg

Arch-based:

  • pacman, yay, trizen, pamac

Gentoo-based:

  • portage (open for pull requests)

Slackware-based:

  • slackpkg

Alpine-based:

  • apk

Void-based:

  • xbps-install, xbps-remove, xbps-query

Guix-based:

  • guix

Dragora-based:

  • qi

OpenBSD/NetBSD/FreeBSD-based:

  • pkg_add, pkg_delete, pkg_info

FreeBSD-based:

  • pkg

MINIX/NetBSD-based:

  • pkgin

RedHat-based:

  • yum, dnf

openSUSE-based:

  • zypper

macOS-based:

  • homebrew

Supported Initialization Systems (7)

  • systemd

  • sysvinit

  • openrc

  • runit

  • s6

  • dinit

  • launchd

Example Usage

Information gathering:

#!/usr/bin/env bash

distro=$(morpheus --get-distro)
init=$(morpheus --get-init)

echo "$distro"
echo "$init"

for pid in {1..1000}; do
    morpheus --get-pid-comm "$pid"
done

Package Management:

#!/usr/bin/env bash

manager=$(morpheus --get-package-manager)
morpheus --package-management --manager "$manager" --action install --package gcc

Init Management:

#!/usr/bin/env bash

morpheus --init-management --service sshd --action status

Bugs

morpheus is still unfinished and surely has a lot of bugs. If you found any - feel free to submit an issue or a pull request.

Legal

morpheus licensed under the BSD 2-Clause License.

About

Tool for information gathering and system management on Unix-like operating systems.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages