Outils pour utilisateurs

Outils du site


blog

Un MakeFile pour rpmbuild

Voir aussi :

Makefile

clean:  SHELL:=/bin/bash
 
build:  SHELL:=/bin/bash
 
 
FicSpec = $(shell echo *.spec)
RpmName = $(shell grep -e '^%define name' $(FicSpec) |awk '{print $$3}')
RpmVersion = $(shell grep -e '^%define version' $(FicSpec) |awk '{print $$3}')
RpmRelease = $(shell grep -e '^%define release' $(FicSpec) |awk '{print $$3}')
StringRpmFullname = $(RpmName)-$(RpmVersion)-$(RpmRelease).$(shell uname -m)
 
all:    build clean
 
clean:
        rm -rf $$HOME/rpmbuild
 
cleanall:       clean
        rm -f *.rpm
 
copy:   cleanall
        mkdir -p $$HOME/rpmbuild/{BUILDROOT,SPECS}
        mkdir -p $$HOME/rpmbuild/BUILDROOT/$(StringRpmFullname)
        cp -a ROOT/* $$HOME/rpmbuild/BUILDROOT/$(StringRpmFullname)
        cp -p $(FicSpec) ~/rpmbuild/SPECS/
 
build:  copy
        rpmbuild -bb ~/rpmbuild/SPECS/*.spec
        mv  ~/rpmbuild/RPMS/*/*.rpm .

Le clean se fait bien avant, mais pas après le build.

C'est comme si :

all:    build clean

Etait

all:    build

Solution :

Makefile

clean:  SHELL:=/bin/bash
 
build:  SHELL:=/bin/bash
 
 
FicSpec = $(shell echo *.spec)
RpmName = $(shell grep -e '^%define name' $(FicSpec) |awk '{print $$3}')
RpmVersion = $(shell grep -e '^%define version' $(FicSpec) |awk '{print $$3}')
RpmRelease = $(shell grep -e '^%define release' $(FicSpec) |awk '{print $$3}')
StringRpmFullname = $(RpmName)-$(RpmVersion)-$(RpmRelease).$(shell uname -m)
 
all:    build cleanagain
 
clean:
        rm -rf $$HOME/rpmbuild
 
cleanall:       clean
        rm -f *.rpm
 
cleanagain:
        ${MAKE} clean
 
copy:   cleanall
        mkdir -p $$HOME/rpmbuild/{BUILDROOT,SPECS}
        mkdir -p $$HOME/rpmbuild/BUILDROOT/$(StringRpmFullname)
        cp -a ROOT/* $$HOME/rpmbuild/BUILDROOT/$(StringRpmFullname)
        cp -p $(FicSpec) ~/rpmbuild/SPECS/
 
build:  copy
        rpmbuild -bb ~/rpmbuild/SPECS/*.spec
        mv  ~/rpmbuild/RPMS/*/*.rpm .

Exemple avec le paquet Python mycli

mkdir -p ~/rpm/ROOT
cd ~/rpm

Déposez le Makefile dans ~/rpm/

~/rpm/mycli.spec

%define name mycli
%define version 1.21.1
%define release 1
%define debug_package %{nil}

Summary:        CLI for MySQL/MariaDB
Name: %{name}
Version: %{version}
Release: %{release}
Vendor: NC


Group:          Database
License:        MIT License
URL:            https://www.mycli.net
Source0:        https://github.com/dbcli/mycli

BuildRequires:  rpm-build
Requires:       python38
#BuildArch:     noarch

%description
This is a command line interface for MySQL, MariaDB, and Percona with
auto-completion and syntax highlighting. The CLI is also capable of pretty
printing tabular data.

#%post
#set -e

%doc


#%changelog

%files
%defattr(755,root,root,644)
export http_proxy=http://127.0.0.1:3128
export https_proxy=http://127.0.0.1:3128
 
