Make shared library ".so" of Perl?

Tags: #<Tag:0x00007f5098260350>

Mais non tu te trompes, je t’assure !

Les sources sont le répertoire de construction, il te/me le dise en plus dans les « logs » du make.

Vous devrez peut-être définir le chemin de recherche de votre bibliothèque dynamique, LD_LIBRARY_PATH, pour qu’il pointe vers le répertoire de construction :

exemple# setenv LD_LIBRARY_PATH pwd:$LD_LIBRARY_PATH ; cd t; ./perl harness
exemple# LD_LIBRARY_PATH=pwd:$LD_LIBRARY_PATH ; export LD_LIBRARY_PATH ; cd t; ./perl harness
exemple# export LD_LIBRARY_PATH=pwd:$LD_LIBRARY_PATH ; cd t; ./perl harness

pour les shells de style csh, comme tcsh ; ou pour les shells de style Bourne traditionnels/modernes, comme bash, ksh et zsh, respectivement

C’est écrit ici aussi :

Pour réellement compiler perl, vous devez ajouter le répertoire de travail courant à votre variable d’environnement LD_LIBRARY_PATH avant d’exécuter make. Vous pouvez le faire avec :

Donc, entre la commande ./Configure et make, make test, make install.
Et de plus, il nous envoie la commande « pwd » qui retourne le répertoire courant. de la compilation, donc.

Salutations,
Romain

Ça dépend … du constructeur. Je sépare le build des sources pour ne pas risquer de les polluer.
Mais si le mode d’emploi dit ça, et comme c’est toi qui conduis, c’est toi qui sais !
Pas si facile ubuntu.

Il faut arrêter de dire n’importe koi :blush: :innocent: - C’est Perl, rien à voir avec Ubuntu :rofl:

Et généralement, le répertoire « build » c’est le résultat de/d’une construction, après la construction, après le « make install » :wink:

J’essaie de ne pas conduire vers un Scratch j’crois … hahaha :joy:

La Bonne conduite, l’art de rouler/de la bonne conduite depuis des années… rizla :wink:

Non. C’est perl 5.38 dans une vieille ubuntu multi arch certainement déjà bien tripatouillée depuis le temps.
C’est bien un problème spécifique ubuntu focal puisque Perl 5.38 est dispo pour Debian, certes avec quelques contorsions (dépôt experimental), mais beaucoup plus simple.

Exact, et c’est le make test qui te demande la librairie, qui ne se trouve justement pas dans les sources, mais c’est toi qui conduis et qui sais.

Une question en off: mais que fais-tu avec du Perl 5.38 non dispo en t’obstinant dans une vieille ubuntu qui va commencer à craquer de partout, mais c’est juste une question en off, dont le réponse ne me regarde pas.
Deuxième question en off: Perl 5.36 est dispo chez ubuntu: 5.38 est-il réellement justifié ???

J’essaie justement de créer cette librairie – et cela grâce à la getOps -Duseshrplib au moment de la Configure de l’installation, j’ai la librairie « static (.a) » que j’ai déjà compilé qui est ici :
/usr/lib/perl5/5.38.0/x86_64-linux/CORE/libperl.a
ou pour la construction/installation qui est ici (dans les sources du programme Perl) :
/home/orj/perl-5.38.0/libperl.a

Je cherche à créer une librairie « partagée (.so) » -
/usr/lib/x86_64-linux-gnu/libperl.so.5.38

Pour qu’elle puisse être appelée par des programmes tierces.

C’est un version de 2020 ok mais c’est une LTS (Long Term Support)

Vous pouvez lire cette page de documention que j’ai écrite :

Ou, encore ce sujet de discussion que j’ai créais sur le forum de ZIMBRA - Zimbra est un serveur MTA (Mails) OpenSource.

Et « Zimbra Collaboration Open Source » est disponible seulement pour cette version d’Ubuntu :

Tout çà donc pour « sécuriser plus fort mon serveur de Mails contre les "faussaires/usurpateurs » d’identité (les mails SPAMs) - Pour ajouter à l’anti-virus Mail::SpamAssassin, l’anti-phishing, une couche suplémentaire contre le spam Mail::DMARC (Domain-based Message Authentication, Reporting and Conformance) avec une couche encore supplémentaire BIMI (Brand Indicators for Message Identification retrieval, validation, and processing)

Et que mon serveur de Mail Zimbra sur un serveur de test ne démarre plus à cause que :

La bibliothèque chargeable et les binaires perl ne correspondent pas.

Depuis que j’ai upgradé Perl du système pour pouvoir installer Mail:DMARC qui me demandait la version 5.36 de perl, la version courante à l’époque, il y a 1 an et j’ai remarqué il y a quelques jours que je n’avais pas la librairie partagée de mon Perl fonctionnel et que cela devait être lié.

:slight_smile:

Et donc, l’erreur de compilation de Perl actuelle est celle -ci :

Que le GCC ne trouve GLIBC qui est une bibliothèque C qui apporte les appels système et les fonctions de base pour être utilisée par tous les programmes liés dynamiquement.

Je pense que GLIBC doit être installé, mais vu que j’ai changeais ma version de Perl, il faudrait peut-être recréer/réajuster quelque chose.

