2015-09-22 12 views
9

Perl ortamımı yönetmek için perlbrew kullanıyorum. perlbrew'u ilk kez belgelere göre yüklediğimde, şimdi her şeyi istenmeyen bir şekilde bulduğum ~/perl5/perlbrew'a yükledim.PERLBREW_ROOT'u başka bir dizine nasıl taşıyabilirim?

belgelerine durumları:

dizin ~/perl5/perlbrew içerecektir tüm perl yürütülebilir, kütüphaneler, evrak, lib, site_libs yükleyin. Dokümantasyonda, bu dizine "perlbrew root" denir. Başka bir yerde bunu ayarlamanız gerekiyorsa diyelim ki ANA kota sınırlıdır, yapabileceğiniz, çünkü yükleyici çalıştırmadan önce PERLBREW_ROOT ortam değişkenini ayarlayarak:

export PERLBREW_ROOT=/opt/perl5/perlbrew 
curl -kL http://install.perlbrew.pl | bash 

Soru: nasıl taşıyabilirsiniz PERLBREW_ROOT dizini ~/perl5/perlbrew yerine /opt/perl5/perlbrew olmak için?

+0

Bunu test etmedim, ancak perlbrew bilgilerinin tümü tek bir dizinde saklandığından '~/perl5'. PERLBREW_ROOT'unu '/ opt/perl5' sonra' mv ~/perl5/opt/perl5' 'i işaret edecek şekilde güncelleyemedim. Ya da zaten yüklü olan Perls sayısına bağlı olarak, sadece 'rm ~/perl5' ve'/opt/perl5' içinde yeniden yükle –

+0

@Hunter McMillen, '@ INC' hepsi için yanlış olacaktır. – ikegami

+0

@ikegami hmm, Perlbrew kullandığınız zaman vX.XX.XX 'yi PERLBREW_ROOT yeniden inceleyeceğini düşünürdüm. –

cevap

7

Ne yazık ki, yüklü bir Perl'i taşıyamazsınız. Yeni başlayanlar için, @INC'a eklenen yollar kodlanır. Size üçüncüsünü önerdiğim dört çözüm sunuyoruz.

Ancak, ilk olarak, ek düzeye gerek olmadığından /opt/perl5/perlbrew yerine /opt/perlbrew kullanmanızı öneririz. Aşağıdaki kod parçacıkları, bu öneriyi takip ettiğinizi varsayar. Eğer vardı perl herhangi yapı yeniden sıfırdan

  1. Başlat.

    Con: Her derleme için, oluşturulmuş tüm modülleri yeniden yüklemeniz gerekir. Bu, tüm uygulamalarınızı yeniden test etmeniz gerektiği anlamına gelir. Bu zaman alıcıdır ve risksiz değildir.

  2. perlbrew dizinini taşıyın, ancak yüklemeyi düzeltmeye çalışın.

    (cd ~/perl5 ; tar c perlbrew) | (cd /opt ; tar x) 
    # Adjust file ownership and permissions as desired. 
    

    Ardından: ~ ve /opt farklı dosya sistemleri üzerinde ise aşağıdaki gibi

    mv ~/perl5/perlbrew /opt/ 
    # Adjust file ownership and permissions as desired. 
    

    yüklemesini taşıma: ~ ve /opt aynı dosya sisteminde ise şöyle

    yüklemesini Taşı

    Aşağıdaki yollarla yazdırılan dosyaların her birinde yolları düzenleyin:

    for q in /opt/perlbrew/perls/* ; do 
        "$q/bin/perl" -le' 
         use Config; 
         require "Config_heavy.pl"; 
         print $INC{"Config.pm"}; 
         print $INC{"Config_heavy.pl"}; 
        ' 
    done 
    

    Ayrıca, birçok betiğin shebang (#!) satırını düzenlemeniz gerekecektir.

    Con: Çok sayıda iş (neredeyse ilk seçenek kadar olmasa bile), kırılgan ve çalışmayı garanti etmiyor.

  3. Gelecekte /opt/perlbrew numaralı yapıları oluşturur, ancak varolanları bulundukları yerde saklayın.

    /opt/perlbrew yılında perlbrew yükledikten sonra aşağıdaki çalıştırın:

    cd /opt/perlbrew/perls 
    for q in ~/perl5/perlbrew/perls/* ; do 
        ln -s "$q" 
    done 
    

    Pro: Süper basit ve hızlı. Zaman içinde, ~/perl5/perlbrew (aşamalı yapıları silerek, bunları seçenek 1'e göre değiştirerek veya 2 seçeneğine göre taşıyarak) aşamayı kaldırabilirsiniz.

    Con: /opt/perlbrew erişiminin olması gereken herkesin de ~/perl5/perlbrew numaranıza erişmesi gerekir.

  4. PERLBREW_ROOT'u değiştirmeyin. Basit bir şekilde /opt/perlbrew sembolik bağlantı oluşturun.

    ln -s ~/perl5/perlbrew /opt/perlbrew 
    

    Pro: Çok basit ve hızlı.

    Con: /opt/perlbrew erişiminin olması gereken herkesin de ~/perl5/perlbrew numaranıza erişmesi gerekir.

+1

Bu yüzden tüm Perls'ları -D userelocateableinc ile derlememin sebebi buydu. –

+0

@abraxxa, Bu yardımcı olur, ama yine de diğer şeylerin arasında tüm shebang çizgilerini düzeltmek zorundasın. // Downsides bunu yapmak için ne biliyor musun? – ikegami

+0

Bunu, dizüstü bilgisayarım ve tüm prod kutularında perlbrew ile yıllardır kullanıyorum ve şimdiye kadar herhangi bir yan etki fark etmedim. Shebang satırları, Modül :: Kurulum tarafından/usr/bin/env perl ile değiştirilir, Dist :: Zilla'nın da bunları değiştirip değiştirmediğinden emin değil. –

İlgili konular