233 lines
5.9 KiB
Markdown
233 lines
5.9 KiB
Markdown
# Perl (Homebrew)
|
|
|
|
|
|
|
|
On peut installer une version plus récente de Perl avec **Homebrew**:
|
|
|
|
```bash
|
|
$ brew install perl
|
|
```
|
|
|
|
```bash
|
|
$ brew info perl
|
|
zsh: correct 'perl' to 'perl5' [nyae]? n
|
|
|
|
perl: stable 5.30.0 (bottled), HEAD
|
|
Highly capable, feature-rich programming language
|
|
https://www.perl.org/
|
|
/usr/local/Cellar/perl/5.30.0 (2,440 files, 61.8MB) *
|
|
Poured from bottle on 2019-08-04 at 13:32:46
|
|
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/perl.rb
|
|
==> Options
|
|
--HEAD
|
|
Install HEAD version
|
|
==> Caveats
|
|
By default non-brewed cpan modules are installed to the Cellar. If you wish
|
|
for your modules to persist across updates we recommend using `local::lib`.
|
|
|
|
You can set that up like this:
|
|
PERL_MM_OPT="INSTALL_BASE=$HOME/perl5" cpan local::lib
|
|
echo 'eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib=$HOME/perl5)"' >> ~/.zshrc
|
|
```
|
|
|
|
```bash
|
|
$ which perl
|
|
/usr/local/bin/perl
|
|
|
|
$ perl -v
|
|
|
|
This is perl 5, version 30, subversion 0 (v5.30.0) built for darwin-thread-multi-2level
|
|
|
|
Copyright 1987-2019, 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 http://www.perl.org/, the Perl Home Page.
|
|
```
|
|
|
|
#### cpan:
|
|
|
|
**cpan** gère les modules Perl.
|
|
|
|
```bash
|
|
$ cpan
|
|
Loading internal logger. Log::Log4perl recommended for better logging
|
|
|
|
CPAN.pm requires configuration, but most of it can be done automatically.
|
|
If you answer 'no' below, you will enter an interactive dialog for each
|
|
configuration option instead.
|
|
|
|
Would you like to configure as much as possible automatically? [yes] yes
|
|
|
|
|
|
Autoconfiguration complete.
|
|
|
|
commit: wrote '/Users/bruno/.cpan/CPAN/MyConfig.pm'
|
|
|
|
You can re-run configuration any time with 'o conf init' in the CPAN shell
|
|
Terminal does not support AddHistory.
|
|
|
|
To fix enter> install Term::ReadLine::Perl
|
|
|
|
|
|
cpan shell -- CPAN exploration and modules installation (v2.22)
|
|
Enter 'h' for help.
|
|
```
|
|
|
|
Sans argument, la commande **cpan** ouvre un shell:
|
|
|
|
```bash
|
|
$ cpan
|
|
Loading internal logger. Log::Log4perl recommended for better logging
|
|
|
|
cpan shell -- CPAN exploration and modules installation (v2.27)
|
|
Enter 'h' for help.
|
|
|
|
cpan[1]> h
|
|
```
|
|
|
|
```bash
|
|
cpan[1]> h
|
|
|
|
Display Information (ver 2.27)
|
|
command argument description
|
|
a,b,d,m WORD or /REGEXP/ about authors, bundles, distributions, modules
|
|
i WORD or /REGEXP/ about any of the above
|
|
ls AUTHOR or GLOB about files in the author's directory
|
|
(with WORD being a module, bundle or author name or a distribution
|
|
name of the form AUTHOR/DISTRIBUTION)
|
|
|
|
Download, Test, Make, Install...
|
|
get download clean make clean
|
|
make make (implies get) look open subshell in dist directory
|
|
test make test (implies make) readme display these README files
|
|
install make install (implies test) perldoc display POD documentation
|
|
|
|
Upgrade installed modules
|
|
r WORDs or /REGEXP/ or NONE report updates for some/matching/all
|
|
upgrade WORDs or /REGEXP/ or NONE upgrade some/matching/all modules
|
|
|
|
Pragmas
|
|
force CMD try hard to do command fforce CMD try harder
|
|
notest CMD skip testing
|
|
|
|
Other
|
|
h,? display this menu ! perl-code eval a perl command
|
|
o conf [opt] set and query options q quit the cpan shell
|
|
reload cpan load CPAN.pm again reload index load newer indices
|
|
autobundle Snapshot recent latest CPAN uploads
|
|
```
|
|
|
|
La commande **cpan** peut aussi s'utiliser avec arguments:
|
|
|
|
|
|
|
|
Avec <u>Perl installé via homebrew</u>, les modules sont installés dans Cellar (`Installing /usr/local/Cellar/perl/5.30.0/lib/perl5/site_perl/5.30.0/CPAN/DistnameInfo.pm`). Ils sont donc perdu à chaque mise-à-jour de Perl.
|
|
|
|
Il est donc conseillé d'utiliser `local::lib`
|
|
|
|
```bash
|
|
PERL_MM_OPT="INSTALL_BASE=$HOME/perl5" cpan local::lib
|
|
echo 'eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib=$HOME/perl5)"' >> ~/.zshrc
|
|
|
|
# les dossiers suivants sont crées:
|
|
# $HOME/perl5/bin/
|
|
# $HOME/perl5/lib/
|
|
#
|
|
# à côté de $HOME/perl5/perlbrew/
|
|
```
|
|
|
|
Les modules sont alors installés ici `Installing /Users/bruno/perl5/lib/perl5/Log/Log4perl.pm`
|
|
|
|
|
|
|
|
##### Info sur un module: `cpan -D <module>`
|
|
|
|
```bash
|
|
$ cpan -D CPAN::DistnameInfo
|
|
Reading '/Users/bruno/.cpan/Metadata'
|
|
Database was generated on Tue, 17 Dec 2019 07:29:02 GMT
|
|
CPAN::DistnameInfo
|
|
-------------------------------------------------------------------------
|
|
CPAN: Module::CoreList loaded ok (v5.20190522)
|
|
(no description)
|
|
G/GB/GBARR/CPAN-DistnameInfo-0.12.tar.gz
|
|
/usr/local/Cellar/perl/5.30.0/lib/perl5/site_perl/5.30.0/CPAN/DistnameInfo.pm
|
|
Installed: 0.12
|
|
CPAN: 0.12 up to date
|
|
Graham Barr (GBARR)
|
|
gbarr@pobox.com
|
|
```
|
|
|
|
|
|
|
|
##### Liste des modules installés: `cpan -l`
|
|
|
|
```bash
|
|
$ cpan -l
|
|
Spiffy 0.46
|
|
YAML 1.29
|
|
CPAN::DistnameInfo 0.12
|
|
App::pmuninstall 0.30
|
|
Test::YAML 1.07
|
|
```
|
|
|
|
|
|
|
|
##### Désintaller un module:
|
|
|
|
Il n'y a pas de commande prévue pour ça.
|
|
|
|
On peut installer [pmuninstall](https://github.com/xaicron/pm-uninstall).
|
|
|
|
```bash
|
|
$ cpan -i App::pmuninstall
|
|
```
|
|
|
|
Puis pour désinstaller:
|
|
|
|
```bash
|
|
$ pm-uninstall -v App::cpnaminus
|
|
```
|
|
|
|
|
|
|
|
##### Modules mis-à-jour:
|
|
|
|
On peut installer [cpanoutdated](https://github.com/tokuhirom/cpan-outdated)
|
|
|
|
```bash
|
|
$ cpan -i App::cpanoutdated
|
|
```
|
|
|
|
et voir les modules 'outdated'
|
|
|
|
```bash
|
|
$ cpan-outdated -p
|
|
Compress::Raw::Bzip2
|
|
Compress::Raw::Zlib
|
|
Compress::Zlib
|
|
DB_File
|
|
|
|
$ cpan-outdated
|
|
P/PM/PMQS/Compress-Raw-Bzip2-2.093.tar.gz
|
|
P/PM/PMQS/Compress-Raw-Zlib-2.093.tar.gz
|
|
P/PM/PMQS/IO-Compress-2.093.tar.gz
|
|
P/PM/PMQS/DB_File-1.852.tar.gz
|
|
```
|
|
|
|
|
|
|
|
Il est recommandé d'installer les modules suivants:
|
|
|
|
- Term::ReadLine::Perl (réclamé par le shell cpan)
|
|
|
|
- CPAN::DistnameInfo (réclamé par l'installeur de module)
|
|
- Log::Log4perl
|
|
|
|
|
|
|
|
### |