Une LTS n’évolura que relativement aux mises à jour sécurité.
Si tu fais confiance au principe de LTS, et qu’ubuntu ne propose pas de mise à jour de libperl depuis 3 ans, j’en conclurai que la LTS n’est pas ce qui te convient, si tu souhaites absolument le tout dernier paquet de libperl, avant même d’avoir été testé par Debian et éventuellement ubuntu qui suivra.
Ce que tu tentes de faire n’est que du test plus ou moins approximatif, puisque ce sont les dépendances de libperl qui peuvent être les plus sensibles relativement à la sécurité. C’est un tout.

Justement, ton problème de libcc…
libc6 est la bibliothèque centrale, et n’est pas un petit morceau.
Ton observation est que libperl demande une mise à jour de glibc-source, ce qui ne me surprend pas du tout.

ubuntu jammy 22.04 est aussi une LTS, et quand-même un peu plus fraîche que la 20.04, et suffirait peut-être (je n’ai pas vérifié les symboles internes de libcc de jammy…).
Si tu dois aussi rafraichir libc6 par compilation, ta ubuntu n’aura plus rien à voir avec une ubuntu 20.04 LTS de toute façon.

Il faut arrêter, une solution ? çà sert à quoi les forums - vous êtes experts, pouvez-vous résoudre mon problème ?

Je souhaite que mon serveur de mail Zimbra soit sécurisé par Mail::DMARC et Mail::BIMI dans mon SpamAssasin comme sécurité supplémentaire - est-ce compliqué de comprendre. Vous parlez à TV de l’hameconnage, des petits vieux qui mettent leurs informations et cartes bancaires sur des sites frauduleux parce qu’ils ont recus un mail de soit disant leurs banques… etc. et…

A priori personne n’a fait çà, pour Zimbra, pour leurs utilisateurs, pour leurs nom de domaine mail - Tout le monde s’en fout de ne pas être sécurisé, et de se faire usurpé de son identité.

Êtes-vous bien conforme DMARC, est-ce que vos mails arrivent chez les FAI mails ? Très peu, qui !?

Envoyez moi une, ou 2 adresses de serveurs mails (que vous utilisez, ou qui vous envoies des mails) avec leurs enregistrements DNS trouvés, leurs enregistrements DMARC trouvés et leurs politique DMARC de mise en quarantaine et/ou de reject activés, déjà.

Et ça?

Juste pour ta gouverne, c’est du bénévolat, sans aucune garantie. Ce n’est pas comme ça qu’on obtient des réponse qui plus est.

Salut @Zargos ,

Résumé

Je connais çà :smiley:

« Tout le monde » a bien configurés ses adresses IP des Senders Policy Framework (SPF) et ont ajoutés leurs signatures DKIM (Domain Keys Identified Mail) pour que leurs mails « rentrent » dans les boites mails des utilisateurs des FAI (GMAIL, Outlook365, etc) et ont bien ajouté leur RR DNS DMARC avec leurs politiques, mais…

Je le répète pour que les mails (envoyés depuis leurs serveurs) soient « conforment ».

Et pourtant, ils ont oubliés, ou non pas configurés leur DMARC Quarantine/Reject policy qu’elle soient active et associés à un domaine d’envoie (domaine principal ou vserver du domaine principal). Cela pour l’envoie.

Sinon, pour la réception, faire comme eux (GMAIL, Outlook365, etc), il faut bien vérifier si les mails reçus sont conforme DMARC ou non. ET c’est là que Mail::DMARC.

Vous savez, le concept de client/serveur, un truc que l’on appelle - un protocole de communication Internet.


Pour Zimbra, il y a une solution alternative, c’est supprimer SpamAssassin et installer Rspamd : A high performance spamassassin replacement (très bonne solution d’anti-virus et compagnie, à ce qu’il parait), mais je souhaite seulement installer, un plugin à SpamAssassin::DMARC sur la solution Zimbra par default.

Paramètres des Indésirables dans Thunderbird: thunderbird-parametres-indesirables

:slight_smile:

Romain

