Table des matières
- 2026:
- 2025:
1 billet(s) pour avril 2026
| Notes ping ICMP | 2026/04/03 23:01 | Jean-Baptiste |
Notes conversion paquet DEB en RPM avec Alien - exemple avec jodconverter-java
Portage de jodconverter-2.2.2 de Debian sur RedHat7
Sur Debian
apt-get download jodconverter libjodconverter-java fakeroot alien -r *.deb
On envoi les paquets RPM sur la Redhat
Sur RedHat7
yum --enablerepo=extras install epel-release yum install rpmbuild
rpmrebuild -e -p jodconverter-2.2.2-9.noarch.rpm
Ici il faut ôter les lignes correspondant à des répertoires
%dir %attr(0755, root, root) "/" %dir %attr(0755, root, root) "/usr" %dir %attr(0755, root, root) "/usr/bin"
ou
alien -r -g -v plop_all.deb cd plop sed -i 's#%dir "/"##' *.spec sed -i 's#%dir "/opt/"##' *.spec sed -i 's#%dir "/usr/bin/"##' *.spec #rpmbuild --target=noarch --buildroot "$PWD" -bb *.spec rpmbuild --buildroot "$PWD" -bb *.spec
plus bas nous ferons un ln -s /usr/share/java/jodconverter-cli-2.2.2.jar /usr/share/java/jodconverter-cli.jar
Il doit avoir une manière plus propre de faire cela.
Ici nous effacerons simplement la ligne ci-dessous
%attr(0777, root, root) "/usr/share/java/jodconverter-cli.jar"
Sinon nous aurions cette erreur
attention : Explicit %attr() mode not applicaple to symlink: /root/.tmp/rpmrebuild.4635/work/root/usr/share/java/jodconverter-cli.jar
Construisons de nouveau notre RPM
cd rpmbuild rpmbuild --target=noarch -bb
Même chose avec l'autre paquet libjodconverter-java-2.2.2-8.noarch.rpm
rpmrebuild -e -p libjodconverter-java-2.2.2-8.noarch.rpm cd rpmbuild rpmbuild --target=noarch -bb
Correction chemin et dépendance :
: Note il aurait été préférable de modifier le script bash /usr/bin/jodconverter que de faire des liens symbolique dans tous les sens
yum install libreoffice-core libreoffice-ure libreoffice-writer yum install apache-commons-io slf4j maven xstream ln -s /usr/share/java/jodconverter-2.2.2.jar /usr/share/java/jodconverter.jar ln -s /usr/share/java/jodconverter-cli-2.2.2.jar /usr/share/java/jodconverter-cli.jar ln -s /usr/lib64/libreoffice /usr/lib/ ln -s /usr/lib64/libreoffice/ure/share/java/ridl.jar /usr/share/java/ ln -s /usr/share/java/slf4j/slf4j-api.jar /usr/share/java/slf4j-api
En cas de pb
bash -x $(which jodconverter)
On essaye !
jodconverter fichier.odt fichier.pdf
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection.<init>(AbstractOpenOfficeConnection.java:44)
at com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection.<init>(SocketOpenOfficeConnection.java:32)
at com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection.<init>(SocketOpenOfficeConnection.java:28)
at com.artofsolving.jodconverter.cli.ConvertDocument.main(ConvertDocument.java:118)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 4 more
On a oublié de démarrer LibreOffice,
Démarrons le
soffice --headless --accept="socket,port=8100;urp;"
/usr/lib64/libreoffice/program/soffice.bin X11 error: Can't open display: Set DISPLAY environment variable, use -display option or check permissions of your X-Server (See "man X" resp. "man xhost" for details)
Il faulait le paquet libreoffice-headless
yum install libreoffice-headless
jodconverter fichier.odt fichier.pdf
encore une erreur
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection.<init>(AbstractOpenOfficeConnection.java:44)
at com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection.<init>(SocketOpenOfficeConnection.java:32)
at com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection.<init>(SocketOpenOfficeConnection.java:28)
at com.artofsolving.jodconverter.cli.ConvertDocument.main(ConvertDocument.java:118)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 4 more
Modification du script jodconverter (Ajout de plusieurs jar dans dans le CLASSPATH)
/usr/bin/jodconverter
#!/bin/sh if [ "$1" = "-classpath" ] then CLASSPATH="$2" shift 2 fi JAVACLASSES=/usr/share/java CLASSPATH="${CLASSPATH:-.}:$JAVACLASSES/jodconverter-cli.jar" # jodconverter-cli deps CLASSPATH="$CLASSPATH:$JAVACLASSES/commons-cli.jar:$JAVACLASSES/commons-io.jar:$JAVACLASSES/jodconverter.jar" # libjodconverter-java deps CLASSPATH="$CLASSPATH:$JAVACLASSES/ridl.jar:/usr/lib/libreoffice/program/classes/unoil.jar:$JAVACLASSES/juh.jar:$JAVACLASSES/slf4j-api.jar:$JAVACLASSES/commons-io.jar:$JAVACLASSES/xstream.jar" # slf4j-api deps CLASSPATH="$CLASSPATH:$JAVACLASSES/slf4j/slf4j-api.jar" # Portage sur CentOS7 CLASSPATH="$CLASSPATH:/usr/lib64/libreoffice/ure/share/java/java_uno.jar:/usr/lib64/libreoffice/ure/share/java/juh.jar:/usr/lib64/libreoffice/ure/share/java/jurt.jar:/usr/lib64/libreoffice/ure/share/java/ridl.jar:/usr/lib64/libreoffice/ure/share/java/unoloader.jar:/usr/share/java/slf4j/jcl-over-slf4j.jar:/usr/share/java/slf4j/jul-to-slf4j.jar:/usr/share/java/slf4j/log4j-over-slf4j.jar:/usr/share/java/slf4j/slf4j-api.jar:/usr/share/java/slf4j/slf4j-ext.jar:/usr/share/java/slf4j/slf4j-migrator.jar:/usr/share/java/slf4j/slf4j-simple.jar:/usr/share/java/slf4j/slf4j-site.jar" export CLASSPATH exec java com.artofsolving.jodconverter.cli.ConvertDocument "$@"
Pb RPM build errors: Arch dependent binaries in noarch packag
fakeroot alien -r /home/jean/atop-netatop-dkms_0.7-1+jb2_all.deb
Warning: Skipping conversion of scripts in package atop-netatop-dkms: postinst prerm
Warning: Use the --scripts parameter to include the scripts.
Package build failed. Here's the log of the command (cd atop-netatop-dkms-0.7; rpmbuild --buildroot='/tmp/atop-netatop-dkms-0.7' -bb --target noarch 'atop-netatop-dkms-0.7-2.spec'):
Building target platforms: noarch
Building for target noarch
Processing files: atop-netatop-dkms-0.7-2.noarch
Provides: atop-netatop-dkms = 0.7-2
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: /bin/sh libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libz.so.1()(64bit) rtld(GNU_HASH)
error: Arch dependent binaries in noarch package
RPM build errors:
Arch dependent binaries in noarch packag
fakeroot alien -r atop-netatop-dkms_0.7-1+jb2_all.deb --scripts --target=x86_64
Création de paquet RPM sous Debian
apt-get install rpm rpm2cpio
Notes Containerd et CRI
Install
CRI ctr crictl
Voir :
ctr tasks list sudo ctr containers ls sudo ctr -n k8s.io containers ls
$ sudo crictl ps --label=io.kubernetes.container.name=etcd WARN[0000] runtime connect using default endpoints: [unix:///run/containerd/containerd.sock unix:///run/crio/crio.sock unix:///var/run/cri-dockerd.sock]. As the default settings are now deprecated, you should set the endpoint instead. WARN[0000] image connect using default endpoints: [unix:///run/containerd/containerd.sock unix:///run/crio/crio.sock unix:///var/run/cri-dockerd.sock]. As the default settings are now deprecated, you should set the endpoint instead. CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID POD 26ad6c508d95f 2e96e5913fc06 53 minutes ago Running etcd 3 7adfdae770dbc etcd-vmdeb01.local
$ sudo ctr -n k8s.io containers ls |grep etcd 26ad6c508d95f60c42468e683334b01ac46a983d0dc145f05c50e94fb27ab2a4 registry.k8s.io/etcd:3.5.15-0 io.containerd.runc.v2 e2deef7ab12b892a88ec02e1b4956617a95bc2418ebd05d9112d650b4a6827a4 registry.k8s.io/etcd:3.5.15-0 io.containerd.runc.v2 $ sudo crictl inspect 26ad6c508d95f60c42468e683334b01ac46a983d0dc145f05c50e94fb27ab2a4 2>/dev/null | jq '.status.state' "CONTAINER_RUNNING" $ sudo crictl inspect e2deef7ab12b892a88ec02e1b4956617a95bc2418ebd05d9112d650b4a6827a4 2>/dev/null | jq '.status.state' "CONTAINER_EXITED"
$ sudo crictl pods --name etcd WARN[0000] runtime connect using default endpoints: [unix:///run/containerd/containerd.sock unix:///run/crio/crio.sock unix:///var/run/cri-dockerd.sock]. As the default settings are now deprecated, you should set the endpoint instead. POD ID CREATED STATE NAME NAMESPACE ATTEMPT RUNTIME 7adfdae770dbc About an hour ago Ready etcd-vmdeb01.local kube-system 1 (default) d258693e868f9 21 hours ago NotReady etcd-vmdeb01.local kube-system 0 (default)
sudo crictl pods --name etcd -o yaml # list pods by label $ crictl pods --label component=kube-apiserver # get the latest pod $ crictl pods --latest crictl logs 87d3992f84f74
Pb
Pb Kubeadm 1
root@vmdeb02:~# kubeadm init
[init] Using Kubernetes version: v1.29.0
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR CRI]: container runtime is not running: output: time="2023-12-19T04:03:10-06:00" level=fatal msg="validate service connection: validate CRI v1 runtime API for endpoint \"unix:///var/run/containerd/containerd.sock\": rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService"
, error: exit status 1
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher
Et / ou
# systemctl status containerd.service Sep 10 09:35:34 vmdeb01 containerd[18699]: time="2024-09-10T09:35:34.364662398Z" level=error msg="copy shim log" error="read /proc/self/fd/17: file already closed" namespace=k8s.io
Solution
/etc/containerd/config.toml
#disabled_plugins = ["cri"] disabled_plugins = []
Et
systemctl restart containerd.service
Voir
zcat /usr/share/man/man5/containerd-config.toml.5.gz |sed -ne '/\.EX/,/\.EE/p' > /etc/containerd/config.toml.exemple1 containerd config default > /etc/containerd/config.toml.exemple2
/etc/containerd/config.toml
disabled_plugins = [""] #root = "/var/lib/containerd" #state = "/run/containerd" #subreaper = true #oom_score = 0 #[grpc] # address = "/run/containerd/containerd.sock" # uid = 0 # gid = 0 #[debug] # address = "/run/containerd/debug.sock" # uid = 0 # gid = 0 # level = "info" [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] SystemdCgroup = true
Voir https://k8s.myprivatelab.tech/deploiement_serveur_kubernetes_v2
Autres
zcat /usr/share/man/man5/containerd-config.toml.5.gz |sed -ne '/\.EX/,/\.EE/p' > /etc/containerd/config.toml.exemple
En cas de Pb désactiver Faut-il désactiver AppArmor / SELinux
Désactiver AppArmor
systemctl disable --now apparmor
Notes Console - Terminal
Couleur
Un peu de couleurs
env S_COLORS=always sar -A | less -R -S env S_COLORS=always sar -n DEV | grep --color=never eth0
watch --color env ANSIBLE_FORCE_COLOR=true ansible localhost -m async_status -a "jid=j918561124738.218554"
Voir aussi :
- dircolors
Scripts lancer aux logins
Pour désactiver certains messages
touch ~/.hushlogin
Pb
Erreur screen: Unknown terminal type
Sur AIX
srv1@root /root #> vi screen: Unknown terminal type [Hit return to continue]
tmux fixe TERM à screen à la place de xterm
Solution
export TERM=vt101 # A tester # export TERM=linux # export TERM=linux-vt
Erreur 072W Failed to audit keystrokes within the configured time frame. Code: 1
072W Failed to audit keystrokes within the configured time frame. Code: 1
La session est enregistrée, CyberArk où qqch du genre.
Par de solution connue à par relancer la connexion
Notes configuration kernel Linux
Pour criu (snapshot process)
The following options must be enabled for CRIU to work:
General setup options
CONFIG_CHECKPOINT_RESTORE=y (Checkpoint/restore support)
CONFIG_NAMESPACES=y (Namespaces support)
CONFIG_UTS_NS=y (Namespaces support -> UTS namespace)
CONFIG_IPC_NS=y (Namespaces support -> IPC namespace)
CONFIG_PID_NS=y (Namespaces support -> PID namespaces)
CONFIG_NET_NS=y (Namespaces support -> Network namespace)
CONFIG_FHANDLE=y (Open by fhandle syscalls)
CONFIG_EVENTFD=y (Enable eventfd() system call)
CONFIG_EPOLL=y (Enable eventpoll support)
Networking support -> Networking options options for sock-diag subsystem
CONFIG_UNIX_DIAG=y (Unix domain sockets -> UNIX: socket monitoring interface)
CONFIG_INET_DIAG=y (TCP/IP networking -> INET: socket monitoring interface)
CONFIG_INET_UDP_DIAG=y (TCP/IP networking -> INET: socket monitoring interface -> UDP: socket monitoring interface)
CONFIG_PACKET_DIAG=y (Packet socket -> Packet: sockets monitoring interface)
CONFIG_NETLINK_DIAG=y (Netlink socket -> Netlink: sockets monitoring interface)
Other options
CONFIG_INOTIFY_USER=y (File systems -> Inotify support for userspace)
CONFIG_IA32_EMULATION=y (x86 only) (Executable file formats -> Emulations -> IA32 Emulation)
Pour cgroup
Pour Dump Mem (passer à n pour accès à /dev/mem)
CONFIG_STRICT_DEVMEM=y
Notes compression
pigz/unpigz remplace gzip
7z 7zip PeaZip
lzop, lz4 pour la rapidité (similaire à gzip)
xz / pxz pour la compression
pbzip2
rsync ⇒ voir gzip --rsyncable
ppack_lz.sh
#!/bin/sh PARALLEL="$(nproc --ignore=1)" EXT="${0##*_}" case "$EXT" in bz2) CMD='bzip2 -9' ;; gz) CMD='gzip -9' ;; lz) CMD='lzip -9' ;; xz) CMD='xz -9e' ;; zst) CMD='zstd --rm --single-thread --ultra -22' ;; esac if [ -z "$1" ] then echo "Specify files to pack into ${EXT} files." else for x do printf '%s\0' "$x" done | nice xargs -0 -L 1 -P "$PARALLEL" $CMD fi