pip3 install --user mycli
mkdir -p ~/rpm/ROOT/opt/mycli
cp -a ~/.local/* ~/rpm/ROOT/opt/mycli/
 
 
mkdir -p ~/rpm/ROOT/usr/local/bin/
 
find /home/etudes/rpm/ROOT/ -type f -name "*.pyc" -delete

~/rpm/ROOT/usr/local/bin/mycli

#!/bin/sh
 
env PYTHONPATH=/opt/mycli/lib/python3.8/site-packages/ /opt/mycli/bin/mycli "$@"
cd ~/rpm/ROOT
find . -type f |sed -e 's/^\.//' >> ../mycli.spec
 
cd ~/rpm/
make

Pb

did you mean TAB instead of 8 spaces?
$ make           
Makefile:18: *** missing separator (did you mean TAB instead of 8 spaces?).  Stop.
Solution
sed -i.bak -e 's/^[ ]\+/\t/g' Makefile
2025/03/24 15:06

Umask par defaut - Droits des fichiers par defaut

Pour Debian Jessie

Voir :

Voir aussi :

/etc/login.defs

#UMASK          022
UMASK           027

/etc/pam.d/common-session

session optional pam_umask.so

Infos

umask 27
umask -S

Source : http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html

umask Niveau de sécurité Permission effectives (sur les dossiers)
022 Permissif 755
026 Modéré 751
027 Modéré 750
077 Sévère 700

Changer le umask par défaut d'un utilisateur

Voir http://stackoverflow.com/questions/10220531/how-to-set-system-wide-umask

Il est possible d'utiliser

  • le champ GECOS de /etc/passwd
  • de modifier le fichier .profile, .barshrc etc… de l'utilisateur
  • d'utiliser pam

Champ GECOS de /etc/passwd

#chfn --other='umask=002' username
chfn -o 'umask=0002' username

NOTE : A tester en console tty & xterm, et aussi en scp, sftp.

Changer le umask pour un service Systemd

/etc/systemd/system/plop.service

[Service]
UMask=006

https://ask.fedoraproject.org/en/question/7148/setting-apaches-umask-not-working-in-fedora-16-and-17/

/etc/systemd/system/httpd.service

.include /lib/systemd/system/httpd.service
[Service]
UMask = 0002

Autres

Exemple
source /var/lib/awx/venv/ansible/bin/activate
umask 0022
pip install --upgrade pywinrm
deactivate
2025/03/24 15:06

Ultra fast reboot

Technique pas recommandé

Voir

Source article complet :

echo 1 > /proc/sys/kernel/sysrq 
echo b > /proc/sysrq-trigger

Ultra fast shutdown

echo 1 > /proc/sys/kernel/sysrq 
echo o > /proc/sysrq-trigger

Autres

last |head
root     pts/0        192.168.3.81    Thu May 11 09:19   still logged in
reboot   system boot  3.10.0-327.el7.x Thu May 11 09:17 - 09:24  (00:07)
process  pts/0        192.168.3.81    Wed May 10 16:42 - down   (00:00)
root     pts/0        192.168.3.81    Wed May 10 16:34 - 16:42  (00:07)
reboot   system boot  3.10.0-327.el7.x Wed May 10 16:31 - 16:42  (00:10)
process  pts/0        192.168.3.81    Wed May 10 16:30 - 16:30  (00:00)
root     pts/0        192.168.3.81    Wed May 10 16:28 - 16:29  (00:01)
reboot   system boot  3.10.0-327.el7.x Wed May 10 16:27 - 16:42  (00:15)
root     pts/0        192.168.3.81    Wed May 10 16:19 - crash  (00:08)
reboot   system boot  3.10.0-327.el7.x Wed May 10 16:15 - 16:42  (00:26)
last -x shutdown
shutdown system down  3.10.0-327.el7.x Wed May 10 16:42 - 09:17  (16:34)
shutdown system down  3.10.0-327.el7.x Fri May  5 18:17 - 09:04 (3+14:46)
shutdown system down  3.10.0-327.el7.x Wed Apr  5 16:09 - 15:07 (29+22:58)
systemctl mask sleep.target suspend.target
uptime
ps -p 1 -o stime
lastb
chmod +s /sbin/halt
chmod +s /sbin/reboot

Autres

exec /sbin/init
2025/03/24 15:06

ulimit

Voir aussi :

  • prlimit

Depuis Redhat 6 nous avons :

/etc/security/limits.d/90-nproc.conf

# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
*          soft    nproc     1024
root       soft    nproc     unlimited
www-data   soft    nproc     unlimited

Options ulimit :

  • -H : Hard
  • -S : Soft
  • -a : All
  • -u : Nombre maximal de processus utilisateurs
ulimit -a -H
ulimit -a -S
help ulimit

Voir http://fr.wikipedia.org/wiki/Fork_bomb

:(){ :|:& };:

En cas de dépassement : comment le sait-on ?

Grsecurity propose un audit des dépassements des “ulimit”

Message d'erreur ?

Pourquoi ne pas utiliser les cgroups ?

Core dump

Désactiver les cores dumps (Redhat)

/etc/profile

# No core files by default
ulimit -S -c 0 > /dev/null 2>&1

Activer les cores dumps (Redhat)

su -
ulimit -c unlimited

Notes

/bin/bash -c ulimit -S -c 0 >/dev/null 2>&1 ; /usr/local/bin/plop
Temps réel

However, for systems with a Linux kernel 2.6.13 or newer, it is possible to allow processes without root privileges to set the real-time scheduling policy. When the Linux PAM module is installed (which is normally the case) you can control the maximum real-time priority for non-privileged processes on a per user or group basis via the /etc/security/limits.conf file.

For example, adding the line

   *      -      rtprio      99

Outils

Appliquez les modifications directement à un processus en cours d'exécution avec prlimit

Python

import resource
 
print(resource.getrlimit(resource.RLIMIT_NOFILE)[1])
2025/03/24 15:06

Ubuntu LTS - Quelques optimisations pour les anciens PC

Ubuntu light / aléger

Voir aussi - Distribution GNU/Linux légéres basées sur Debian :

Voir aussi - Distribution GNU/Linux légéres basées sur Ubuntu :

  • Trisquel Mini
  • lunbuntu

Description: Notes installation ubuntu

Lors d'une nouvelle install, il faut d'assurer de bien aligner les partions Voir formater_une_carte_microsd_en_optimisant_les_performances_et_la_duree_de_vie

Voir :

# Services activé :
systemctl list-unit-files |grep enabled
 
# Services démarrés :
systemctl |grep running

CPU - grub Kernel param

/etc/default/grub

mitigations=off

Optimisation mémoire avec zram

FixUbuntu

git pull https://github.com/micahflee/fixubuntu

Allégement Ubuntu

apt-get -y purge --autoremove $(dpkg -l |awk '{print $2}' |grep -i ubuntuone)
apt-get -y purge --autoremove ubuntu-sso-client ubuntu-sso-client-gtk python-ubuntu-sso-client geoclue-ubuntu-geoip
apt-get -y purge --autoremove $(dpkg -l |awk '{print $2}'|grep compiz|grep -v ^lib)
apt-get -y purge --autoremove gnome-online-accounts xserver-xorg-video-vmware evolution-data-server gnome-orca gnome-accessibility-themes
apt-get -y purge --autoremove $(dpkg -l |awk '{print $2}'|grep gwibber|grep -v ^lib)
apt-get -y purge --autoremove zeitgeist-core zeitgeist rhythmbox-plugin-zeitgeist python-zeitgeist
apt-get -y purge --autoremove landscape-client-ui-install
apt-get -y purge --autoremove $(dpkg -l|grep speech |awk '{print $2}'|grep -v ^lib)
apt-get -y purge --autoremove $(dpkg -l |grep bluetooth|awk '{print $2}'|grep -v ^lib )
apt-get -y purge --autoremove $(dpkg -l |grep bluez|awk '{print $2}')
apt-get -y purge --autoremove apt-xapian-index indicator-keyboard

Bureau classique

apt-get install gnome-session-fallback gnome-panel

Autres

apt-get install atop htop fdupes check-dfsg-status sysstat apt-file rdiff-backup rsync vim synaptic vlc gimp chromium-browser powertop

note : check-dfsg-status remplace vrms

/etc/fstab

UUID=c6f15232-b71f-42a7-85bf-754ee44cac6a /               ext4    errors=remount-ro,noatime 0       1
UUID=a5d996f4-b25c-417a-9b41-941e9898431b /home           ext4    defaults,noatime,noexec,nosuid,nodev        0       2
tmpfs           /dev/shm        tmpfs   defaults,size=100m      0       0

Voir /etc/default/tmpfs

Il s'agit ici de

  • rajouter noatime sur toutes les partitions ext4 ou ext3
  • d'ajouter size=100m à la partition /dev/shm. Ici 100m est un exemple. La partition /dev/shm ne fera que 100 Mo de RAM.

Parametres système - Son - Effets sonores - Volume des alertes

sed -i -e 's/^NoDisplay=true.*/NoDisplay=false/' /etc/xdg/autostart/*.desktop
gnome-session-properties

