Berhati-hatilah dengan keamanan: apa yang diperlukan untuk memastikan bahwa modul-modul yang belum dimodifikasi harus diunduh dengan cara yang aman dari situs tepercaya. Lihat jawaban saya tentang penggunaan cpan.
vinc17
Jawaban:
226
Di Unix :
biasanya Anda memulai cpan di shell Anda:
# cpan
dan ketik
install Chocolate::Belgian
atau dalam bentuk singkat:
cpan Chocolate::Belgian
Di Windows :
Jika Anda menggunakan ActivePerl pada Windows, PPM (Perl Package Manager) memiliki banyak fungsi yang sama dengan CPAN.pm.
Banyak distribusi mengirimkan banyak modul perl sebagai paket.
Debian / Ubuntu: apt-cache search 'perl$'
Arch Linux: pacman -Ss '^perl-'
Gentoo: kategori dev-perl
Anda harus selalu memilih mereka karena Anda mendapat manfaat dari pembaruan otomatis (keamanan) dan kemudahan penghapusan . Ini bisa sangat rumit dengan alat cpan itu sendiri.
Untuk Gentoo ada alat yang bagus bernama g-cpan yang membangun / menginstal modul dari CPAN dan membuat paket Gentoo ( ebuild ) untuk Anda.
Bentuk singkatnya hanya "cpan Chocolate :: Belgian" dari baris perintah :)
brian d foy
3
IIRC ActivePerl terbaru tidak lagi memiliki ppm baris perintah, sekarang membuka GUI mewah.
Kev
6
Hanya "ppm" membuka GUI, tetapi diikuti oleh perintah itu tetap di baris perintah. Jadi, "ppm help", "ppm install ...", dll.
Bill Ruppert
Perhatikan bahwa ppm menggunakan tanda hubung untuk pemisah jalur modul bukan titik dua ganda biasa. (Mungkin karena titik dua berarti drive dalam dos?) Itu membuat saya beberapa kali;)
Matthew Lock
3
@ MatthewLock: ppmmenggunakan tanda hubung -karena Anda menentukan distribusi yang ingin Anda instal, yang jauh lebih jujur. Misalnya, jika Anda menggunakan cpanuntuk menginstal LWP, LWP::Simpleatau LWP::UserAgentitu akan menginstal distribusi libwww-perluntuk Anda. Mayoritas distribusi berisi modul tunggal dengan nama yang setara, tetapi ada beberapa pengecualian seperti itu
Ini bagus untuk menginstal barang. Ini tidak menyediakan fungsi CPAN atau CPANPLUS yang lebih kompleks, sehingga mudah digunakan, asalkan Anda tahu modul mana yang ingin Anda instal. Jika Anda belum memiliki cpanminus, cukup ketik:
# cpan App::cpanminus
untuk menginstalnya.
Dimungkinkan juga untuk menginstalnya tanpa menggunakan cpan sama sekali. Prosedur bootstrap dasar adalah,
Menggunakan cpanuntuk menginstal App::cpanminusagak aneh. Instruksi instalasi normal melibatkan prosedur bootstrap untuk mengunduh sebagian dari itu dari cpanmin.us dan menggunakannya untuk menginstal sisanya. Ini menghindari konfigurasi cpandan pembuatan .cpandirektori tidak berguna (sesudahnya) .
Chas. Owens
Di Ubuntu, Anda cukup menginstal cpanminusdari terminal. Saya menemukan cpanmlebih baik daripada cpankarena itu tidak menempatkan log kesalahan di layar daripada menyimpannya dalam file log sementara dan memberikan jalan jika terjadi kesalahan.
user13107
Saya mendapatkan kesalahan ini ketika mencoba perintah Anda: Tidak dapat menemukan strict.pm di @INC (Anda mungkin perlu menginstal modul ketat) (@INC berisi: / etc / perl
IgorGanapolsky
29
Saya perhatikan beberapa orang menyarankan satu run cpan di bawah sudo. Dulu itu perlu untuk menginstal ke direktori sistem, tetapi versi modern dari shell CPAN memungkinkan Anda untuk mengonfigurasinya untuk menggunakan sudo hanya untuk menginstal. Ini jauh lebih aman, karena itu berarti tes tidak berjalan sebagai root.
Jika Anda memiliki shell CPAN lama, cukup instal cpan baru ("install CPAN") dan ketika Anda memuat shell, itu akan meminta Anda untuk mengkonfigurasi arahan baru ini.
Saat ini, ketika saya menggunakan sistem dengan CPAN lama, hal pertama yang saya lakukan adalah memperbarui shell dan mengaturnya untuk melakukan ini sehingga saya dapat melakukan sebagian besar pekerjaan cpan saya sebagai pengguna normal.
Juga, saya sangat menyarankan agar pengguna Windows menyelidiki strawberry Perl . Ini adalah versi Perl yang dikemas dengan shell CPAN yang sudah dikonfigurasi sebelumnya serta kompiler. Ini juga mencakup beberapa modul Perl yang sulit dikompilasi dengan dependensi pustaka C eksternal mereka, terutama XML :: Parser. Ini berarti Anda dapat melakukan hal yang sama seperti setiap pengguna Perl lainnya dalam hal menginstal modul, dan banyak hal cenderung "hanya bekerja" lebih sering.
@Lao Tzu: tidak, karena CPAN adalah modul inti Perl dan tidak tersedia sebagai paket DEB terpisah. Saya pikir dalam sebagian besar situasi bahkan lebih baik untuk digunakan App::cpanminus, itu adalah sukacita untuk menggunakannya. Philip Potter menyarankannya dalam jawabannya di sini dan Anda dapat mencoba Chas ini. Owens menjawab .
minggu
25
Jika Anda menggunakan Ubuntu dan Anda ingin menginstal modul perl pra-paket (misalnya, geo :: ipfree) coba ini:
$ apt-cache search perl geo :: ipfree
libgeo-ipfree-perl - Sebuah negara yang mencari modul Perl alamat ip
$ sudo apt-get install libgeo-ipfree-perl
Beberapa orang menyebutkan utilitas cpan, tetapi lebih dari sekadar memulai sebuah shell. Berikan saja modul yang ingin Anda instal dan biarkan berfungsi.
$prompt> cpan Foo::Bar
Jika Anda tidak memberikan argumen apa pun, ia akan memulai shell CPAN.pm. Ini berfungsi pada Unix, Mac, dan seharusnya baik-baik saja di Windows (terutama Strawberry Perl).
Ada beberapa hal lain yang dapat Anda lakukan dengan alat cpan juga. Berikut ringkasan dari fitur saat ini (yang mungkin lebih baru dari yang ada pada CPAN.pm dan perl):
-a
Creates the CPAN.pm autobundle with CPAN::Shell->autobundle.
-A module [ module ... ]
Shows the primary maintainers for the specified modules
-C module [ module ... ]
Show the Changes files for the specified modules
-D module [ module ... ]
Show the module details. This prints one line for each out-of-date module (meaning,
modules locally installed but have newer versions on CPAN). Each line has three columns:
module name, local version, and CPAN version.
-L author [ author ... ]
List the modules by the specified authors.
-h
Prints a help message.
-O
Show the out-of-date modules.
-r
Recompiles dynamically loaded modules with CPAN::Shell->recompile.
-v
Print the script version and CPAN.pm version.
Otto membuat saran yang bagus . Ini bekerja untuk Debian juga, serta turunan Debian lainnya. Bagian yang hilang adalah apa yang harus dilakukan ketika pencarian apt-cache tidak menemukan sesuatu.
Ini akan memberi Anda paket deb yang dapat Anda instal untuk mendapatkan Some :: Random :: Module. Salah satu manfaat besar di sini adalah halaman manual dan skrip sampel selain modul itu sendiri akan ditempatkan di lokasi pilihan distro Anda. Jika distro pernah keluar dengan paket resmi untuk versi Some :: Random :: Module yang lebih baru, itu akan diinstal secara otomatis ketika Anda ingin mendapatkan peningkatan.
Di atas adalah menginstal "installer nol modul konfigurasi CPAN" yang disebut cpanm. (Butuh beberapa menit untuk menginstal - jangan hancurkan prosesnya)
Banyak rekomendasi untuk CPAN.pm, yang sangat bagus, tetapi jika Anda menggunakan Perl 5.10maka Anda juga punya akses CPANPLUS.pmyang CPAN.pmlebih baik.
Dan, tentu saja, ini tersedia CPANuntuk orang yang masih menggunakan versi Perl yang lebih lama. Kenapa tidak mencoba:
Heh, itu lucu. Gunakan CPAN.pm untuk mengganti sendiri dengan CPANPLUS. :)
brian d foy
5
Sering kali itu terjadi bahwa perintah install cpan gagal dengan pesan seperti
"make test telah mengembalikan status buruk, tidak akan menginstal tanpa paksa"
Dalam hal ini, berikut adalah cara untuk menginstal modul:
Anda juga bisa mengatakan "$ cpan Foo :: Bar" untuk menginstal langsung dari baris perintah. Tidak diperlukan satu liner atau shell CPAN yang mewah. :)
brian d foy
3
Di Fedora Anda dapat menggunakan
# yum install foo
selama Fedora memiliki paket yang ada untuk modul.
Pada Fedora Linuxatau Enterprise Linux, yumjuga melacak dependensi perl library. Jadi, jika modul perl tersedia, dan beberapa paket rpm mengekspor ketergantungan itu, ia akan menginstal paket yang tepat untuk Anda.
yum install 'perl(Chocolate::Belgian)'
(kemungkinan besar paket perl-Chocolate-Belgia, atau bahkan paket ChocolateFactory)
Jika Anda ingin meletakkan modul baru ke lokasi kustom yang shell cpan Anda tidak dikonfigurasi untuk digunakan, maka mungkin, yang berikut ini akan berguna.
#wget <URL to the module.tgz>##unpack
perl Build.PL
./Build destdir=$HOME install_base=$HOME
./Build destdir=$HOME install_base=$HOME install
Banyak jawaban menyebutkan penggunaan cpanutilitas (yang menggunakan CPAN.pm) tanpa kata keamanan. Secara default, CPAN2.27 dan sebelumnya mengonfigurasi urllistuntuk menggunakan URL http (yaitu, http://www.cpan.org/ ), yang memungkinkan serangan MITM, dengan demikian tidak aman. Ini adalah apa yang digunakan untuk mengunduh CHECKSUMSfile, sehingga perlu diubah ke URL yang aman (mis. Https://www.cpan.org/ ).
Jadi, setelah menjalankan cpan dan menerima konfigurasi default, Anda perlu memodifikasi MyConfig.pmfile yang dihasilkan (path lengkap adalah output) dengan cara berikut. Menggantikan
'urllist'=>[q[http://www.cpan.org/]],
oleh
'urllist'=>[q[https://www.cpan.org/]],
Catatan: https tidak cukup; Anda juga membutuhkan situs web yang bisa Anda percayai. Jadi, berhati-hatilah jika Anda ingin memilih cermin sewenang-wenang.
Maka Anda bisa menggunakannya cpandengan cara biasa.
Laporan bug saya di rt.cpan.org tentang URL tidak aman.
@DaveEveritt Pengalihan dari http ke https hanya berguna untuk privasi, misalnya terhadap seseorang yang hanya dapat melihat data yang transit di jaringan. Tetapi jika seorang penyerang mengontrol jaringan (misalnya hotspot wifi publik atau beberapa jaringan lokal yang tidak terlindungi), serangan man-in-the-middle mungkin dilakukan, dan penyerang akan menggunakan servernya sendiri (jelas tidak https://www.cpan.org/).
vinc17
1
Di Windows dengan distribusi ActiveState Perl, gunakan perintah ppm .
Sepertinya Anda sudah mendapatkan jawaban Anda, tetapi saya pikir saya akan berpadu. Inilah yang saya lakukan di beberapa skrip di Ubuntu (atau server debian)
#!/usr/bin/perluse warnings;use strict;#I've gotten into the habit of setting this on all my scripts, prevents weird path issues if the script is not being run by root
$ENV{'PATH'}='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin';#Fill this with the perl modules required for your projectmy@perl= qw(LWP::Simple XML::LibXML MIME::Lite DBI DateTimeConfig::TinyProc::ProcessTable);
chomp(my $curl =`which curl`);if(!$curl){ system('apt-get install curl -y > /dev/null');}
chomp(my $cpanm = system('/bin/bash','-c','which cpanm &>/dev/null'));#installs cpanm if missingif($cpanm){ system('curl -s -L http://cpanmin.us | perl - --sudo App::cpanminus');}#loops through required modules and installs them if missingforeachmy $x (@perl){eval"use $x";if($@){
system("cpanm $x");eval"use $x";}}
Ini berfungsi baik untuk saya, mungkin ada sesuatu di sini yang dapat Anda gunakan.
cpan
.Jawaban:
Di Unix :
biasanya Anda memulai cpan di shell Anda:
# cpan
dan ketik
install Chocolate::Belgian
atau dalam bentuk singkat:
cpan Chocolate::Belgian
Di Windows :
Contoh:
# ppm
ppm> search net-smtp
ppm> install Net-SMTP-Multipart
lihat Bagaimana cara menginstal modul Perl? di FAQ CPAN
Banyak distribusi mengirimkan banyak modul perl sebagai paket.
apt-cache search 'perl$'
pacman -Ss '^perl-'
dev-perl
Anda harus selalu memilih mereka karena Anda mendapat manfaat dari pembaruan otomatis (keamanan) dan kemudahan penghapusan . Ini bisa sangat rumit dengan alat cpan itu sendiri.
Untuk Gentoo ada alat yang bagus bernama g-cpan yang membangun / menginstal modul dari CPAN dan membuat paket Gentoo ( ebuild ) untuk Anda.
sumber
ppm
menggunakan tanda hubung-
karena Anda menentukan distribusi yang ingin Anda instal, yang jauh lebih jujur. Misalnya, jika Anda menggunakancpan
untuk menginstalLWP
,LWP::Simple
atauLWP::UserAgent
itu akan menginstal distribusilibwww-perl
untuk Anda. Mayoritas distribusi berisi modul tunggal dengan nama yang setara, tetapi ada beberapa pengecualian seperti ituCoba Aplikasi :: cpanminus :
Ini bagus untuk menginstal barang. Ini tidak menyediakan fungsi CPAN atau CPANPLUS yang lebih kompleks, sehingga mudah digunakan, asalkan Anda tahu modul mana yang ingin Anda instal. Jika Anda belum memiliki cpanminus, cukup ketik:
untuk menginstalnya.
Dimungkinkan juga untuk menginstalnya tanpa menggunakan cpan sama sekali. Prosedur bootstrap dasar adalah,
Untuk informasi lebih lanjut, buka halaman App :: cpanminus dan lihat bagian instalasi.
sumber
cpan
untuk menginstalApp::cpanminus
agak aneh. Instruksi instalasi normal melibatkan prosedur bootstrap untuk mengunduh sebagian dari itu dari cpanmin.us dan menggunakannya untuk menginstal sisanya. Ini menghindari konfigurasicpan
dan pembuatan.cpan
direktori tidak berguna (sesudahnya) .cpanminus
dari terminal. Saya menemukancpanm
lebih baik daripadacpan
karena itu tidak menempatkan log kesalahan di layar daripada menyimpannya dalam file log sementara dan memberikan jalan jika terjadi kesalahan.Saya perhatikan beberapa orang menyarankan satu run cpan di bawah sudo. Dulu itu perlu untuk menginstal ke direktori sistem, tetapi versi modern dari shell CPAN memungkinkan Anda untuk mengonfigurasinya untuk menggunakan sudo hanya untuk menginstal. Ini jauh lebih aman, karena itu berarti tes tidak berjalan sebagai root.
Jika Anda memiliki shell CPAN lama, cukup instal cpan baru ("install CPAN") dan ketika Anda memuat shell, itu akan meminta Anda untuk mengkonfigurasi arahan baru ini.
Saat ini, ketika saya menggunakan sistem dengan CPAN lama, hal pertama yang saya lakukan adalah memperbarui shell dan mengaturnya untuk melakukan ini sehingga saya dapat melakukan sebagian besar pekerjaan cpan saya sebagai pengguna normal.
Juga, saya sangat menyarankan agar pengguna Windows menyelidiki strawberry Perl . Ini adalah versi Perl yang dikemas dengan shell CPAN yang sudah dikonfigurasi sebelumnya serta kompiler. Ini juga mencakup beberapa modul Perl yang sulit dikompilasi dengan dependensi pustaka C eksternal mereka, terutama XML :: Parser. Ini berarti Anda dapat melakukan hal yang sama seperti setiap pengguna Perl lainnya dalam hal menginstal modul, dan banyak hal cenderung "hanya bekerja" lebih sering.
sumber
install CPAN
dari mana?$sudo apt-get install cpan
?App::cpanminus
, itu adalah sukacita untuk menggunakannya. Philip Potter menyarankannya dalam jawabannya di sini dan Anda dapat mencoba Chas ini. Owens menjawab .Jika Anda menggunakan Ubuntu dan Anda ingin menginstal modul perl pra-paket (misalnya, geo :: ipfree) coba ini:
sumber
Beberapa orang menyebutkan utilitas cpan, tetapi lebih dari sekadar memulai sebuah shell. Berikan saja modul yang ingin Anda instal dan biarkan berfungsi.
Jika Anda tidak memberikan argumen apa pun, ia akan memulai shell CPAN.pm. Ini berfungsi pada Unix, Mac, dan seharusnya baik-baik saja di Windows (terutama Strawberry Perl).
Ada beberapa hal lain yang dapat Anda lakukan dengan alat cpan juga. Berikut ringkasan dari fitur saat ini (yang mungkin lebih baru dari yang ada pada CPAN.pm dan perl):
sumber
sudo perl -MCPAN -e 'install Foo'
sumber
Lihat juga Ya, bahkan Anda dapat menggunakan CPAN . Ini menunjukkan bagaimana Anda dapat menggunakan CPAN tanpa memiliki akses root atau sudo.
sumber
Otto membuat saran yang bagus . Ini bekerja untuk Debian juga, serta turunan Debian lainnya. Bagian yang hilang adalah apa yang harus dilakukan ketika pencarian apt-cache tidak menemukan sesuatu.
Maka setiap kali Anda memiliki modul acak yang ingin Anda instal:
Ini akan memberi Anda paket deb yang dapat Anda instal untuk mendapatkan Some :: Random :: Module. Salah satu manfaat besar di sini adalah halaman manual dan skrip sampel selain modul itu sendiri akan ditempatkan di lokasi pilihan distro Anda. Jika distro pernah keluar dengan paket resmi untuk versi Some :: Random :: Module yang lebih baru, itu akan diinstal secara otomatis ketika Anda ingin mendapatkan peningkatan.
sumber
Sudah dijawab dan diterima jawaban - tetapi tetap:
IMHO cara termudah memasang modul CPAN (pada sistem seperti unix, dan tidak tahu tentang keajaiban) adalah:
Di atas adalah menginstal "installer nol modul konfigurasi CPAN" yang disebut
cpanm
. (Butuh beberapa menit untuk menginstal - jangan hancurkan prosesnya)dan setelah - cukup:
sumber
Banyak rekomendasi untuk
CPAN.pm
, yang sangat bagus, tetapi jika Anda menggunakanPerl 5.10
maka Anda juga punya aksesCPANPLUS.pm
yangCPAN.pm
lebih baik.Dan, tentu saja, ini tersedia
CPAN
untuk orang yang masih menggunakan versi Perl yang lebih lama. Kenapa tidak mencoba:sumber
Sering kali itu terjadi bahwa perintah install cpan gagal dengan pesan seperti "make test telah mengembalikan status buruk, tidak akan menginstal tanpa paksa"
Dalam hal ini, berikut adalah cara untuk menginstal modul:
sumber
Di ubuntu, sebagian besar modul perl sudah dipaket, jadi pemasangannya jauh lebih cepat daripada kebanyakan sistem lain yang harus dikompilasi.
Untuk menginstal
Foo::Bar
di prompt perintah misalnya biasanya Anda hanya perlu:Sayangnya tidak semua modul mengikuti konvensi penamaan itu.
sumber
Bahkan harus bekerja:
sumber
Gunakan perintah cpan sebagai
cpan Modulename
Untuk menginstal dependensi secara otomatis ikuti yang berikut ini
Saya lebih suka App :: cpanminus , ia menginstal dependensi secara otomatis. Kerjakan saja
sumber
2 cara yang saya tahu:
MENGGUNAKAN PPM:
Dengan Windows (ActivePerl) saya telah menggunakan ppm
dari baris perintah ketik ppm. Pada prompt ppm ...
atau
untuk mendapatkan daftar modul foo yang tersedia. Ketik bantuan untuk semua perintah
MENGGUNAKAN CPAN:
Anda juga dapat menggunakan CPAN seperti ini ( * sistem nix ):
memberi Anda prompt
pada prompt ...
ketik h untuk mendapatkan daftar perintah untuk cpan
sumber
Di Fedora Anda dapat menggunakan
selama Fedora memiliki paket yang ada untuk modul.
sumber
Pada
Fedora Linux
atauEnterprise Linux
,yum
juga melacak dependensi perl library. Jadi, jika modul perl tersedia, dan beberapa paket rpm mengekspor ketergantungan itu, ia akan menginstal paket yang tepat untuk Anda.(kemungkinan besar paket perl-Chocolate-Belgia, atau bahkan paket ChocolateFactory)
sumber
Cara termudah bagi saya adalah ini:
a) deteksi / penyelesaian / pemasangan dependensi rekursif otomatis
b) ini shell onliner, bagus untuk setup-skrip
sumber
Jika Anda ingin meletakkan modul baru ke lokasi kustom yang shell cpan Anda tidak dikonfigurasi untuk digunakan, maka mungkin, yang berikut ini akan berguna.
sumber
Kadang-kadang Anda dapat menggunakan
yum search foo
untuk mencari modul perl relatif, lalu gunakanyum install xxx
untuk menginstal.sumber
Solusi aman
Banyak jawaban menyebutkan penggunaan
cpan
utilitas (yang menggunakanCPAN.pm
) tanpa kata keamanan. Secara default,CPAN
2.27 dan sebelumnya mengonfigurasiurllist
untuk menggunakan URL http (yaitu, http://www.cpan.org/ ), yang memungkinkan serangan MITM, dengan demikian tidak aman. Ini adalah apa yang digunakan untuk mengunduhCHECKSUMS
file, sehingga perlu diubah ke URL yang aman (mis. Https://www.cpan.org/ ).Jadi, setelah menjalankan cpan dan menerima konfigurasi default, Anda perlu memodifikasi
MyConfig.pm
file yang dihasilkan (path lengkap adalah output) dengan cara berikut. Menggantikanoleh
Catatan: https tidak cukup; Anda juga membutuhkan situs web yang bisa Anda percayai. Jadi, berhati-hatilah jika Anda ingin memilih cermin sewenang-wenang.
Maka Anda bisa menggunakannya
cpan
dengan cara biasa.Laporan bug saya di rt.cpan.org tentang URL tidak aman.
sumber
https://www.cpan.org/
).Di Windows dengan distribusi ActiveState Perl, gunakan perintah ppm .
sumber
Cukup mengeksekusi
cpan Foo::Bar
di shell akan melayani tujuan.sumber
Sepertinya Anda sudah mendapatkan jawaban Anda, tetapi saya pikir saya akan berpadu. Inilah yang saya lakukan di beberapa skrip di Ubuntu (atau server debian)
Ini berfungsi baik untuk saya, mungkin ada sesuatu di sini yang dapat Anda gunakan.
sumber