Je pose des questions « très simple » quand même, si vous m’envoyez n’importe où, je n’y peut rien (par exemple, le sujet c’est " Make shared library “.so” of Perl?".

Mes journées sont très difficile :face_with_raised_eyebrow: Personne ne me connait sur ce forum :rofl:

Seul, celles et ceux qui savent, savent :slight_smile: Je fais du bénévolat aussi pour aider l’humanité !

Bonne journée à vous mesdames, mesdamoiselles, messieurs.

1 J'aime

T’es bien gentil mais ta demande initiale ne concerne pas Debian mais Zimbra … je t’ai déjà dit que sur ce forum tu n’aurais pas plus d’appui compétents que sur le forum de Zimbra, si là-bas personne ne t’a répondu concernant l’empaquetage de paquet encore non prévu pour être intégré …

Je t’avais prévenu à l’époque pourtant, c’est aps pour rien qu’en générale lorsque l’on test on passe par du container afin de s’affranchir des limites des distributions.

2 J'aime

Merci - @CLochette, bonnes vacances.

Ma demande concernait/concerne :passport_control: « comment créer une librairie partagé de Perl du système » :cry: :weary: Ubuntu :rofl:

Sinon :slight_smile:

Je préfère passer par des Virtual Machine KVM (Kernel-Based Virtual Machine) puisque çà prend en considération un BIOS et un système de démarage.
Enfin, plutôt, j’avais eu des problèmes - de compatibilités et/ou des fonctionnalités que j’avais avec des containers Linux-VServer.

Cordialement,
Romain

Finalement, dans cette cacophonie de sujets entremêlés, alors qu’il n’y a aucune alerte sécurité spécifique de libperl, que ce soit chez ‹ zimbra ›, ‹ dmarc ›, Debian ou ubuntu, un bon schéma vaut mieux qu’un long discours pour illustrer l’interaction de librairies ‹ partagées › dont la toute dernière version de libperl5-38 non encore testée en tant que paquet ne peut pas être ‹ simplement › intégrée dans une version ubuntu de 2020 (non précisée dans le sujet initial, ajoutant à la confusion dans un forum Debian).

libperl5

L’environnement du partage d’une librairie est essentiel, et non un détail.
En conclusion, moins simple qu’il n’y paraissait.

1 J'aime

Ouais, bon ok…


Merci @Verner :slight_smile: Heureusement que tu es là !!

Je vais essayais çà bientôt :wink:

On vera bien si c’est stable, le truc que je veut mettre en place Mail::BIMI sur Mail::DMARC via Mail::SpamAssasin:plugin::DMARC dans le serveur de mails, solution Open source collaborative Zimbra.

Salutations,
Romain

Sinon, tu crois qu’il faut que je commence de droite à gauche (comme sur le dessin)… et au final que je créais libperl.so

Ok, cool :blush::beer:

Ce ne sont ici que les paquets dont dépendent libperl. Donc juste un petit bout du problème.
Mais en amont, il faut investiguer les dépendances inverses, selon ce qui est installé et utlisé.
Il faut donc regarder à gauche et à droite, et devant et derrière.
C’est un peu pour ça que les distributions font des paquets, pour simplifier le travail d’analyse.
Sinon, aucune trace de panique chez quiconque sur libperl, et pas compris l’origne de ton angoisse. Je me ferai plus (au doigt mouillé) du souci pour libcrypt1 dont dépend libperl.

oui bien sûr.

oui certes.

Bien sûr.

un truc personnel pour connaître la procédure à suivre.

Okay. Oui.

//–

J’ajoute ce lien : PKGS.org : Search Results for libperl avec les librairies déjà construite.

//–

Merci @Verner pour tes informations - çà m’éclaire plus.

Bonne journée.
Romain

Bon j’ai réussis à créer une librairie partagé de perl-5.36.1 tout simplement, normalement (çà fonctionne aussi avec perl-5.38.0.tar.gz) :smiley:

En recompilant perl avec l’option -Duseshrplib dans le Configure et en ajoutant LD_LIBRARY_PATH avant d’envoyer la commande pour « construire », les test et l’install ont réussis.

root@mail:/home/orj# wget https://www.cpan.org/src/5.0/perl-5.36.1.tar.gz
root@mail:/home/orj# tar -xzf perl-5.36.1.tar.gz
root@mail:/home/orj# cd perl-5.36.1
root@mail:/home/orj/perl-5.36.1# ./Configure -des -Duseshrplib -Dprefix=/usr -Dprivlib=/usr/share/perl5 
root@mail:/home/orj/perl-5.36.1# LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH 
root@mail:/home/orj/perl-5.36.1# echo $LD_LIBRARY_PATH;
/home/orj/perl-5.36.1:
root@mail:/home/orj/perl-5.36.1# make
root@mail:/home/orj/perl-5.36.1# make test
root@mail:/home/orj/perl-5.36.1# make install

Je le répète merci, encore @Verner pour les informations sur comment créer un fichier séparé d’installation / package de libperl.X.X.X.so

Merci.


Bon avec perl-5.38.0 j’ai une erreur lors des tests :

root@mail:/home/orj/perl-5.38.0# make test
[...]
t/porting/utils .................................................. skipped
Failed 1 test out of 2518, 99.96% okay.
        run/locale.t
### Since not all tests were successful, you may want to run some of
### them individually and examine any diagnostic messages they produce.
### See the INSTALL document's section on "make test".
### You have a good chance to get more information by running
###   ./perl harness
### in the 't' directory since most (>=80%) of the tests succeeded.
### You may have to set your dynamic library search path,
### LD_LIBRARY_PATH, to point to the build directory:
###   setenv LD_LIBRARY_PATH `pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
###   LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd t; ./perl harness
###   export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
### for csh-style shells, like tcsh; or for traditional/modern
### Bourne-style shells, like bash, ksh, and zsh, respectively.
Elapsed: 1000 sec
u=15.68  s=5.91  cu=645.76  cs=74.15  scripts=2518  tests=1183651
make: *** [makefile:825: test] Error 1
root@mail:/home/orj/perl-5.38.0#

root@mail:/home/orj/perl-5.38.0# cd t
root@mail:/home/orj/perl-5.38.0/t# perl run/locale.t
perl: symbol lookup error: perl: undefined symbol: PL_use_safe_putenv
root@mail:/home/orj/perl-5.38.0/t# !echo
echo $LD_LIBRARY_PATH;
/home/orj/perl-5.38.0:

Solution pour locale.t - Merci à @Verner (message 32) :

root@mail:~# export LANGUAGE=fr_FR.UTF-8
root@mail:~# export LC_ALL=fr_FR.UTF-8
root@mail:~# export LANG=fr_FR.UTF-8
root@mail:~# export LC_CTYPE=fr_FR.UTF-8

Qu’est-ce cela ?

J’ai pu voir quelque chose comme cela à un moment (mais c’était lors du upgrade de perl-5.36.1 pour tout vous dire) :

Running install for module 'Dpkg::Build::Info'
Checksum for /root/.cpan/sources/authors/id/G/GU/GUILLEM/Dpkg-1.21.22.tar.gz ok
Configuring G/GU/GUILLEM/Dpkg-1.21.22.tar.gz with Build.PL
Checking prerequisites...
  recommends:
    *  Algorithm::Merge is not installed
    *  File::FcntlLock is not installed
    *  Locale::gettext is not installed

ERRORS/WARNINGS FOUND IN PREREQUISITES.  You may wish to install the versions
of the modules indicated above before proceeding with this installation

:confused:

perl run/locale.t

Ça peut faire penser à un problème de locale.
Essaie
export env LC_ALL=C
export env LANG=C

j’ai fais les exports en fr_FR.UTF-8 çà fonctionne. Merci encore @Verner !

Merci, regardez… pour infos :

root@mail:/home/orj/perl-5.38.0# make test
[...]
Failed 1 test out of 2518, 99.96% okay.
        run/locale.t
make: *** [makefile:825: test] Error 1
L'erreur lors du test perl sur le fichier locale.t
root@mail:/home/orj/perl-5.38.0/t# perl run/locale.t
# locales available: C C.UTF-8 POSIX fr_FR.utf8
ok 1 - /il matching of [bracketed] doesn't skip POSIX class if fails individ char
ok 2 - /l matching of [bracketed] doesn't skip non-first POSIX class
# using non-C locale 'fr_FR.utf8'
ok 3 - retrieving current non-C LC_NUMERIC doesn't give 'C'
ok 4 - retrieving current non-C LC_ALL doesn't give 'C'
ok 5 - no locales where LC_NUMERIC breaks
ok 6 - LC_NUMERIC without environment nor setlocale() has no effect in any locale
ok 7 # skip no UTF-8 locale available where LC_NUMERIC radix isn't ASCII
# using the 'fr_FR.utf8' locale for LC_NUMERIC tests
ok 8 - format() does not look at LC_NUMERIC without 'use locale'
ok 9 - format() looks at LC_NUMERIC with 'use locale'
ok 10 - localeconv() looks at LC_NUMERIC with and without 'use locale'
ok 11 - format() does not look at LC_NUMERIC with 'use locale qw(:collate :characters :collate :ctype :monetary :time)'
ok 12 - format() looks at LC_NUMERIC with 'use locale'
ok 13 - format() looks at LC_NUMERIC with 'use locale ":!collate"'
ok 14 - format() looks at LC_NUMERIC with 'use locale ":not_collate"'
ok 15 - format() looks at LC_NUMERIC with 'use locale ":!characters"'
ok 16 - format() looks at LC_NUMERIC with 'use locale ":not_characters"'
ok 17 - format() looks at LC_NUMERIC with 'use locale ":!collate"'
ok 18 - format() looks at LC_NUMERIC with 'use locale ":not_collate"'
ok 19 - format() looks at LC_NUMERIC with 'use locale ":!ctype"'
ok 20 - format() looks at LC_NUMERIC with 'use locale ":not_ctype"'
ok 21 - format() looks at LC_NUMERIC with 'use locale ":!monetary"'
ok 22 - format() looks at LC_NUMERIC with 'use locale ":not_monetary"'
ok 23 - format() looks at LC_NUMERIC with 'use locale ":!time"'
ok 24 - format() looks at LC_NUMERIC with 'use locale ":not_time"'
ok 25 - format() looks at LC_NUMERIC with 'use locale ":numeric"'
ok 26 - too late to look at the locale at write() time
ok 27 - too late to ignore the locale at write() time
ok 28 - version does not clobber version
ok 29 - version does not clobber version (via eval)
ok 30 - sprintf() and printf() look at LC_NUMERIC regardless of constant folding
ok 31 - Uses the above test to verify that on Windows the system default locale has lower priority than LC_NUMERIC
ok 32 - LANG is used if LC_ALL, LC_NUMERIC are invalid
not ok 33 - C locale is used if LC_ALL, LC_NUMERIC, LANG are invalid
# To see details change this .t, do not close STDERR
ok 34 - No compile error on v-strings when setting the locale to non-dot radix at compile time when default environment has non-dot radix
ok 35 - Radix print properly in locale scope, and without
ok 36 - Can do math when radix is a comma
ok 37 # skip Perl not compiled with 'useithreads'
ok 38 - POSIX::strtod() uses underlying locale
ok 39 - In setting complicated invalid LC_ALL, final individ category doesn't need a ';'
ok 40 - In setting complicated valid LC_ALL, final individ category doesn't need a ';'
ok 41 # skip didn't find a suitable locale
ok 42 - check that setlocale overrides startup
ok 43 - check that illegal startup environment falls back
1..43
root@mail:/home/orj/perl-5.38.0/t#

Après les exports configurés :

root@mail:/home/orj/perl-5.38.0# echo $LC_ALL

root@mail:/home/orj/perl-5.38.0# echo $LANG
fr_FR.UTF-8
root@mail:/home/orj/perl-5.38.0/t# export LANGUAGE=fr_FR.UTF-8
root@mail:/home/orj/perl-5.38.0/t# export LC_ALL=fr_FR.UTF-8
root@mail:/home/orj/perl-5.38.0/t# export LANG=fr_FR.UTF-8
root@mail:/home/orj/perl-5.38.0/t# export LC_CTYPE=fr_FR.UTF-8
root@mail:/home/orj/perl-5.38.0/t#
root@mail:/home/orj/perl-5.38.0/t# perl run/locale.t
ok 1 - /il matching of [bracketed] doesn't skip POSIX class if fails individ char
ok 2 - /l matching of [bracketed] doesn't skip non-first POSIX class
# using non-C locale 'aa_DJ'
ok 3 - retrieving current non-C LC_NUMERIC doesn't give 'C'
ok 4 - retrieving current non-C LC_ALL doesn't give 'C'
ok 5 - no locales where LC_NUMERIC breaks
ok 6 - LC_NUMERIC without environment nor setlocale() has no effect in any locale
ok 7 - UTF-8 locale 'ps_AF' with non-ASCII radix is marked UTF-8
# using the 'agr_PE' locale for LC_NUMERIC tests
ok 8 - format() does not look at LC_NUMERIC without 'use locale'
ok 9 - format() looks at LC_NUMERIC with 'use locale'
ok 10 - localeconv() looks at LC_NUMERIC with and without 'use locale'
ok 11 - format() does not look at LC_NUMERIC with 'use locale qw(:collate :characters :collate :ctype :monetary :time)'
ok 12 - format() looks at LC_NUMERIC with 'use locale'
ok 13 - format() looks at LC_NUMERIC with 'use locale ":!collate"'
ok 14 - format() looks at LC_NUMERIC with 'use locale ":not_collate"'
ok 15 - format() looks at LC_NUMERIC with 'use locale ":!characters"'
ok 16 - format() looks at LC_NUMERIC with 'use locale ":not_characters"'
ok 17 - format() looks at LC_NUMERIC with 'use locale ":!collate"'
ok 18 - format() looks at LC_NUMERIC with 'use locale ":not_collate"'
ok 19 - format() looks at LC_NUMERIC with 'use locale ":!ctype"'
ok 20 - format() looks at LC_NUMERIC with 'use locale ":not_ctype"'
ok 21 - format() looks at LC_NUMERIC with 'use locale ":!monetary"'
ok 22 - format() looks at LC_NUMERIC with 'use locale ":not_monetary"'
ok 23 - format() looks at LC_NUMERIC with 'use locale ":!time"'
ok 24 - format() looks at LC_NUMERIC with 'use locale ":not_time"'
ok 25 - format() looks at LC_NUMERIC with 'use locale ":numeric"'
ok 26 - too late to look at the locale at write() time
ok 27 - too late to ignore the locale at write() time
ok 28 - version does not clobber version
ok 29 - version does not clobber version (via eval)
ok 30 - sprintf() and printf() look at LC_NUMERIC regardless of constant folding
ok 31 - Uses the above test to verify that on Windows the system default locale has lower priority than LC_NUMERIC
ok 32 - LANG is used if LC_ALL, LC_NUMERIC are invalid
ok 33 - C locale is used if LC_ALL, LC_NUMERIC, LANG are invalid
ok 34 - No compile error on v-strings when setting the locale to non-dot radix at compile time when default environment has non-dot radix
ok 35 - Radix print properly in locale scope, and without
ok 36 - Can do math when radix is a comma
ok 37 # skip Perl not compiled with 'useithreads'
ok 38 - POSIX::strtod() uses underlying locale
ok 39 - In setting complicated invalid LC_ALL, final individ category doesn't need a ';'
ok 40 - In setting complicated valid LC_ALL, final individ category doesn't need a ';'
ok 41 - check for failed assertion
ok 42 - check that setlocale overrides startup
ok 43 - check that illegal startup environment falls back
1..43
root@mail:/home/orj/perl-5.38.0/t#

J’ai réussis à remettre le système avec perl fonctionnel, parfait.

root@mail:/home/orj# perl -MCPAN -e upgrade
Reading '/root/.cpan/Metadata'
  Database was generated on Wed, 09 Aug 2023 11:53:58 GMT

Package namespace         installed    latest  in CPAN file
Archive::Tar                   2.40      3.02  BINGOS/Archive-Tar-3.02.tar.gz
CPAN::Meta::Requirements      2.140     2.143  RJBS/CPAN-Meta-Requirements-2.143.tar.gz
Compress::Raw::Bzip2      2.204_001     2.206  PMQS/Compress-Raw-Bzip2-2.206.tar.gz
Compress::Raw::Zlib       2.204_001     2.206  PMQS/Compress-Raw-Zlib-2.206.tar.gz
ExtUtils::Manifest             1.73      1.75  ETHER/ExtUtils-Manifest-1.75.tar.gz
HTTP::Tiny                    0.086     0.088  DAGOLDEN/HTTP-Tiny-0.088.tar.gz
IO::Socket::IP              0.41_01      0.42  PEVANS/IO-Socket-IP-0.42.tar.gz
Math::BigInt               1.999837  1.999839  PJACKLAM/Math-BigInt-1.999839.tar.gz
Math::BigInt::FastCalc       0.5013    0.5014  PJACKLAM/Math-BigInt-FastCalc-0.5014.tar.gz
Module::CoreList          5.20230520 5.20230720  BINGOS/Module-CoreList-5.20230720.tar.gz
Module::Metadata           1.000037  1.000038  ETHER/Module-Metadata-1.000038.tar.gz
Pod::Simple                    3.43      3.45  KHW/Pod-Simple-3.45.tar.gz
Socket                        2.036     2.037  PEVANS/Socket-2.037.tar.gz
Test::Harness                  3.44      3.46  LEONT/Test-Harness-3.46.tar.gz
Test::Simple               1.302194  1.302195  EXODIST/Test-Simple-1.302195.tar.gz
Time::Local                    1.30      1.35  DROLSKY/Time-Local-1.35.tar.gz
perlfaq                   5.20210520 5.20230701  ETHER/perlfaq-5.20230701.tar.gz
Compress::Zlib                2.204     2.206  PMQS/IO-Compress-2.206.tar.gz
Text::Tabs                2021.0814 2023.0511  ARISTOTLE/Text-Tabs+Wrap-2023.0511.tar.gz
3 installed modules have no parsable version number
(use 'o conf show_unparsable_versions 1' to show them)
[...]
ok is up to date (1.302195).
root@mail:/home/orj#
root@mail:/home/orj# perl -MCPAN -e upgrade
Reading '/root/.cpan/Metadata'
  Database was generated on Wed, 09 Aug 2023 11:53:58 GMT
All modules are up to date for /./
3 installed modules have no parsable version number
(use 'o conf show_unparsable_versions 1' to show them)
root@mail:/home/orj#

Et la version perl avec librairie partagée : libperl=libperl.so (peut-être faire des liens symboliques)

root@mail:/home/orj# perl -V
Summary of my perl5 (revision 5 version 38 subversion 0) configuration:

  Platform:
    osname=linux
    osvers=5.4.0-153-generic
    archname=x86_64-linux
    uname='linux mail 5.4.0-153-generic #170-ubuntu smp fri jun 16 13:43:31 utc 2023 x86_64 x86_64 x86_64 gnulinux '
    config_args='-des -Duseshrplib -Dprefix=/usr'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
  Compiler:
    cc='cc'
    ccflags ='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
    optimize='-O2'
    cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    ccversion=''
    gccversion='9.4.0'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='cc'
    ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib/x86_64-linux-gnu /usr/lib /usr/lib64
    libs=-lpthread -ldb -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -ldl -lm -lcrypt -lutil -lc
    libc=libc-2.31.so
    so=so
    useshrplib=true
    libperl=libperl.so
    gnulibc_version='2.31'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.38.0/x86_64-linux/CORE'
    cccdlflags='-fPIC'
    lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector-strong'

Characteristics of this binary (from libperl):
  Compile-time options:
    HAS_LONG_DOUBLE
    HAS_STRTOLD
    HAS_TIMES
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_HASH_FUNC_SIPHASH13
    PERL_HASH_USE_SBOX32
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_USE_SAFE_PUTENV
    USE_64_BIT_ALL
    USE_64_BIT_INT
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
  Built under linux
  Compiled at Aug  9 2023 21:31:46
  @INC:
    /usr/lib/perl5/site_perl/5.38.0/x86_64-linux
    /usr/lib/perl5/site_perl/5.38.0
    /usr/lib/perl5/5.38.0/x86_64-linux
    /usr/lib/perl5/5.38.0
    /usr/lib/perl5/site_perl/5.36.1
    /usr/lib/perl5/site_perl
root@mail:/home/orj#

Sinon j’ai fais des liens symboliques - je ne sais pas si c’est obligatoire.

root@mail:/home/orj# ln -s /usr/lib/perl5/5.38.0/x86_64-linux/CORE/libperl.so /usr/lib/x86_64-linux-gnu/libperl.so.5.38.0
root@mail:/home/orj# cd /usr/lib/x86_64-linux-gnu/
root@mail:/usr/lib/x86_64-linux-gnu# ln -s libperl.so.5.38.0 libperl.so.5.38

root@mail:/usr/lib/x86_64-linux-gnu# ls -l /usr/lib/x86_64-linux-gnu/libperl*
lrwxrwxrwx 1 root root      17 mai   23 19:17 /usr/lib/x86_64-linux-gnu/libperl.so.5.30 -> libperl.so.5.30.0
-rw-r--r-- 1 root root 3468144 mai   23 19:17 /usr/lib/x86_64-linux-gnu/libperl.so.5.30.0
lrwxrwxrwx 1 root root      17 août  10 01:31 /usr/lib/x86_64-linux-gnu/libperl.so.5.38 -> libperl.so.5.38.0*
lrwxrwxrwx 1 root root      50 août  10 01:30 /usr/lib/x86_64-linux-gnu/libperl.so.5.38.0 -> /usr/lib/perl5/5.38.0/x86_64-linux/CORE/libperl.so*
RienÀVoir.. erreur corrigée

J’en ai une sympat (après make, make test, make install réussis) :

root@mail:/home/orj/perl-5.38.0# perl -V
Undefined subroutine &Config::_V called.

J’adore : perl -V Undefined subroutine - Google Suche. → Environ 0 résultats (0,25 secondes)

root@mail:/home/orj/perl-5.38.0# perl -v

This is perl 5, version 38, subversion 0 (v5.38.0) built for x86_64-linux

Copyright 1987-2023, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at https://www.perl.org/, the Perl Home Page.

root@mail:/home/orj/perl-5.38.0#

Bonjour,

Sinon pour mon information personnelle,
je souhaiterais faire des paquets debian/ubuntu (truc que tout le monde sais faire) de perl :

Un paquet perl-base.deb (Version: 5.38.0myself0.1), perl-modules-5.38.0.deb, libperl5.38.0.deb

Qui aurait la procédure ? (je vais lire de la documentations, à demain).

perl (Version: 5.30.0-9ubuntu0.4)-> Depends:

  1. perl-base (= 5.30.0-9ubuntu0.4),
  2. perl-modules-5.30 (>= 5.30.0-9ubuntu0.4),
  3. libperl5.30 (= 5.30.0-9ubuntu0.4)
Provides (Fournit - Est-ce que cela signifie "est utilisé par :")

perl (Version: 5.30.0-9ubuntu0.4) → Provides:

  • libansicolor-perl (= 4.06),
  • libarchive-tar-perl (= 2.32),
  • libattribute-handlers-perl (= 1.01),
  • libautodie-perl (= 2.29-2),
  • libcompress-raw-bzip2-perl (= 2.084),
  • libcompress-raw-zlib-perl (= 2.084),
  • libcompress-zlib-perl (= 2.084),
  • libcpan-meta-perl (= 2.150010),
  • libcpan-meta-requirements-perl (= 2.140),
  • libcpan-meta-yaml-perl (= 0.018),
  • libdigest-md5-perl (= 2.55),
  • libdigest-perl (= 1.17.01),
  • libdigest-sha-perl (= 6.02),
  • libencode-perl (= 3.01),
  • libexperimental-perl (= 0.020),
  • libextutils-cbuilder-perl (= 0.280231),
  • libextutils-command-perl (= 7.34),
  • libextutils-install-perl (= 2.14),
  • libextutils-parsexs-perl (= 3.400000),
  • libfile-spec-perl (= 3.7800),
  • libhttp-tiny-perl (= 0.076),
  • libi18n-langtags-perl (= 0.43),
  • libio-compress-base-perl (= 2.084),
  • libio-compress-bzip2-perl (= 2.084),
  • libio-compress-perl (= 2.084),
  • libio-compress-zlib-perl (= 2.084),
  • libio-zlib-perl (= 1.10),
  • libjson-pp-perl (= 4.02000),
  • liblocale-maketext-perl (= 1.29),
  • liblocale-maketext-simple-perl (= 0.21.01),
  • libmath-bigint-perl (= 1.999816),
  • libmath-complex-perl (= 1.5901),
  • libmime-base64-perl (= 3.15),
  • libmodule-corelist-perl (= 5.20190522),
  • libmodule-load-conditional-perl (= 0.68),
  • libmodule-load-perl (= 0.34),
  • libmodule-metadata-perl (= 1.000036),
  • libnet-perl (= 1:3.11),
  • libnet-ping-perl (= 2.71),
  • libparams-check-perl (= 0.38),
  • libparent-perl (= 0.237),
  • libparse-cpan-meta-perl (= 2.150010),
  • libperl-ostype-perl (= 1.010),
  • libpod-escapes-perl (= 1.07),
  • libpod-parser-perl (= 1.63),
  • libpod-simple-perl (= 3.35),
  • libstorable-perl (= 3.15),
  • libsys-syslog-perl (= 0.35),
  • libtest-harness-perl (= 3.42),
  • libtest-simple-perl (= 1.302162),
  • libtest-tester-perl (= 1.302162),
  • libtest-use-ok-perl (= 1.302162),
  • libthread-queue-perl (= 3.13),
  • libthreads-perl (= 2.22),
  • libthreads-shared-perl (= 1.60),
  • libtime-hires-perl (= 1.9760),
  • libtime-local-perl (= 1.2800),
  • libtime-piece-perl (= 1.3300),
  • libunicode-collate-perl (= 1.27),
  • libversion-perl (= 1:0.9924),
  • libversion-requirements-perl, podlators-perl (= 4.11)

perl-base → Pre-Depends :

  1. libc6 (>= 2.29),
  2. libcrypt1 (>= 1:4.1.0),
  3. dpkg (>= 1.17.17)
Provides (Fournit - Est-ce que cela signifie "est utilisé par :")

perl-base → Provides:

  1. libfile-path-perl (= 2.16),
  2. libfile-temp-perl (= 0.2309),
  3. libio-socket-ip-perl (= 0.39),
  4. libscalar-list-utils-perl (= 1:1.50),
  5. libsocket-perl (= 2.027),
  6. libxsloader-perl (= 0.30),
  7. perlapi-5.30.0

perl-modules-5.30 → Pre-Depends:

  1. Pre-Depends: dpkg (>= 1.17.17)

perl-modules-5.30 → Depends:

  1. perl-base (>= 5.30.0-1)

perl-modules-5.30 → Recommends:

  1. perl (>= 5.30.0-1)

perl-modules-5.30 → Conflicts:

  1. perl-modules (<< 5.22.0~)

libperl5.30 → Depends :

  1. libbz2-1.0,
  2. libc6 (>= 2.29),
  3. libcrypt1 (>= 1:4.1.0),
  4. libdb5.3,
  5. libgdbm-compat4 (>= 1.18-3),
  6. libgdbm6 (>= 1.18-3),
  7. zlib1g (>= 1:1.2.2.3),
  8. perl-modules-5.30 (>= 5.30.0-9ubuntu0.4)

:wink:

Merci à vous tous.

Bonne journée.

Salutations,
Romain


Test à la c** !

A vos humbles avis - Est-ce que je peut faire quelque chose comme cela (comme pour le kernel) – je ne pense pas :

Avec des les commandes « deb-pkg » et/ou « bindeb-pkg » par exemple (je vais chercher de la documentation) :

make deb-pkg LOCALVERSION=-myself0.1 KDEB_PKGVERSION=$(make kernelversion)-1
make bindeb-pkg LOCALVERSION=-myself0.1 KDEB_PKGVERSION=$(make kernelversion)-2

Je ne sais pas du tout ce que ces commandes vont me créer… sûrement pas les 3 ou 4 fichiers liés à perl ; peut-être.

Je sais – c’est du grand n’importe quoi.

Bon j’ai la réponse :

root@mail:/home/orj/perl-5.38.0# make deb-pkg LOCALVERSION=-myself0.1 KDEB_PKGVERSION=$(make kernelversion)-1
make: *** No rule to make target 'kernelversion'.  Stop.
make: *** No rule to make target 'deb-pkg'.  Stop.

root@mail:/home/orj/perl-5.38.0# make bindeb-pkg LOCALVERSION=-myself0.1
make: *** No rule to make target 'bindeb-pkg'.  Stop.

Ils auraient pût mettre une règle pour deb-pkg et bindeb-pkg dans le « make de perl » une fois que l’installation a réussis, histoire de se créer des paquets debian/ubuntu…

Ce serait une bonne idée à vos humbles avis :wink: passez le mot.

Qu’est ce que çà nous faciliterait la Vie… dirais-je !


Je cherche…

Bonjour,

j’ai trouvé cette « documentation » qui m’explique qu’il y a une manière pour créer un paquet debian « PERL » à partir des sources (PDF page 15 / 90).

apt install dh-make-perl

Il y a une commande « dh-make-perl » pour créer un package « .deb » de Perl.
Il y a aussi une commande « dh-make-php » pour créer un package « .deb » de PHP.

Le module Perl : dh-make-perl - Create debian source packages from Perl modules (DhMakePerl.pm) - metacpan.org

Infos complémentaire :

Sinon j’ai sûrement trouvé mon bonheur par ici : perl - Debian Package Tracker, il y a le fichiers :

  1. perl_5.38.0-1.dsc → « .dsc, utilisez dget sur ce lien pour récupérer le paquet source) »
  2. changelog-5.38.0-1
  3. copyright-5.38.0-1
  4. rules-5.38.0-1
  5. control-5.38.0-1

Je pense que cela peut m’aider pour créer un paquet « zimbra-perl-base en version 5.38.x » . Histoire d’apprendre.
Et, en plus, oui c’est bien pour çà m’sieur @Clochette :slight_smile: pour faire fonctionner Mail::DMARC dans mon serveur de mails « Zimbra Open Source Collaboration ».
J’ai lu ici (perl-base) qu’il utilise la version par default (je pense celle de l’APT, du système). J’en sais trop rien, mais çà doit être çà.

zimbra-packages-perl

Zimbra > Packages > perl-versions.def
Zimbra > Packages > zimbra-perl-module-reqs.txt
Zimbra > Packages > zimbra-perl-usage.txt

J’ajoute ce fichier texte « pour/de moi-même » :face_with_raised_eyebrow: - Les autres paquets seront peut-être « compatible » avec un Perl 5.36/5.38 – je verrais bien :wink:

modules+debian+perl

Et j’ajoute ces 2 fichiers texte : « debian-packages-perl.txt » + « create-pkg-perl.txt »

:wink:

Bonne soirée à vous.
Romain