Outils pour utilisateurs

Outils du site


blog

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

FIXME 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 : FIXME: 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
2025/03/24 15:06

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
2025/03/24 15:06

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

Voir TERM - Available builtin terminals

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

2025/03/24 15:06

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
2025/03/24 15:06

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

Source : https://www.linuxjournal.com/content/parallel-shells-xargs-utilize-all-your-cpu-cores-unix-and-windows

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