Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Peter J. Mello edited this page Dec 7, 2025 · 3 revisions

Config-Model and cme

Config-Model is a tool that assists users in understanding and maintaining the configuration files for a variety of computer software and services. This is done by removing the need to understand the file's syntax (how the information is stored) so the focus can be on working with the information inside it. By creating a simple, intuitive and consistent design for presenting software settings, casual and non-technical users are able to examine/modify their software's configuration and access its full potential without the hassle of ensuring that everything gets recorded in the expected format.

This project has been in development since 2005 and is implemented chiefly in Perl (plus some Tcl/Tk and a few other languages here and there, for flavor) with a highly modular architecture. Those choices were made for several reasons to benefit multiple audiences:

  • For end users: So that they only need to install the components required for the interface(s) and specific app/system configurations they're interested in, keeping the on-system footprint small. Once they're in place, the application can be launched at will from the native application launcher or terminal.
  • For developers: To make it easy to create extensions that allow the tool to work with their own projects without having to create something from scratch or rely on us to have sufficient resources to do so ourselves.

Table of Contents

  1. Basic structure
    1. cme
    2. Config-Model
  2. Installation
    1. Directly from CPAN (on any OS)
    2. GNU/Linux
      1. DEB-based (Debian / PureOS / Trisquel / Ubuntu)
      2. RPM-based (Fedora / Mageia)
  3. Project objectives
  4. Documentation index
  5. Glossary
  6. Points of Contact

Basic structure

Several core elements are common to most installations, chief among them:

cme

This is the main entry point (command) used to launch Config-Model from the terminal, provided by the App-Cme module on CPAN (official documentation); additional guidance is available in this wiki on the [Using cme](Using cme) page.

A Perl module containing the core framework, responsible for connecting the extension modules that targets specific applications or systems with one of the available Config-Model interfaces.

Installation

Directly from CPAN (on any OS)

CPAN packageMetaCPAN package page

Note

Elevated privileges may be required on some systems, i.e. sudo on GNU/Linux, Administrator (Admin) rights on Windows, etc.

The project can be installed on almost any system that has a working Perl interpreter installed by way of any of the popular tools for installing Perl modules directly from CPAN, Perl's native module repository, namely:

  • CPAN (the default installer)

    perl -MCPAN -e 'install App::Cme'

  • cpanminus (a simpler alternative)

    cpanm -v App::Cme

      This tool consists of a single Perl script capable of installing/updating/removing most CPAN modules using only Perl itself and the tar compression utility.
      If you already have both of those (and curl) installed and want to use cpanminus, adding it to your system is as simple as executing this terminal one-liner: curl -L https://cpanmin.us | perl - --sudo App::cpanminus

  • CPANPLUS (an older, more powerful option)

    cpanp -i --verbose App::Cme

GNU/Linux

DEB-based (Debian / PureOS / Trisquel / Ubuntu)

Debian 11 ("Bullseye" / "oldoldstable") packageDebian 12 ("Bookworm" / "oldstable") packageDebian 13 ("Trixie" / "stable") packageDebian 14 ("Forky" / "testing") package

PureOS "Amber" packagePureOS "Byzantium" packagePureOS "Landing" packageTrisquel 10.0 "Nabia" packageTrisquel 11.0 "Aramo" package

Ubuntu 14.04 LTS "The Trusty Tahr" packageUbuntu 16.04 LTS "The Xenial Xerus" packageUbuntu 18.04 LTS "The Bionic Beaver" packageUbuntu 20.04 LTS "The Focal Fossa" packageUbuntu 22.04 LTS "The Jammy Jellyfish" packageUbuntu 24.04 LTS "The Noble Numbat" packageUbuntu 25.04 "The Plucky Puffin" packageUbuntu 25.10 "The Questing Quokka" packageUbuntu 26.04 LTS "The Resolute Raccoon" package

The core functionality of Config-Model can be installed on these operating systems with just the cme packages, which declares dependencies on the other core packages and will install them as well if not already present. The names of other packages related to Config-Model in the Debian/Ubuntu package archives with the most reported installations are:
libconfig-model-approx-perl, libconfig-model-cursesui-perl, libconfig-model-dpkg-perl, libconfig-model-lcdproc-perl, libconfig-model-openssh-perl, libconfig-model-perl, libconfig-model-systemd-perl and libconfig-model-tkui-perl

RPM-based (Fedora / Mageia)

Fedora 37 packageFedora 38 packageFedora 39 packageFedora 40 packageFedora 41 packageFedora 42 packageFedora 43 package

Mageia 8 packageMageia 9 packageMageia "Cauldron" package

  • Using DNF: dnf install perl-Config-Model
  • Using YUM: yum install perl-Config-Model

Project objectives

Main page: Objectives and Properties

  • Provide non-technical users an easy way to learn and manage the configuration of their application with less confusion and potential for mistakes.
  • Provide an automated way for users to quickly migrate their existing configurations after upgrades or when file formats change.
  • Create a user-friendly tool with sufficient flexibility to be used to manage other kinds of structured data that can be stored as plain text and is valuable to users (i.e. unrelated to software settings), without requiring them to use a text editor.
  • Provide developers a framework to record the full range of configurable options and their acceptable values in a way that helps users to understand them and minimize the work required to do so. This can be done to enrich existing documentation or in lieu of it, when Config-Model is integrated as the project's configuration interface. This is done with the hope that it will prompt developers to carefully consider how they implement and structure their configuration systems, especially when changes are made in regard to file formats and/or locations.

Documentation index

Glossary

Points of Contact

Clone this wiki locally