Si MATE Desktop, remplacez gnome-session-properties par mate-session-properties

Désactivation de :

  • Onboard
  • Partage de bureau
  • Moniteur de sauvegarde
  • Discussion (Telepathy)
  • Moniteur de sauvegarde
  • Conversion des données GSettings
  • Mise à jour des dossiers utilisateur
  • Fichiers
cat > /etc/modprobe.d/jibe.conf <<EOF
blacklist minix
blacklist btrfs
blacklist xfs
blacklist reiserfs
blacklist ppdev
blacklist parport_pc
blacklist lp
blacklist parport
blacklist hfs
blacklist hfsplus
EOF

Voir :

FIXME deborphan


Notes Ubuntu 16.04

TODO: Tester de supprimer Compiz

FixUbuntu

Paramtètre système / Luminosité & verrouillage

  • Vérrouiller
  • Demander mon mot de passe lors de la sortie de veille

Sécurité et confidentialité Sécutité Demander mon mot de passe Dignostics

Unity Tweak Tool Unity / Web Apps

  • Inviers d'intégration : off

Domaines pré-autorisés Amazon : décoché Ubuntu One : Décoché

apt-get -y purge --autoremove $(dpkg -l |grep webapps | grep ^ii |awk '{print $2}')
apt-get install vim atop sysstat powertop deborphan acpi
apt-get -y purge --autoremove xul-ext-ubufox
apt-get autoremove
deborphan
apt-get -y purge --autoremove $(deborphan)
apt-get -y purge --autoremove $(deborphan)

Suppression effets sonores

Install libcss pour lire les DVD Le plus simple c'est d'installer VLC

apt-get install vlc
2025/03/24 15:06
blog.txt · Dernière modification : de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki