Questão Bagunçou a minha instalação perl no Mac OS X 10.6


Eu estraguei minha instalação perl no Mac OS X 10.6. Eu explicarei como:
Eu queria adicionar um pacote cpan para Bundle :: DBD :: mysql, cpan me disse para atualizar Bundle :: CPAN primeiro. Eu não pude por causa de permissões. Então eu sudoed perl -MCPAN -e shell e atualizado cpan, então eu tenho o pacote mysql, mas ele falhou alguns testes, que depois force a instalação (funciona btw). Então, por algum motivo, decidi reconstruir o pacote mysql. Isso levou muito tempo. Eventualmente, percebi que ele havia reconstruído muito, como o perldoc.

Agora, sempre que eu tento e executo perldoc eu não tenho permissão para fazê-lo, mas quando eu sudo perldoc me diz que não pode encontrá-lo.

dlamblins-macbook:~ dlamblin$ perldoc
-bash: /usr/bin/perldoc: Permission denied
dlamblins-macbook:~ dlamblin$ sudo perldoc
Password:
sudo: perldoc: command not found
dlamblins-macbook:~ dlamblin$ sudo /usr/bin/perldoc
Password:
sudo: /usr/bin/perldoc: command not found

Eu gostaria de reinstalar o perl de verdade da maneira que a Apple o instalou quando atualizei para o Snow Leopard (embora manter o DBD :: mysql seria bom), e eu não sei por onde começar. Eu não quero ir com algum sistema fink pacote ou portas estilo. Obtendo o último perl 5.10 seria um plus.


4


origem




Respostas:


Isso pode parecer que eu sou um Mac total Newb (embora eu tenha usado um Mac desde o LC), mas desde a instalação da atualização combinada para 10.6.2 não corrigir esse problema, mesmo que tenha sobrescrito os arquivos, percebi tardiamente que O botão "Reparar Permissões" do Utilitário de Disco consertaria isso. E isso aconteceu.

O estranho é o binário real /usr/bin/perldoc não foi tocado. Provavelmente tem algo a ver com um desses pacotes na saída.

Aqui está o que sai como material fixo (note que a última linha é uma? Para mim)

Repairing permissions for “Macintosh HD”
Permissions differ on "private/etc/postfix/main.cf.default", should be -rw-r--r-- , they are -r--r--r-- .
Repaired "private/etc/postfix/main.cf.default".
Permissions differ on "usr/bin/c2ph", should be -rwxr-xr-x , they are -rw-rw-rw- .
Repaired "usr/bin/c2ph".
Permissions differ on "usr/bin/config_data", should be -rwxr-xr-x , they are -r-xr-xr-x .
Repaired "usr/bin/config_data".
Permissions differ on "usr/bin/cpan", should be -rwxr-xr-x , they are -r-xr-xr-x .
Repaired "usr/bin/cpan".
Permissions differ on "usr/bin/enc2xs", should be -rwxr-xr-x , they are -r-xr-xr-x .
Repaired "usr/bin/enc2xs".
Permissions differ on "usr/bin/instmodsh", should be -rwxr-xr-x , they are -r-xr-xr-x .
Repaired "usr/bin/instmodsh".
Permissions differ on "usr/bin/piconv", should be -rwxr-xr-x , they are -r-xr-xr-x .
Repaired "usr/bin/piconv".
Permissions differ on "usr/bin/prove", should be -rwxr-xr-x , they are -r-xr-xr-x .
Repaired "usr/bin/prove".
Permissions differ on "usr/bin/shasum", should be -rwxr-xr-x , they are -r-xr-xr-x .
Repaired "usr/bin/shasum".
Permissions differ on "usr/share/derby", should be drwxr-xr-x , they are lrwxr-xr-x .
Repaired "usr/share/derby".
Permissions differ on "Library/Perl/5.10.0/darwin-thread-multi-2level/NetSNMP/default_store.pm", should be -rw-rw-r-- , they are -r--r--r-- .
Repaired "Library/Perl/5.10.0/darwin-thread-multi-2level/NetSNMP/default_store.pm".
Permissions differ on "Library/Perl/5.10.0/darwin-thread-multi-2level/auto/NetSNMP/default_store/autosplit.ix", should be -rw-rw-r-- , they are -r--r--r-- .
Repaired "Library/Perl/5.10.0/darwin-thread-multi-2level/auto/NetSNMP/default_store/autosplit.ix".
Permissions differ on "Library/Perl/5.10.0/darwin-thread-multi-2level/auto/NetSNMP/default_store/default_store.bundle", should be -rwxrwxr-x , they are -r-xr-xr-x .
Repaired "Library/Perl/5.10.0/darwin-thread-multi-2level/auto/NetSNMP/default_store/default_store.bundle".
Warning: SUID file "System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAgent" has been modified and will not be repaired.

