first commit
This commit is contained in:
commit
1018867e92
7 files changed
+1374
No files matched your search
@@ -0,0 +1,73 @@
|
||||
# Docker depuis SlackBuilds.org
|
||||
|
||||
> Nécessite `sbopkg`.
|
||||
|
||||
Commencez par générer la queue des dépendances :
|
||||
|
||||
```sh
|
||||
# sqg -p docker-cli
|
||||
```
|
||||
|
||||
`docker-cli` dépend de `docker`. La queue ajoutera aussi ses dépendances, notamment `tini`, `containerd` et `runc`.
|
||||
|
||||
Lancez ensuite :
|
||||
|
||||
```sh
|
||||
# sbopkg -i docker-cli
|
||||
```
|
||||
|
||||
Si `sbopkg` trouve à la fois le paquet et une queue du même nom, choisissez **Q** pour utiliser la queue et installer les dépendances dans le bon ordre.
|
||||
|
||||
Pour utiliser Docker sans passer directement par le compte `root`, créez le groupe recommandé par le SlackBuild et ajoutez-y votre utilisateur :
|
||||
|
||||
```sh
|
||||
# groupadd -r -g 281 docker
|
||||
# usermod -a -G docker <utilisateur>
|
||||
```
|
||||
|
||||
> **Important :** l'appartenance au groupe `docker` donne en pratique des privilèges équivalents à ceux de `root` sur la machine.
|
||||
|
||||
Rendez ensuite le service exécutable et démarrez-le :
|
||||
|
||||
```sh
|
||||
# chmod +x /etc/rc.d/rc.docker
|
||||
# /etc/rc.d/rc.docker start
|
||||
```
|
||||
|
||||
Déconnectez-vous puis reconnectez-vous avant de tester :
|
||||
|
||||
```sh
|
||||
$ docker run hello-world
|
||||
```
|
||||
|
||||
Pour démarrer Docker automatiquement avec le système, ajoutez dans `/etc/rc.d/rc.local` :
|
||||
|
||||
```sh
|
||||
# Docker
|
||||
if [ -x /etc/rc.d/rc.docker ]; then
|
||||
/etc/rc.d/rc.docker start
|
||||
fi
|
||||
```
|
||||
|
||||
Éditez ensuite `/etc/rc.d/rc.local_shutdown` ; le fichier sera créé s'il n'existe pas :
|
||||
|
||||
```sh
|
||||
# nvi /etc/rc.d/rc.local_shutdown
|
||||
```
|
||||
|
||||
Puis ajoutez :
|
||||
|
||||
```sh
|
||||
# Docker
|
||||
if [ -x /etc/rc.d/rc.docker ]; then
|
||||
/etc/rc.d/rc.docker stop
|
||||
fi
|
||||
```
|
||||
|
||||
Enfin, rendez le script exécutable :
|
||||
|
||||
```sh
|
||||
# chmod +x /etc/rc.d/rc.local_shutdown
|
||||
```
|
||||
|
||||
[Retour au guide principal](../README.md)
|
||||
+435
@@ -0,0 +1,435 @@
|
||||
# Neovim pour Ruby depuis SlackBuilds.org
|
||||
|
||||
> Nécessite `sbopkg`.
|
||||
|
||||
Neovim est un éditeur de texte modal dérivé de Vim. La configuration ci-dessous reste volontairement simple : Telescope est utilisé pour naviguer entre les fichiers et les buffers, `ripgrep` pour rechercher dans le projet, Grug Far pour rechercher et remplacer dans plusieurs fichiers, `nvim-autopairs` pour fermer automatiquement les paires, et le client LSP intégré de Neovim pour Ruby, la complétion et les signatures de méthodes.
|
||||
|
||||
## Installation
|
||||
|
||||
Neovim est disponible sur SlackBuilds.org. Générez la queue des dépendances :
|
||||
|
||||
```sh
|
||||
# sqg -p neovim
|
||||
```
|
||||
|
||||
Puis lancez l'installation :
|
||||
|
||||
```sh
|
||||
# sbopkg -i neovim
|
||||
```
|
||||
|
||||
Si `sbopkg` trouve à la fois le paquet et une queue du même nom, choisissez **Q** pour utiliser la queue et installer les dépendances dans le bon ordre.
|
||||
|
||||
Installez également `ripgrep`, utilisé par Telescope pour rechercher dans le projet :
|
||||
|
||||
```sh
|
||||
# sqg -p ripgrep
|
||||
# sbopkg -i ripgrep
|
||||
```
|
||||
|
||||
Sous Wayland, installez `wl-clipboard` pour permettre à Neovim d'utiliser le presse-papiers système :
|
||||
|
||||
```sh
|
||||
# sbopkg -i wl-clipboard
|
||||
```
|
||||
|
||||
Pour un affichage homogène des symboles, vous pouvez également installer JetBrains Mono Nerd Font :
|
||||
|
||||
```sh
|
||||
# sbopkg -i ttf-nerd-fonts-jetbrains-mono
|
||||
```
|
||||
|
||||
La variante **JetBrainsMono Nerd Font Mono** est adaptée à l'affichage dans un terminal.
|
||||
|
||||
Vérifiez ensuite les installations :
|
||||
|
||||
```sh
|
||||
$ nvim --version
|
||||
$ rg --version
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Créez le dossier de configuration :
|
||||
|
||||
```sh
|
||||
$ mkdir -p ~/.config/nvim
|
||||
```
|
||||
|
||||
Créez ou éditez `~/.config/nvim/init.lua` :
|
||||
|
||||
```sh
|
||||
$ nvi ~/.config/nvim/init.lua
|
||||
```
|
||||
|
||||
Utilisez cette configuration :
|
||||
|
||||
```lua
|
||||
-- Telescope remplace Netrw.
|
||||
vim.g.loaded_netrw = 1
|
||||
vim.g.loaded_netrwPlugin = 1
|
||||
|
||||
-- Leader
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = ","
|
||||
|
||||
-- Affichage
|
||||
vim.opt.number = true
|
||||
vim.opt.signcolumn = "yes"
|
||||
vim.opt.cursorline = true
|
||||
vim.opt.splitkeep = "screen"
|
||||
vim.opt.splitright = true
|
||||
vim.opt.splitbelow = true
|
||||
vim.opt.shortmess:append("I")
|
||||
vim.opt.winborder = "rounded"
|
||||
vim.cmd.colorscheme("retrobox")
|
||||
|
||||
-- Apparence homogène des menus et fenêtres flottantes.
|
||||
vim.api.nvim_set_hl(0, "NormalFloat", { link = "Pmenu" })
|
||||
vim.api.nvim_set_hl(0, "FloatBorder", { link = "PmenuBorder" })
|
||||
vim.api.nvim_set_hl(0, "TelescopeNormal", { link = "Pmenu" })
|
||||
vim.api.nvim_set_hl(0, "TelescopeBorder", { link = "PmenuBorder" })
|
||||
vim.api.nvim_set_hl(0, "TelescopeSelection", { link = "PmenuSel" })
|
||||
|
||||
-- Indentation
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.shiftwidth = 2
|
||||
vim.opt.tabstop = 2
|
||||
|
||||
-- Presse-papiers système
|
||||
vim.opt.clipboard = "unnamedplus"
|
||||
|
||||
-- Autocomplétion de la ligne de commande
|
||||
vim.opt.wildmode = "noselect:lastused,full"
|
||||
|
||||
vim.api.nvim_create_autocmd("CmdlineChanged", {
|
||||
pattern = { ":", "/", "?" },
|
||||
callback = function()
|
||||
vim.fn.wildtrigger()
|
||||
end,
|
||||
})
|
||||
|
||||
-- Plugins
|
||||
vim.pack.add({
|
||||
"https://github.com/nvim-lua/plenary.nvim",
|
||||
"https://github.com/MagicDuck/grug-far.nvim",
|
||||
"https://github.com/windwp/nvim-autopairs",
|
||||
{
|
||||
src = "https://github.com/nvim-telescope/telescope.nvim",
|
||||
version = "v0.2.1",
|
||||
},
|
||||
})
|
||||
|
||||
-- Auto-fermeture des paires
|
||||
local npairs = require("nvim-autopairs")
|
||||
|
||||
npairs.setup({
|
||||
map_cr = false,
|
||||
})
|
||||
|
||||
-- Telescope
|
||||
local builtin = require("telescope.builtin")
|
||||
|
||||
require("telescope").setup({
|
||||
defaults = {
|
||||
preview = false,
|
||||
},
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<Leader>f", builtin.find_files, {
|
||||
desc = "Files",
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<Leader>b", builtin.buffers, {
|
||||
desc = "Buffers",
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<Leader>g", builtin.live_grep, {
|
||||
desc = "Grep",
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<Leader>w", builtin.grep_string, {
|
||||
desc = "Word",
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<Leader>l", builtin.resume, {
|
||||
desc = "Last search",
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<Leader>d", builtin.diagnostics, {
|
||||
desc = "Diagnostics",
|
||||
})
|
||||
|
||||
-- Grug Far
|
||||
vim.keymap.set({ "n", "x" }, "<Leader>r", function()
|
||||
require("grug-far").open()
|
||||
end, {
|
||||
desc = "Replace",
|
||||
})
|
||||
|
||||
-- Ouvre Telescope au démarrage sauf si un fichier est explicitement ouvert.
|
||||
vim.api.nvim_create_autocmd("VimEnter", {
|
||||
once = true,
|
||||
callback = function()
|
||||
local argc = vim.fn.argc()
|
||||
|
||||
if argc == 1 and vim.fn.isdirectory(vim.fn.argv(0)) == 1 then
|
||||
vim.api.nvim_set_current_dir(vim.fn.fnamemodify(vim.fn.argv(0), ":p"))
|
||||
vim.cmd.enew()
|
||||
elseif argc > 0 then
|
||||
return
|
||||
end
|
||||
|
||||
builtin.find_files()
|
||||
end,
|
||||
})
|
||||
|
||||
-- Ruby LSP
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
|
||||
-- Active la surveillance des fichiers par Ruby LSP sous Linux.
|
||||
capabilities.workspace.didChangeWatchedFiles.dynamicRegistration = true
|
||||
|
||||
vim.lsp.config("ruby_lsp", {
|
||||
cmd = { "ruby-lsp" },
|
||||
filetypes = { "ruby" },
|
||||
root_markers = { "Gemfile", ".git" },
|
||||
capabilities = capabilities,
|
||||
-- Contournement temporaire pour Ruby LSP 0.26.11 : dans un projet Ruby
|
||||
-- plat, Ruby Indexer peut construire le motif {}/**/*.rb et indexer un
|
||||
-- même fichier sous deux chemins différents. Cette exclusion neutralise
|
||||
-- uniquement ce motif ; les fichiers Ruby restent indexés normalement.
|
||||
init_options = {
|
||||
indexing = {
|
||||
excludedPatterns = { "{}/**/*.rb" },
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
vim.lsp.enable("ruby_lsp")
|
||||
|
||||
-- Complétion Ruby LSP
|
||||
vim.opt.completeopt = { "menuone", "noselect" }
|
||||
vim.opt.pumheight = 8
|
||||
vim.opt.pumwidth = 36
|
||||
vim.opt.pummaxwidth = 72
|
||||
vim.opt.pumborder = "rounded"
|
||||
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
callback = function(event)
|
||||
local client = vim.lsp.get_client_by_id(event.data.client_id)
|
||||
if client and client:supports_method("textDocument/completion") then
|
||||
vim.lsp.completion.enable(true, client.id, event.buf)
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("InsertCharPre", {
|
||||
callback = function()
|
||||
vim.lsp.completion.get()
|
||||
end,
|
||||
})
|
||||
|
||||
vim.keymap.set("i", "<Tab>", function()
|
||||
if vim.fn.pumvisible() == 1 then
|
||||
local selected = vim.fn.complete_info({ "selected" }).selected
|
||||
if selected == -1 then
|
||||
return "<C-n><C-y>"
|
||||
end
|
||||
return "<C-y>"
|
||||
end
|
||||
return "<Tab>"
|
||||
end, { expr = true })
|
||||
|
||||
vim.keymap.set("i", "<CR>", function()
|
||||
if vim.fn.pumvisible() == 1 then
|
||||
local selected = vim.fn.complete_info({ "selected" }).selected
|
||||
if selected ~= -1 then
|
||||
return npairs.esc("<C-y>")
|
||||
end
|
||||
end
|
||||
|
||||
return npairs.autopairs_cr()
|
||||
end, {
|
||||
expr = true,
|
||||
replace_keycodes = false,
|
||||
})
|
||||
```
|
||||
|
||||
Le bloc `init_options` contient un contournement temporaire pour Ruby LSP 0.26.11 : dans certains petits projets Ruby plats, Ruby Indexer peut construire le motif `{}/**/*.rb` et indexer un même fichier sous deux chemins différents. Cette exclusion neutralise uniquement ce motif ; les fichiers Ruby restent indexés normalement. Lorsque le problème sera corrigé dans Ruby LSP/Ruby Indexer, le bloc `init_options` pourra être retiré.
|
||||
|
||||
Neovim gère les plugins avec `vim.pack`. `plenary.nvim` est une dépendance de Telescope, `nvim-autopairs` ferme automatiquement les parenthèses, crochets, accolades et guillemets, et Grug Far utilise `ripgrep` pour la recherche et le remplacement. La complétion Ruby, les signatures de méthodes et la navigation LSP utilisent directement les fonctions intégrées à Neovim, sans plugin de complétion supplémentaire.
|
||||
|
||||
Le réglage `vim.opt.clipboard = "unnamedplus"` relie le registre par défaut de Neovim au presse-papiers système. Sous Wayland, Neovim utilise `wl-copy` et `wl-paste` fournis par `wl-clipboard`. Vous pouvez vérifier le fournisseur détecté avec :
|
||||
|
||||
```text
|
||||
:checkhealth vim.provider
|
||||
```
|
||||
|
||||
La section `Clipboard` doit indiquer qu'un outil de presse-papiers a été trouvé.
|
||||
|
||||
### Mise à jour des plugins
|
||||
|
||||
Pour rechercher les nouvelles versions des plugins gérés par `vim.pack` :
|
||||
|
||||
```text
|
||||
:packupdate
|
||||
```
|
||||
|
||||
Vérifiez les changements proposés, puis utilisez `:write` pour les accepter. Pour contrôler l'état du gestionnaire de plugins :
|
||||
|
||||
```text
|
||||
:checkhealth vim.pack
|
||||
```
|
||||
|
||||
## Ruby
|
||||
|
||||
### Ruby LSP
|
||||
|
||||
Installez `ruby-lsp` avec le Ruby utilisé par votre environnement :
|
||||
|
||||
```sh
|
||||
$ gem install ruby-lsp
|
||||
```
|
||||
|
||||
Vérifiez ensuite le client LSP dans Neovim :
|
||||
|
||||
```text
|
||||
:checkhealth vim.lsp
|
||||
```
|
||||
|
||||
### RuboCop
|
||||
|
||||
Installez RuboCop avec le Ruby utilisé par votre environnement :
|
||||
|
||||
```sh
|
||||
$ gem install rubocop
|
||||
```
|
||||
|
||||
Vérifiez son installation :
|
||||
|
||||
```sh
|
||||
$ rubocop -V
|
||||
```
|
||||
|
||||
Créez `~/.rubocop.yml` pour activer automatiquement les nouvelles règles ajoutées comme `pending` par RuboCop :
|
||||
|
||||
```sh
|
||||
$ nvi ~/.rubocop.yml
|
||||
```
|
||||
|
||||
Ajoutez ensuite :
|
||||
|
||||
```yaml
|
||||
AllCops:
|
||||
NewCops: enable
|
||||
```
|
||||
|
||||
RuboCop est utilisé manuellement pour mettre en forme le code et effectuer des vérifications ciblées.
|
||||
|
||||
Pour appliquer uniquement les règles de mise en forme à l'ensemble du projet :
|
||||
|
||||
```sh
|
||||
$ rubocop --only Layout -A
|
||||
```
|
||||
|
||||
Pour afficher uniquement les remarques de style :
|
||||
|
||||
```sh
|
||||
$ rubocop --only Style --format simple
|
||||
```
|
||||
|
||||
Pour rechercher les ambiguïtés et erreurs potentielles signalées par les règles `Lint` :
|
||||
|
||||
```sh
|
||||
$ rubocop --lint --format simple
|
||||
```
|
||||
|
||||
## Utilisation
|
||||
|
||||
Placez-vous dans le dossier du projet et lancez Neovim :
|
||||
|
||||
```sh
|
||||
$ cd ~/src/projet
|
||||
$ nvim .
|
||||
```
|
||||
|
||||
Sans fichier explicitement indiqué, Telescope s'ouvre directement. Si un fichier est passé sur la ligne de commande, Neovim l'ouvre normalement :
|
||||
|
||||
```sh
|
||||
$ nvim lib/game.rb
|
||||
```
|
||||
|
||||
Les commandes suivantes suffisent pour commencer :
|
||||
|
||||
| Commande | Action |
|
||||
| --- | --- |
|
||||
| `i` | Passer en mode insertion |
|
||||
| `Esc` | Revenir en mode normal |
|
||||
| `v` | Commencer une sélection visuelle |
|
||||
| `y` (mode visuel) | Copier la sélection dans le presse-papiers système |
|
||||
| `yy` | Copier la ligne courante dans le presse-papiers système |
|
||||
| `p` | Coller depuis le presse-papiers système |
|
||||
| `:w` | Enregistrer |
|
||||
| `:q` | Quitter |
|
||||
| `Space f` | Rechercher et ouvrir un fichier du projet |
|
||||
| `Space b` | Afficher les buffers ouverts |
|
||||
| `Space g` | Rechercher du texte dans le projet avec `ripgrep` |
|
||||
| `Space w` | Rechercher dans le projet le mot sous le curseur |
|
||||
| `Space l` | Reprendre la dernière vue Telescope |
|
||||
| `Space d` | Afficher les diagnostics connus par Neovim avec Telescope |
|
||||
| `Space r` | Ouvrir Grug Far pour rechercher et remplacer |
|
||||
| `Ctrl-]` | Aller à la définition |
|
||||
| `Ctrl-t` | Revenir après un saut vers une définition |
|
||||
| `Ctrl-s` | Afficher la signature de la méthode en mode insertion (raccourci LSP natif) |
|
||||
| `Tab` | Accepter la proposition sélectionnée, ou la première proposition si aucune ne l'est |
|
||||
| `Entrée` | Accepter la proposition sélectionnée, sinon insérer une nouvelle ligne |
|
||||
| `u` | Annuler |
|
||||
|
||||
### Grug Far
|
||||
|
||||
`Space r` ouvre Grug Far dans un split vertical. En mode visuel, la sélection courante est utilisée pour préremplir le texte recherché.
|
||||
|
||||
Les raccourcis principaux dans Grug Far sont :
|
||||
|
||||
| Commande | Action |
|
||||
| --- | --- |
|
||||
| `,r` | Appliquer le remplacement |
|
||||
| `,c` | Fermer Grug Far |
|
||||
| `Entrée` | Ouvrir l'emplacement du résultat sous le curseur |
|
||||
|
||||
La virgule correspond ici à `<localleader>`, défini dans la configuration avec `vim.g.maplocalleader = ","`.
|
||||
|
||||
Pour vérifier l'installation ou diagnostiquer un problème :
|
||||
|
||||
```text
|
||||
:checkhealth grug-far
|
||||
```
|
||||
|
||||
Dans Telescope :
|
||||
|
||||
| Commande | Action |
|
||||
| --- | --- |
|
||||
| `Ctrl-n` ou `↓` | Résultat suivant |
|
||||
| `Ctrl-p` ou `↑` | Résultat précédent |
|
||||
| `Entrée` | Ouvrir le résultat |
|
||||
| `Ctrl-v` | Ouvrir dans un split vertical |
|
||||
| `Ctrl-x` | Ouvrir dans un split horizontal |
|
||||
| `Ctrl-t` | Ouvrir dans un nouvel onglet |
|
||||
| `Ctrl-c` | Fermer Telescope |
|
||||
|
||||
La ligne de commande de Neovim propose automatiquement les complétions lorsque vous saisissez une commande après `:`.
|
||||
|
||||
## Ignorer des fichiers du projet
|
||||
|
||||
Pour masquer certains fichiers ou dossiers dans les recherches de Telescope sans modifier `.gitignore`, créez un fichier `.rgignore` à la racine du projet. Cette règle reste propre aux recherches locales et ne change pas les fichiers suivis par Git.
|
||||
|
||||
Par exemple, pour ignorer le dossier `doc/` :
|
||||
|
||||
```sh
|
||||
$ printf 'doc/\n' > .rgignore
|
||||
```
|
||||
|
||||
`ripgrep` prendra ce fichier en compte pour les recherches effectuées par Telescope lorsqu'il est utilisé comme moteur de recherche.
|
||||
|
||||
[Retour au guide principal](../README.md)
|
||||
@@ -0,0 +1,105 @@
|
||||
# Après l'installation
|
||||
|
||||
Quelques rappels correspondant à ma configuration et à mes usages habituels après une nouvelle installation sur une station de travail KDE Plasma. Ces étapes ne sont pas nécessaires dans tous les cas.
|
||||
|
||||
## Configuration de Plasma
|
||||
|
||||
Dans SDDM, sélectionnez la session **Plasma (Wayland)** avant de vous connecter.
|
||||
|
||||
Quelques réglages correspondant à mes préférences habituelles dans **Configuration du système** :
|
||||
|
||||
* **Apparence** → **Thème global** : sélectionner **Breeze sombre** ;
|
||||
* **Matériel** → **Affichage et écran** → **Couleur de nuit** : cocher **Activer la couleur de nuit** ;
|
||||
* **Matériel** → **Périphériques d'entrée** → **Clavier** → **Dispositions** : activer **Configurer les dispositions**, puis ajouter **Français** ;
|
||||
* **Espace de travail** → **Comportement de l'espace de travail** → **Bords de l'écran** : désactiver les actions configurées dans les coins ;
|
||||
* **Espace de travail** → **Comportement de l'espace de travail** → **Comportement général** : pour **Cliquer sur des fichiers ou des dossiers**, choisir **Les sélectionne** afin d'utiliser un clic pour sélectionner et un double-clic pour ouvrir ;
|
||||
* **Espace de travail** → **Comportement de l'espace de travail** → **Bureaux virtuels** : ajouter un deuxième bureau et le nommer **Bureau 2**.
|
||||
|
||||
Et également dans l'émulateur de terminal **Konsole** → **Configuration** : désactiver **Afficher la barre de menus**.
|
||||
|
||||
## Icône Slackware pour le menu Plasma
|
||||
|
||||
Depuis la racine du dépôt, installez le fichier `slackware.svg` dans les icônes système :
|
||||
|
||||
```sh
|
||||
# mkdir -p /usr/local/share/icons
|
||||
# cp slackware.svg /usr/local/share/icons/slackware.svg
|
||||
```
|
||||
|
||||
Dans Plasma, éditez ensuite le lanceur d'applications et choisissez `/usr/local/share/icons/slackware.svg` comme icône.
|
||||
|
||||
## KMix
|
||||
|
||||
Faites un clic droit sur l'icône de volume de KMix, puis ouvrez **Configurer KMix** → **Démarrage** et décochez **Démarrer KMix au démarrage du bureau**.
|
||||
|
||||
Faites ensuite de nouveau un clic droit sur l'icône de KMix et choisissez **Quitter**.
|
||||
|
||||
## HPLIP Systray
|
||||
|
||||
Pour empêcher l'applet HPLIP de se lancer avec Plasma :
|
||||
|
||||
```sh
|
||||
$ mkdir -p ~/.config/autostart
|
||||
$ cp /etc/xdg/autostart/hplip-systray.desktop ~/.config/autostart/
|
||||
$ echo 'Hidden=true' >> ~/.config/autostart/hplip-systray.desktop
|
||||
```
|
||||
|
||||
Cette modification désactive uniquement l'icône de la zone de notification pour l'utilisateur courant. Elle prend effet après reconnexion.
|
||||
|
||||
## SSH
|
||||
|
||||
Copiez les clés SSH dans `~/.ssh` en respectant les droits suivants :
|
||||
|
||||
```text
|
||||
[drwx------] ~/.ssh/
|
||||
├── [-rw-------] id_ed25519
|
||||
└── [-rw-r--r--] id_ed25519.pub
|
||||
```
|
||||
|
||||
Si nécessaire :
|
||||
|
||||
```sh
|
||||
$ chmod 700 ~/.ssh
|
||||
$ chmod 600 ~/.ssh/id_ed25519
|
||||
$ chmod 644 ~/.ssh/id_ed25519.pub
|
||||
```
|
||||
|
||||
> Les droits de la clé privée doivent être correctement définis pour qu'OpenSSH l'accepte.
|
||||
|
||||
## Git
|
||||
|
||||
Configurez votre nom et votre adresse e-mail :
|
||||
|
||||
```sh
|
||||
$ git config --global user.name "John Doe"
|
||||
$ git config --global user.email johndoe@example.com
|
||||
```
|
||||
|
||||
Pour vérifier la configuration :
|
||||
|
||||
```sh
|
||||
$ git config --global --list
|
||||
```
|
||||
|
||||
## KeePassXC
|
||||
|
||||
> Nécessite `sbopkg`.
|
||||
|
||||
Installez KeePassXC et ses dépendances :
|
||||
|
||||
```sh
|
||||
# sqg -p keepassxc
|
||||
# sbopkg -i keepassxc
|
||||
```
|
||||
|
||||
Si `sbopkg` trouve à la fois le paquet et une queue du même nom, choisissez **Q** pour utiliser la queue et installer les dépendances dans le bon ordre.
|
||||
|
||||
Pensez ensuite à copier la base de données KeePassXC.
|
||||
|
||||
Et pour finir, assurez-vous qu'elle n'est visible que par votre utilisateur :
|
||||
|
||||
```sh
|
||||
$ chmod 600 ~/<bd-keepassxc>
|
||||
```
|
||||
|
||||
[Retour au guide principal](../README.md)
|
||||
@@ -0,0 +1,68 @@
|
||||
# Ruby avec rbenv depuis SlackBuilds.org
|
||||
|
||||
> Nécessite `sbopkg`.
|
||||
|
||||
Slackware 15.0 fournit Ruby 3.0.7. Si vous souhaitez utiliser une version plus récente sans remplacer le paquet système, installez `rbenv` et `ruby-build` depuis SlackBuilds.org :
|
||||
|
||||
```sh
|
||||
# sbopkg -i rbenv
|
||||
# sbopkg -i ruby-build
|
||||
```
|
||||
|
||||
Initialisez ensuite `rbenv` pour votre shell :
|
||||
|
||||
```sh
|
||||
$ rbenv init
|
||||
```
|
||||
|
||||
La commande ajoute automatiquement l'initialisation nécessaire au fichier de démarrage de Bash. Déconnectez-vous puis reconnectez-vous à votre session pour prendre en compte la modification.
|
||||
|
||||
Vérifiez que les outils sont bien disponibles :
|
||||
|
||||
```sh
|
||||
$ rbenv --version
|
||||
$ ruby-build --version
|
||||
```
|
||||
|
||||
Vous pouvez maintenant afficher les versions de Ruby disponibles :
|
||||
|
||||
```sh
|
||||
$ rbenv install -l
|
||||
```
|
||||
|
||||
Installez ensuite celle que vous souhaitez utiliser, par exemple :
|
||||
|
||||
```sh
|
||||
$ rbenv install 4.0.7
|
||||
```
|
||||
|
||||
Pour en faire la version par défaut pour votre utilisateur :
|
||||
|
||||
```sh
|
||||
$ rbenv global 4.0.7
|
||||
```
|
||||
|
||||
## Vérification
|
||||
|
||||
Vérifiez enfin la version utilisée :
|
||||
|
||||
```sh
|
||||
$ ruby -v
|
||||
$ command -v ruby
|
||||
```
|
||||
|
||||
Avec `rbenv` actif, `ruby` doit normalement pointer vers :
|
||||
|
||||
```text
|
||||
/home/<utilisateur>/.rbenv/shims/ruby
|
||||
```
|
||||
|
||||
Le Ruby fourni par Slackware reste installé dans `/usr/bin/ruby`. `rbenv` ne remplace pas le paquet système : il place simplement ses propres *shims* en tête du `PATH` pour le shell de l'utilisateur.
|
||||
|
||||
Pour vérifier séparément la version système :
|
||||
|
||||
```sh
|
||||
$ /usr/bin/ruby -v
|
||||
```
|
||||
|
||||
[Retour au guide principal](../README.md)
|
||||
@@ -0,0 +1,74 @@
|
||||
# virt-manager depuis SlackBuilds.org
|
||||
|
||||
> Nécessite `sbopkg`.
|
||||
|
||||
Pour utiliser virt-manager avec QEMU/KVM, installez **QEMU** en plus de virt-manager : `qemu` n'est pas une dépendance déclarée de `virt-manager`.
|
||||
|
||||
Commencez par générer les queues de dépendances :
|
||||
|
||||
```sh
|
||||
# sqg -p qemu
|
||||
# sqg -p virt-manager
|
||||
```
|
||||
|
||||
Installez d'abord QEMU :
|
||||
|
||||
```sh
|
||||
# sbopkg -i qemu
|
||||
```
|
||||
|
||||
Si `sbopkg` trouve à la fois le paquet et une queue du même nom, choisissez **Q** pour utiliser la queue et installer les dépendances dans le bon ordre. Faites ensuite la même chose pour virt-manager :
|
||||
|
||||
```sh
|
||||
# sbopkg -i virt-manager
|
||||
```
|
||||
|
||||
Avec les options par défaut des SlackBuilds, `libvirt` et QEMU utilisent le groupe `users`. Pour permettre à un utilisateur normal d'utiliser virt-manager, décommentez ou réglez dans `/etc/libvirt/libvirtd.conf` :
|
||||
|
||||
```text
|
||||
unix_sock_group = "users"
|
||||
unix_sock_rw_perms = "0770"
|
||||
```
|
||||
|
||||
L'utilisateur doit bien sûr appartenir au groupe choisi.
|
||||
|
||||
Rendez ensuite le service exécutable et démarrez-le :
|
||||
|
||||
```sh
|
||||
# chmod +x /etc/rc.d/rc.libvirt
|
||||
# /etc/rc.d/rc.libvirt start
|
||||
```
|
||||
|
||||
Pour démarrer libvirt automatiquement avec le système, ajoutez dans `/etc/rc.d/rc.local` :
|
||||
|
||||
```sh
|
||||
# Libvirt
|
||||
if [ -x /etc/rc.d/rc.libvirt ]; then
|
||||
/etc/rc.d/rc.libvirt start
|
||||
fi
|
||||
```
|
||||
|
||||
Éditez ensuite `/etc/rc.d/rc.local_shutdown` ; le fichier sera créé s'il n'existe pas :
|
||||
|
||||
```sh
|
||||
# nvi /etc/rc.d/rc.local_shutdown
|
||||
```
|
||||
|
||||
Puis ajoutez :
|
||||
|
||||
```sh
|
||||
# Libvirt
|
||||
if [ -x /etc/rc.d/rc.libvirt ]; then
|
||||
/etc/rc.d/rc.libvirt stop
|
||||
fi
|
||||
```
|
||||
|
||||
Enfin, rendez le script exécutable :
|
||||
|
||||
```sh
|
||||
# chmod +x /etc/rc.d/rc.local_shutdown
|
||||
```
|
||||
|
||||
> `rc.libvirt stop` effectue par défaut un `managedsave` des machines virtuelles encore actives. Prévoyez donc suffisamment d'espace disque pour sauvegarder leur mémoire.
|
||||
|
||||
[Retour au guide principal](../README.md)
|
||||
Reference in new issue
Block a user