Ito ang command na perlmacosx na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
perlmacosx - Perl sa ilalim ng Mac OS X
SINOPSIS
Maikling inilalarawan ng dokumentong ito ang Perl sa ilalim ng Mac OS X.
kulot -O http://www.cpan.org/src/perl-5.22.1.tar.gz
tar -xzf perl-5.22.1.tar.gz
cd perl-5.22.1
./Configure -des -Dprefix=/ usr / local /
gumawa
gumawa ng pagsubok
sudo gumawa ng pag-install
DESCRIPTION
Ang pinakabagong release ng Perl (5.22.1 sa pagsulat na ito) ay bubuo nang walang pagbabago sa ilalim ng lahat
mga bersyon ng Mac OS X mula 10.3 "Panther" pataas.
Upang makabuo ng iyong sariling bersyon ng Perl kakailanganin mo ang 'gumawa', na bahagi ng Apple's
mga tool ng developer - kilala rin bilang Xcode. Mula sa Mac OS X 10.7 "Lion" pataas, maaari itong maging
na-download nang hiwalay bilang bundle ng 'Command Line Tools' nang direkta mula sa
(kailangan mo ng isang libreng account para mag-log in), o bilang a
bahagi ng Xcode suite, malayang magagamit sa App Store. Ang Xcode ay isang medyo malaking app, kaya
maliban kung mayroon ka na nito o talagang gusto mo, pinapayuhan kang kunin ang 'Command Line
Tools' bundle nang hiwalay sa link sa itaas. Kung gusto mong gawin ito mula sa loob ng Xcode, pumunta
sa Xcode -> Mga Kagustuhan -> Mga Download at piliin ang opsyon na 'Command Line Tools'.
Sa pagitan ng Mac OS X 10.3 "Panther" at 10.6 "Snow Leopard", ang bundle ng 'Command Line Tools'
ay tinatawag na 'unix tools', at kadalasang binibigyan ng mga DVD sa pag-install ng Mac OS.
Ang mga naunang paglabas ng Mac OS X (10.2 "Jaguar" at mas luma) ay walang kasamang ganap na thread-
ligtas na libc, kaya hindi ganap na suportado ang threading. Gayundin, ang mga naunang release ay may kasamang buggy
libdb, kaya ang ilan sa mga pagsubok sa DB_File ay kilala na nabigo sa mga paglabas na iyon.
instalasyon Prefix
Ang default na lokasyon ng pag-install para sa release na ito ay gumagamit ng tradisyonal na direktoryo ng UNIX
layout sa ilalim ng /usr/local. Ito ang inirerekomendang lokasyon para sa karamihan ng mga user, at aalis
ang Perl na ibinigay ng Apple at ang mga module nito ay hindi nababagabag.
Paggamit ng prefix ng pag-install ng '/ usr' ay magreresulta sa isang layout ng direktoryo na sumasalamin doon
ng default na Perl ng Apple, na may mga pangunahing module na nakaimbak sa '/System/Library/Perl/${version}',
CPAN modules na nakaimbak sa '/Library/Perl/${version}', at ang pagdaragdag ng
'/Network/Library/Perl/${version}' sa @INC para sa mga module na nakaimbak sa isang file server
at ginagamit ng maraming Mac.
SDK suportahan
Una, i-export ang path sa SDK sa build environment:
i-export ang SDK=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk
Pakitiyak na ang bersyon ng SDK (ibig sabihin, ang mga numero bago ang '.sdk') ay tumutugma sa iyo
system's (sa kasong ito, Mac OS X 10.8 "Mountain Lion"), dahil posibleng magkaroon ng higit
kaysa sa isang naka-install na SDK. Tiyakin din na ang landas ay umiiral sa iyong system, at kung hindi
pakitiyak na ang SDK ay maayos na naka-install, dahil dapat itong kasama ng 'Command Line
Bundle ng mga tool na binanggit sa itaas. Panghuli, kung mayroon kang mas lumang Mac OS X (10.6 "Snow Leopard"
at sa ibaba) na nagpapatakbo ng Xcode 4.2 o mas mababa, ang SDK path ay maaaring katulad nito
'/Developer/SDKs/MacOSX10.3.9.sdk'.
Magagamit mo ang SDK sa pamamagitan ng pag-export ng ilang karagdagan sa 'ccflags' at '..flags' na config ng Perl
variable
./Configure -Accflags="-nostdinc -B$SDK/usr/include/gcc \
-B$SDK/usr/lib/gcc -isystem$SDK/usr/include \
-F$SDK/System/Library/Frameworks" \
-Aldflags="-Wl,-syslibroot,$SDK" \
-mula
pandaigdig binary suportahan
Tandaan: Mula sa Mac OS X 10.6 "Snow Leopard" pataas, sinusuportahan lang ng Apple ang Intel-based na hardware.
Nangangahulugan ito na maaari mong ligtas na laktawan ang seksyong ito maliban kung mayroon kang mas lumang Apple computer
tumatakbo sa ppc o gustong gumawa ng perl binary na may backwards compatibility.
Maaari mong i-compile ang perl bilang isang unibersal na binary (built para sa parehong ppc at intel). Sa Mac OS X
10.4 "Tiger", dapat mong i-export ang 'u' na variant ng SDK:
i-export ang SDK=/Developer/SDKs/MacOSX10.4u.sdk
Ang Mac OS X 10.5 "Leopard" at mas mataas ay hindi nangangailangan ng 'u' na variant.
Bilang karagdagan sa mga flag ng compiler na ginamit upang piliin ang SDK, idagdag din ang mga flag para sa paggawa
isang unibersal na binary:
./Configure -Accflags="-arch i686 -arch ppc -nostdinc -B$SDK/usr/include/gcc \
-B$SDK/usr/lib/gcc -isystem$SDK/usr/include \
-F$SDK/System/Library/Frameworks" \
-Aldflags="-arch i686 -arch ppc -Wl,-syslibroot,$SDK" \
-mula
Tandaan na ang mga setting ng compiler at linker na ito ay gagamitin din kapag bumubuo ng CPAN
mga module. Para ma-compile ang XS modules bilang isang unibersal na binary, anumang library na naka-link dito
dapat ding mga unibersal na binary. Ang mga library ng system na kasama ng Apple sa 10.4u
Ang SDK ay pangkalahatan, ngunit ang mga library na naka-install ng user ay maaaring kailangang muling i-install bilang
unibersal na binary.
64-bit PPC suportahan
Sundin ang mga tagubilin sa INSTALL upang bumuo ng perl na may suporta para sa 64-bit na mga integer
("use64bitint") o parehong 64-bit integer at 64-bit addressing ("use64bitall"). Nasa
sa huling kaso, ang resultang binary ay tatakbo lamang sa mga host na nakabase sa G5.
Ang suporta para sa 64-bit na pag-address ay eksperimental: ang ilang aspeto ng Perl ay maaaring tanggalin o
maraming surot. Tandaan ang mga mensahe na inilabas ni I-configure ang para sa karagdagang impormasyon. Mangyaring gamitin ang "perlbug"
upang magsumite ng ulat ng problema kung sakaling magkaroon ka ng mga paghihirap.
Kapag gumagawa ng 64-bit na mga module, responsibilidad mong tiyakin na naka-link sa labas
Ang mga aklatan at balangkas ay nagbibigay ng 64-bit na suporta: kung hindi, ang pagbuo ng module ay maaaring
mukhang magtagumpay, ngunit ang mga pagtatangkang gamitin ang module ay magreresulta sa run-time na dynamic na pag-link
mga pagkakamali, at mga kasunod na pagkabigo sa pagsubok. Maaari mong gamitin ang "file" upang matuklasan ang mga arkitektura
sinusuportahan ng isang library:
$ file libgdbm.3.0.0.dylib
libgdbm.3.0.0.dylib: Mach-O fat file na may 2 arkitektura
libgdbm.3.0.0.dylib (para sa architecture ppc): Mach-O dynamic na naka-link na nakabahaging library ppc
libgdbm.3.0.0.dylib (para sa arkitektura ppc64): Mach-O 64-bit na dynamic na naka-link na nakabahaging library ppc64
Tandaan na ang isyung ito ay humahadlang sa pagbuo ng maraming Macintosh-specific CPAN modules
("Mac::*"), dahil ang mga kinakailangang Apple frameworks ay hindi nagbibigay ng suporta sa PPC64. Katulad nito,
ang mga pag-download mula sa Fink o Darwinports ay malabong magbigay ng 64-bit na suporta; ang mga aklatan
dapat na muling itayo mula sa pinagmulan gamit ang naaangkop na mga flag ng compiler at linker. Para sa karagdagang
impormasyon, tingnan ang Apple's 64-Bit Pagbabagong-kalagayan patnubayan at
<http://developer.apple.com/documentation/Darwin/Conceptual/64bitPorting/index.html>.
libperl at Prebinding
Nagpapadala ang Mac OS X na may dynamic na load na libperl, ngunit ang default para sa release na ito ay sa
mag-compile ng isang static na libperl. Ang dahilan nito ay pre-binding. Ang mga dynamic na aklatan ay maaaring
pre-bound sa isang partikular na address sa memorya upang bawasan ang oras ng pagkarga. Upang gawin ito, isa
kailangang malaman ang lokasyon at laki ng lahat ng naunang na-load na mga aklatan. Apple
kinokolekta ang impormasyong ito bilang bahagi ng kanilang pangkalahatang proseso ng pagbuo ng OS, at sa gayon ay madali
access dito kapag gumagawa ng Perl, ngunit ang mga ordinaryong gumagamit ay kailangang pumunta sa isang mahusay na deal
pagsisikap na makuha ang impormasyong kailangan para sa pre-binding.
Maaari mong i-override ang default at bumuo ng isang nakabahaging libperl kung gusto mo
(I-configure ... -Duseshrplib).
Sa Mac OS X 10.4 "Tiger" at mas bago, halos walang performance penalty para sa hindi
prebound na mga aklatan. Ang mga naunang release ay magdaranas ng mas malaking oras ng pagkarga kaysa alinman sa
static na library, o pre-bound na dynamic na library ng Apple.
Ina-update ang Apple ni Perl
Sa isang salita - huwag, hindi bababa sa walang isang * napaka * magandang dahilan. Ang iyong mga script ay maaaring kasing
madaling magsimula sa "#!/usr/local/bin/perl" tulad ng sa "#!/usr/bin/perl". Mga script na ibinigay ng
Ang Apple at iba pang mga ikatlong partido bilang bahagi ng mga pakete ng pag-install at tulad ay mayroon sa pangkalahatan
nasubok lamang sa /usr/bin/perl na na-install ng Apple.
Kung nalaman mong kailangan mong i-update ang system Perl, isang isyu na dapat tandaan ay
ang tanong ng static vs. dynamic na mga aklatan. Kung mag-upgrade ka gamit ang default na static
libperl, makikita mo na ang dynamic na libperl na ibinigay ng Apple ay hindi tatanggalin. Kung
parehong library ay naroroon kapag ang isang application na nagli-link laban sa libperl ay binuo, ld
ay magli-link laban sa dynamic na library bilang default. Kaya, kung kailangan mong palitan ang Apple's
dynamic na libperl na may static na libperl, kailangan mong siguraduhing tanggalin ang mas lumang dynamic
library pagkatapos mong i-install ang update.
Kilala problema
Kung nag-install ka ng mga karagdagang aklatan tulad ng GDBM sa pamamagitan ng Fink (sa madaling salita, mayroon kang
mga aklatan sa ilalim /sw/lib), o libdlcompat sa / usr / local / lib, maaaring kailanganin mong maging extra
maingat sa pagpapatakbo ng I-configure upang hindi malito ang I-configure at Perl tungkol sa kung aling mga aklatan
gamitin. Ang pagiging nalilito ay lalabas halimbawa bilang mga "dyld" na mga error tungkol sa mga problema sa simbolo,
halimbawa sa panahon ng "gumawa ng pagsubok". Ang pinakaligtas na taya ay ang patakbuhin ang I-configure bilang
I-configure ... -Uloclibpth -Dlibpth=/ Usr / lib
para tingnan lang ang Configure sa mga library ng system. Kung mayroon kang karagdagang library
mga direktoryo na talagang gusto mong gamitin (tulad ng mas bagong Berkeley DB library sa pre-
Panther system), idagdag ang mga iyon sa libpth:
I-configure ... -Uloclibpth -Dlibpth='/ Usr / lib /opt/lib'
Ang default ng pagbuo ng Perl nang statically ay maaaring magdulot ng mga problema sa mga kumplikadong application tulad ng
Tk: sa kasong iyon, isaalang-alang ang pagbuo ng shared Perl
I-configure ... -Duseshrplib
ngunit tandaan na mayroong isang gastos sa pagsisimula na babayaran sa kasong iyon (tingnan sa itaas ang "libperl at
Prebinding").
Simula sa Tiger (Mac OS X 10.4), nagpadala ang Apple ng mga sirang locale file para sa eu_ES
lokal (Basque-Spain). Sa mga nakaraang release ng Perl, nagresulta ito sa mga pagkabigo sa
lib/lokal pagsusulit. Ang mga pagkabigo na ito ay napigilan sa kasalukuyang paglabas ng Perl ni
ginagawa ang pagsubok na huwag pansinin ang sirang lokal. Kung kailangan mong gamitin ang lokal na eu_ES, dapat mong gamitin
makipag-ugnayan sa suporta ng Apple.
Tsokolate
Mayroong dalawang paraan upang gamitin ang Cocoa mula sa Perl. PerlObjCBridge module ng Apple, kasama sa
Ang Mac OS X, ay maaaring gamitin ng mga standalone na script upang ma-access ang mga klase ng Foundation (ie non-GUI).
at mga bagay.
Ang isang alternatibo ay CamelBones, isang framework na nagbibigay-daan sa pag-access sa parehong Foundation at AppKit
mga klase at bagay, upang ang buong GUI application ay mabuo sa Perl. Ang CamelBones ay maaaring
matatagpuan sa SourceForge, sahttp://www.sourceforge.net/projects/camelbones/>.
Simula mula sa Sulatin nang padaskul-daskol at madalian
Sa kasamaang palad ito ay hindi na mahirap kahit papaano pamahalaan upang basagin ang isang Mac OS X Perl sa halip
grabe. Kung mabigo ang lahat at gusto mo talaga, TALAGA, magsimula sa simula at alisin
kahit na ang iyong pag-install ng Apple Perl (na naging sira kahit papaano), ang mga sumusunod
dapat gawin ito ng mga tagubilin. Pakiusap mag-isip dalawang beses bago sumusunod mga ito mga tagubilin: sila
ay magkano gaya ng pagsasagawa utak pagtitistis sa iyong sarili. Wala anesthesia. Gagawin namin hindi Dumating
upang ayusin ang iyong system kung gagawin mo ito.
Una, tanggalin ang libperl.dylib:
# cd /System/Library/Perl/darwin/CORE
# rm libperl.dylib
Pagkatapos ay tanggalin ang bawat .bundle na file na makikita saanman sa mga folder:
/System/Library/Perl
/Library/Perl
Maaari mong mahanap ang mga ito halimbawa sa pamamagitan ng
# find /System/Library/Perl /Library/Perl -name '*.bundle' -print
Pagkatapos nito maaari mong kopyahin ang Perl mula sa iyong operating system media (kakailanganin mo sa
hindi bababa sa /System/Library/Perl at /usr/bin/perl), o muling itayo ang Perl mula sa source code
gamit ang "I-configure -Dprefix=/ usr -Duseshrplib" TANDAAN: ang "-Dprefix=/ usr"para palitan ang
mas mahusay na gumagana ang system Perl sa Perl 5.8.1 at mas bago, sa Perl 5.8.0 ang mga setting ay
hindi masyadong tama.
"Pacifist" mula sa CharlesSoft (http://www.charlessoft.com/>) ay isang magandang paraan upang kunin ang
Perl binary mula sa OS media, nang hindi kinakailangang muling i-install ang buong OS.
Gamitin ang perlmacosx online gamit ang mga serbisyo ng onworks.net