Page 1 sur 1
[pacman 5] hook
Publié : lun. 01 févr. 2016, 09:47
par papajoke
il est possible de trouver quelques
exemples de hook
je vous propose mes premier essais :
lancement automatique de réflector :
/etc/pacman.d/hooks/pacman-mirrorlist.hook
Code : Tout sélectionner
[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = pacman-mirrorlist
[Action]
Description = lancement de reflector
When = PostTransaction
Depends = reflector
Exec = /usr/bin/reflector --verbose --country France -l 5 -p http --sort rate --save /etc/pacman.d/mirrorlist
un hook de sécurité, il empêche la désinstallation de certains paquets
/etc/pacman.d/hooks/obligatoire.hook
Code : Tout sélectionner
[Trigger]
Operation = remove
Type = Package
Target = bash
Target = pacman
[Action]
Description = OBLIGATOIRE, pas de désinstallation possible
When = PreTransaction
Exec = /usr/bin/false
AbortOnFail
Ajouter ces propres "Target"
Re: [pacman 5] hook
Publié : lun. 01 févr. 2016, 13:32
par Moviuro
Yo,
Merci pour les exemples, c'est bien cool
(je vais pouvoir créer un hook pour
butter)
Par contre, lancer reflector à chaque lancement de pacman, c'est vraiment abusé. (Une fois par semaine, c'est amplement suffisant)
Aussi, ça semble très étrange d'avoir à éditer un fichier dans
/usr
. T'es sûr de ton coup ?
Re: [pacman 5] hook
Publié : lun. 01 févr. 2016, 16:55
par papajoke
pour reflector, j'ai mis :
Target = pacman-mirrorlist
donc il est déclenché uniquement avec un upgrade ou install de ce paquet !
pour /usr/share/libalpm/hooks/, en effet j'avais fait les tests à partir du site github donné plus haut et ca marche
mais dans le nouveau pacman.conf on trouve :
testé et c'est ok
le man :
man a écrit :HookDir Add directories to search for alpm hooks in addition to the system hook directory
(/usr/share/libalpm/hooks/).
man a écrit :Hooks may be overridden by placing a file with the same name in a higher priority hook directory. Hooks may be disabled by overriding them with a symlink to /dev/null.
pas compris ?
Re: [pacman 5] hook
Publié : lun. 01 févr. 2016, 17:09
par Moviuro
papajoke a écrit :pour reflector, j'ai mis : Target = pacman-mirrorlist[c] donc il est déclenché uniquement avec un upgrade ou install de ce paquet ![/quote]Ah yes, mea culpa, j'avais pas vu :oops: :copain:
Re: [pacman 5] hook
Publié : lun. 01 févr. 2016, 22:42
par kozaki
Tip top les exemples de hooks pacman papajoke
Re: [pacman 5] hook
Publié : mar. 02 févr. 2016, 09:11
par Moviuro
papajoke a écrit :
man a écrit :HookDir Add directories to search for alpm hooks in addition to the system hook directory
(/usr/share/libalpm/hooks/).
man a écrit :Hooks may be overridden by placing a file with the same name in a higher priority hook directory. Hooks may be disabled by overriding them with a symlink to /dev/null.
pas compris ?
Code : Tout sélectionner
# ln -s /dev/null /etc/pacman.d/hooks/$un_hook_qui_existe_dans_usr-share-libalpm-hooks
Enfin, je pense.
Auquel cas ça désactive un hook que tu pourrais activer, un peu comme pour désactiver les règles udev avec systemd où on lie /dev/null à un fichier de règles.
ln -s /dev/null /etc/udev/rules/00-machin.rules
Re: [pacman 5] hook
Publié : mar. 02 févr. 2016, 14:02
par papajoke
autre petit hook de sécurité (pour parano)
/etc/pacman.d/hooks/nopath.hook
Code : Tout sélectionner
[Trigger]
Operation = Install
Operation = Upgrade
Type = File
Target = home/*
Target = media/*
Target = mnt/*
Target = usr/local/*
Target = srv/*
Target = proc/*
Target = sys/*
Target = tmp/*
[Action]
Description = destination NON conforme !
When = PreTransaction
Exec = /usr/bin/false
AbortOnFail
je me suis fait un paquet test puisque que cela n'existe pas sur aur ...
Code : Tout sélectionner
package() {
install -D -m555 "${srcdir}/untest" "${pkgdir}/home/patrick/untest"
}
et ça marche
un petit makepkg -si le déclenche bien
Re: [pacman 5] hook
Publié : sam. 04 août 2018, 16:54
par Xorg
Bonjour,
Je viens apporter ma pierre à l'édifice.
J'ai empaqueté un hook qui met à jour le fichier
/etc/pacman.d/mirrorlist à partir du fichier
/etc/pacman.d/mirrorlist.pacnew ; contrairement au hook proposé plus haut qui utilise
reflector
, ici c'est
rankmirrors
qui est utilisé (disponible dans le paquet
pacman-contrib).
Il s'agit du paquet
pacman-mirrorlist-rankmirrors-hook. Le pays doit être configuré dans le fichier
/etc/pacman.d/mirrorlist-rankmirrors.conf.
Dans le genre hook sympa qu'on trouve sur AUR, j'ai trouvé
pacman-cleanup-hook : il permet de nettoyer automatiquement le cache de Pacman, en conservant le paquet installé ainsi que sa version précédente.
Re: [pacman 5] hook
Publié : sam. 04 août 2018, 17:51
par papajoke
bonjour
Petite remarques,
- je ne suis pas fan de copier le script dans /bin puisqu'il ne devrait jamais fonctionner en console user puisqu'on a jamais de .pacnew (si hook fonctionne bien)
A noter qu'il est possible de restreindre le script pour uniquement pacman (dans contexte de hook)
- dans fichier .hook Dépendance pacman ? plutôt rankmirrors
un hook est lancé par alpm ! il n'y a pas de raison ici de demander pacman car tu ne fais aucun appel à pacman dans le script (sinon ok).
De plus, je connais (mais existe d'autres ???) aussi pamac (qui depuis quelques jours s'utilise en cli) : c'est un programme alpm (donc déclenche les hooks) mais n'utilise aucunement pacman (donc autre HTTP_USER_AGENT).
Pour le clean-hook, je préfère un timer systemd mensuel (...)