Permissions repair complete

4





Tente usar Pacifista para executar o pacote Installer apropriado do seu disco 10.6. Não tenho certeza de qual pacote está fora do meu limite, mas o Pacifist permite que você navegue e pesquise os pacotes no disco. Eu não acredito que irá remover novos arquivos, mas ele irá restaurar sua instalação Perl para o padrão de trabalho. Você também pode extrair arquivos e pastas seletivamente.

Using Pacifist to search for "Perl" on the Mac OS X 10.6 disc.

Eu usei há alguns anos para fazer o controle de danos (com bastante sucesso, devo acrescentar) após um incidente bastante embaraçoso envolvendo sudo rm -fr /bin. Não pergunte.


3





Sim ... Disk Utilities "Reparar Permissões" funcionou para mim também. O mesmo problema ... instalou o módulo DBD :: mysql e preparou as permissões.


2





Você sempre pode baixar o perl mais recente de http://www.cpan.org/src/5.0/latest.tar.bz2.

Você precisará desarquivar e executar o Configure.

Eu pessoalmente geralmente prefiro ter minha própria instalação de perl, mesmo quando o sistema operacional básico inclui uma versão. Isso significa que meus scripts podem ser atualizados para versões posteriores na minha agenda, não para os mantenedores.


1



Não é uma boa idéia sobrescrever a instalação padrão do Perl por uma personalizada, já que atualizações de software e similares podem fazer suposições sobre o sistema padrão Perl. Se você for rolar seu próprio Perl, é melhor instalá-lo em / usr / local ou em outro local fora do caminho. Em qualquer caso, ele ainda terá que consertar seu sistema Perl. - Lawrence Velázquez
Eu não sobrescreveria a instalação padrão, eu quis dizer instalar uma nova instalação em um diretório separado. - gorilla
Peguei, mas isso ainda não conserta seu padrão Perl quebrado. - Lawrence Velázquez
Quanto a sobrescrever o perl padrão, veja stackoverflow.com/questions/1992720/… - Ether


talvez ajude a instalar a atualização mais recente sob http://support.apple.com/kb/DL959. Eu tive problemas enormes após uma restauração completa do sistema com a máquina do tempo. parece que isso corrompe muitas coisas e eu não poderia mais usar o quicklook além de outras coisas. Depois de reinstalar esta atualização, todas as funções são normais. com um pouco de sorte perl está nesta atualização.


1



Eu tentei isso e não funcionou. No entanto, ele consertou o misterioso plug-in flash que tinha sido a ruína do youtube (e de outros vídeos em flash) desde a atualização para a "estabilidade do plugin safari" melhorada. A reinstalação resolveu isso, mas não meu problema de permissão perldoc. - dlamblin
Na verdade, este flash plug in estabilidade coisa vem e vai; Ele vai com um reinício e eu não sei o que causa isso ainda. - dlamblin
Para os interessados: a estabilidade do flash tinha a ver com áudio em flash e incompatibilidade no Audio Hijack Pro. Vejo: superuser.com/questions/83315 - dlamblin


Instalado CPAN fresco no Lion.

Antes de "Reparar Permissões" do Utilitário de Disco:

$ perldoc
-bash: /usr/bin/perldoc: Permission denied

Funciona novamente depois de:

$ perldoc
Usage: perldoc5.12 [-h] [-V] [-r] [-i] [-D] [-t] [-u] [-m] [-n nroffer_program] [-l] [-T] [-d output_filename] [-o output_format] [-M FormatterModuleNameToUse] [-w formatter_option:option_value] [-L translation_code] [-F] [-X] PageName|ModuleName|ProgramName
       perldoc5.12 -f PerlFunc
       perldoc5.12 -q FAQKeywords
       perldoc5.12 -v PerlVar

The -h option prints more help.  Also try "perldoc perldoc" to get
acquainted with the system.                        [Perldoc v3.15_02]

0