-
Notifications
You must be signed in to change notification settings - Fork 11
Home
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.
Several core elements are common to most installations, chief among them:
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.
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::CmeThis tool consists of a single Perl script capable of installing/updating/removing most CPAN modules using only Perl itself and the
tarcompression utility.
If you already have both of those (andcurl) 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
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
-
Using APT:
[sudo] apt -y install cmeSee also: Other Config-Model extension packages packaged for Debian, packaged for Trisquel and packaged for Ubuntu
- Using DNF:
dnf install perl-Config-Model - Using YUM:
yum install perl-Config-Model
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.
- Applications supported by Config-Model (
cme):-
Debian packaging files (
debian/control,debian/copyright, etc.) - LCDproc
- OpenSSH
- systemd
-
Debian packaging files (
- Getting started:
- Downloading Config-Model
- Using
cmeto view or edit configuration files - Creating models: Add full support for new configuration files
- Real world examples of Config-Model in use
- Créer un éditeur graphique de configuration avec Perl (1ère partie) "Creating a graphical configuration editor using Perl's Config::Model module, Part 1" – printed in GNU/Linux Magazine No. 117, June 2009 (in French)
- Créer un éditeur graphique de configuration avec Perl (2e partie) "Creating a graphical configuration editor using Perl's Config::Model module, Part 2" – printed in GNU/Linux Magazine No. 120, October 2009 (in French)
- Maintenance
- Advanced usage
- Project details:
- Reference documents:
- FOSDEM 2011 talks about Config-Model by the developer
-
CPAN
The Comprehensive Perl Archive Network, a repository that freely distributes all 225,054 published Perl modules (count as of December 2025); see also their Getting started page.
- Author: Dominique Dumont (ddumont@cpan.org, domi.dumont@free.fr or dod@debian.org)
- Source Code Repository: dod38fr / config-model, publicly available on GitHub