update: small wiki fixes and minor tweaks
This commit is contained in:
6
wiki/tools/confer.json
Normal file
6
wiki/tools/confer.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"id": "confer",
|
||||
"title": "Working with confer",
|
||||
"author": "ngn",
|
||||
"date": "14/08/24"
|
||||
}
|
83
wiki/tools/confer.md
Normal file
83
wiki/tools/confer.md
Normal file
@ -0,0 +1,83 @@
|
||||
On this page you will learn how you can use MatterLinux configuration manager.
|
||||
|
||||
# MatterLinux configuration manager
|
||||
`confer` is a simple program that allows you to easily install and package your configurations, also
|
||||
known as "dotfiles".
|
||||
|
||||
### Installation
|
||||
`confer` can be installed with the [package manager](/wiki/matt), it's located in the [`desktop
|
||||
pool](/wiki/pools):
|
||||
```
|
||||
# matt install --yes confer
|
||||
```
|
||||
In order to run `confer` as a non-root user, you will need to [install and configure `doas` or `sudo`](/wiki/post_install).
|
||||
|
||||
### Packaging your configuration
|
||||
First of all you should create and empty git repository:
|
||||
```
|
||||
$ mkdir my-config && cd my-config
|
||||
$ git init
|
||||
```
|
||||
After adding a readme and a license (or any other files you might like), create an
|
||||
`confer.ini` file. This file should follow the simple `INI` syntax. First section you should
|
||||
create in this file, is the details section:
|
||||
```
|
||||
[details]
|
||||
name = my-config
|
||||
desc = My very cool configuration
|
||||
author = me
|
||||
keywords = cool,bright,rofi
|
||||
```
|
||||
- `name`: Name of your configuration
|
||||
- `desc`: A short description (less then 200 chars)
|
||||
- `author`: Author of the configuration
|
||||
- `keywords`: A comma-separated list of keywords for your configuration
|
||||
|
||||
The next sections you will add should contain individual configuration files
|
||||
different programs. These sections are called "targets":
|
||||
```
|
||||
[rofi]
|
||||
require = rofi
|
||||
desc = rofi launcher configuration
|
||||
dst = .config/rofi/config.rasi
|
||||
src = src/rofi/config.rasi
|
||||
```
|
||||
- **Section name**: is the name of the target, it should explain what the target is
|
||||
for (in this case the target is for `rofi` configuration, so its named `rofi`)
|
||||
- `require`: A comma-separated list of packages that this configuration requires
|
||||
- `desc`: A simple description explaining what the target is for
|
||||
- `dst`: Where should the configuration should be copied during the installation, `confer` will
|
||||
append the current user's home directory to this path
|
||||
- `src`: Where should the configuration should be copied during the packaging, this path is relative to
|
||||
the repository's path
|
||||
|
||||
After adding all the targets, run the `gen` command, specifying the local path to the git repository
|
||||
that contain the `confer.ini` file:
|
||||
```
|
||||
$ confer gen /path/to/your/repository
|
||||
```
|
||||
`confer` will copy all the target files/directories from the `dst` to the
|
||||
`src`. When you are done, feel free to publish the git repository and share it.
|
||||
|
||||
### Installing configurations
|
||||
To install a configuration you need to use the `pull` command. After the command,
|
||||
specify a directory, a HTTP(S) git URL, or just specify a name:
|
||||
```
|
||||
$ confer pull messier87
|
||||
```
|
||||
If you just specify a name, `confer` will look for that configuration in the [config hub](/hub).
|
||||
In this case, `confer` will pull down the `messier87` configuration, and walk you through the installation
|
||||
by asking yes/no questions.
|
||||
|
||||
After the installation `confer` will install all the requirements using `matt`, and you will be ready to go!
|
||||
|
||||
> **Important**
|
||||
>
|
||||
> Please check the `confer.ini` file before installing third party configuration packages
|
||||
> (packages that are not in the config hub), as they may include malicious configuration files
|
||||
> that may harm your system.
|
||||
|
||||
### Config Hub
|
||||
MatterLinux offers a simple [configuration hub](/hub), that you can use to find official configuration packages.
|
||||
You can also add your own configuration to the config hub, just create a issue or a pull request in the
|
||||
[website content git repository](https://git.matterlinux.xyz/Matter/content/issues).
|
6
wiki/tools/libmp.json
Normal file
6
wiki/tools/libmp.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"id": "libmp",
|
||||
"title": "Working with libmp",
|
||||
"author": "ngn",
|
||||
"date": "14/08/24"
|
||||
}
|
1
wiki/tools/libmp.md
Normal file
1
wiki/tools/libmp.md
Normal file
@ -0,0 +1 @@
|
||||
This page is currently under development.
|
6
wiki/tools/matt.json
Normal file
6
wiki/tools/matt.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"id": "matt",
|
||||
"title": "Working with matt",
|
||||
"author": "ngn",
|
||||
"date": "14/08/24"
|
||||
}
|
143
wiki/tools/matt.md
Normal file
143
wiki/tools/matt.md
Normal file
@ -0,0 +1,143 @@
|
||||
Package management is the process of installing, updating and removing software, tools and libraries.
|
||||
On GNU/Linux systems, package management is usually done with a package manager.
|
||||
|
||||
# MatterLinux Package Manager
|
||||
In a Matter system, package management is generally done with the MatterLinux Package Manager (`matt`).
|
||||
`matt` lets you install, remove, update and search different MatterLinux packages across different [pools](/wiki/pools).
|
||||
|
||||
### Installation
|
||||
`matt` should be already installed on a MatterLinux system. However if you want to install `matt` from
|
||||
the source, then you should follow [this section](https://git.matterlinux.xyz/matter/matt#installation)
|
||||
from the README.
|
||||
|
||||
> **Note**
|
||||
>
|
||||
> You should run all the `matt` and related commands as the root user.
|
||||
|
||||
### Configuration
|
||||
Configuration file for `matt` can be found at `/etc/matt/config.ini`. This file is used specify pools and
|
||||
configure general settings.
|
||||
|
||||
Here is the configuration shipped with the MatterLinux 24 releases:
|
||||
```
|
||||
# configuration file for matt, please see the wiki page for more information
|
||||
# https://matterlinux.xyz/wiki/matt
|
||||
|
||||
tmpdir = /var/lib/matt/temp
|
||||
datadir = /var/lib/matt/data
|
||||
|
||||
[base]
|
||||
url = mptp://stable.matterlinux.xyz/base
|
||||
# url = mptp://next.matterlinux.xyz/base
|
||||
|
||||
[desktop]
|
||||
url = mptp://stable.matterlinux.xyz/desktop
|
||||
# url = mptp://next.matterlinux.xyz/base
|
||||
|
||||
# [server]
|
||||
# url = mptp://stable.matterlinux.xyz/server
|
||||
# url = mptp://next.matterlinux.xyz/server
|
||||
```
|
||||
Lets start by breaking down the first section:
|
||||
|
||||
- `tmpdir (path)`: Temporary storage directory. Used for extracting temporary files and usually
|
||||
this directory will be cleaned after an operation.
|
||||
|
||||
- `datadir (path)`: Persistent storage directory. Used for storing package databases and pool
|
||||
information.
|
||||
|
||||
Next sections specify the pools. Section name is the pool name, and it **should match with the
|
||||
actual pool name**. Pool options are:
|
||||
|
||||
- `url (URL)`: Pool URL, only `mptp` protocol is supported.
|
||||
- `signing (yes/no)`: Enable/disable PGP signature verification for the pool, by default it's enabled.
|
||||
|
||||
> **Important**
|
||||
>
|
||||
> Do NOT disable signature verification if you don't know what are you doing! There is no
|
||||
> way to confirm the legitimacy of the packages without signature verification!
|
||||
|
||||
### Options
|
||||
`matt` also has a few other options that you specify as an arguments/parameters. You can list these
|
||||
options using the `--help` option:
|
||||
```
|
||||
# matt --help
|
||||
```
|
||||
You can also list options for specific commands, for example:
|
||||
```
|
||||
# matt info --help
|
||||
# matt list --help
|
||||
```
|
||||
|
||||
### Syncing pools
|
||||
To sync remote pool information and package lists, you can use the `sync` command:
|
||||
```
|
||||
# matt sync
|
||||
```
|
||||
After syncing remote pools, `matt` will provide public keys for the available pools.
|
||||
You can add these keys to your keyring with `gpg`:
|
||||
```
|
||||
# gpg --receive-keys [fingerprint]
|
||||
```
|
||||
|
||||
### Installing packages
|
||||
To install a package, you can use the `install` command:
|
||||
```
|
||||
# matt install which
|
||||
```
|
||||
After running this command `matt` will attempt to find, download and verify the `which`
|
||||
package, and then install it.
|
||||
|
||||
You can also install packages from local archives:
|
||||
```
|
||||
# matt install which_2.21.mpf
|
||||
```
|
||||
And you can install multiple packages at once:
|
||||
```
|
||||
# matt install grub systemd linux
|
||||
```
|
||||
|
||||
### Removing/Uninstalling packages
|
||||
To remove an installed package, you can use the `remove` command:
|
||||
```
|
||||
# matt remove which
|
||||
```
|
||||
You can also remove multiple packages:
|
||||
```
|
||||
# mp-remove git curl
|
||||
```
|
||||
|
||||
### Updating packages
|
||||
You can update all of the installed packages using the `update` command:
|
||||
```
|
||||
# matt update
|
||||
```
|
||||
|
||||
### Querying packages
|
||||
You can get more information about a package by querying it. For example to get
|
||||
more information about the `which` package:
|
||||
```
|
||||
# matt info which
|
||||
```
|
||||
This will provide the following information about the package:
|
||||
|
||||
- Name of the package
|
||||
- Version
|
||||
- Description
|
||||
- Size
|
||||
- Dependencies
|
||||
- If the package is installed
|
||||
- If the package is up-to-date
|
||||
|
||||
### List packages
|
||||
You can list all the installed packages with the `list` command:
|
||||
```
|
||||
# matt list
|
||||
```
|
||||
|
||||
# Other package managers
|
||||
It's a really bad idea to use multiple package managers as they may conflict and may result in an
|
||||
unstable system. However package managers such as `flatpak` and `snap` offer containerized packages,
|
||||
making them possible to use with other package managers. However currently none of these package
|
||||
managers are available in the official pools. If you want to use them, you will need to install them
|
||||
from the source.
|
Reference in New Issue
Block a user