NAS - FATAL पर Gitolite को स्थापित करने में त्रुटियां हैं लेकिन लॉगिंग विफल रही


2

मैं इनका अनुसरण करते हुए अपने Synology DiskStation पर Gitolite को स्थापित करने की कोशिश कर रहा हूं अनुदेश

के अंतर्गत डिस्कोग्राफ़िक और रन सेटअप पर जिओलाइट स्थापित करें , जब मैं Gitolite स्थापित कमांड चलाता हूं:

DiskStation> /volume1/homes/git/gitolite/install -ln /bin

मुझे निम्नलिखित त्रुटि मिलती है:

FATAL: have errors but logging failed!

2012-05-31.00:10:22 no GL_LOGFILE env var
2012-05-31.00:10:22 die could not symlink /volume1/home/git/gitolite/src/gitolite to /bin<<newline>> at /volume1/home/git/gitolite/install line 71<<newline>>

मैं इस सब के लिए बहुत नया हूं। क्या किसी को पता है कि इसका क्या मतलब है, और मैं इस त्रुटि को कैसे ठीक कर सकता हूं?

जवाबों:


1

2 मुद्दे:

नया GitoliteV3 (g3) सुंदर रूप से 'लॉग' निर्देशिका की कमी को नहीं संभालता है, जिसे डिफ़ॉल्ट रूप से उपस्थित होना चाहिए $HOME/.gitolite
देख Rc.pm :

$rc{LOG_TEMPLATE} = "$ENV{HOME}/.gitolite/logs/gitolite-%y-%m.log";
$rc{GL_LOGFILE} = $ENV{GL_LOGFILE} ||= gen_lfn( $rc{LOG_TEMPLATE} );

Common.pm:

sub gl_log {
    # the log filename and the timestamp come from the environment. If we get
    # called even before they are set, we have no choice but to dump to STDERR
    # (and probably call "logger").

    logger_plus_stderr( "$ts no GL_LOGFILE env var", "$ts $msg" ) if not $ENV{GL_LOGFILE};
    open my $lfh, ">>", $ENV{GL_LOGFILE} or logger_plus_stderr( "open log failed: $!", $msg );

एक लॉग डायरेक्टरी बनाएँ: mkdir -p $HOME/.gitolite/logs और स्थापना को फिर से चलाएँ
जैसा sitearm (जो, मैं केवल उसके खाली प्रोफ़ाइल से मान सकता हूं, है सीताराम चमारती , Gitolite के निर्माता / अनुरक्षक), इसकी आवश्यकता नहीं होनी चाहिए।
और ओपी की ओर से नीचे जवाब दो , इस नहीं था वैसे भी जरूरत है।

सटायरम जोड़ता है:

LOGFILE त्रुटि संदेश भ्रामक है; यह तब होता है जब स्थापना निर्देशिका अंदर नहीं होती है $PATH

नवीनतम प्रतिबद्धता पर Common.pm (जून, 16 वीं 2012) ने वास्तव में त्रुटि संदेश को बदल दिया है नहीं संदर्भ अब रहस्यमय है GL_LOGFILE:

logger_plus_stderr( "errors found before logging could be setup", "$msg" ) if not $ENV{GL_LOGFILE};

ध्यान दें कि यदि आपके पास गैर-मानक पथ में अपना स्वयं का पर्ल है, तो उन में से कोई भी स्क्रिप्ट काम नहीं करेगी, क्योंकि उनके शेबंग संदर्भ हैं /usr/bin/perl के बजाय एक /usr/bin/env perl...


दूसरा अंक:

could not symlink /volume1/home/git/gitolite/src/gitolite to /bin

जाँचें कि क्या आपके पास सहानुभूति के अधिकार हैं /bin। क्या तुम जड़ हो? जैसा कि नीचे उल्लेख किया गया है

DiskStation> /volume1/homes/git/gitolite/install -ln

(के बिना /bin ) सब कुछ के तहत रखना होगा $HOME (नहीं / बिन लेखन पहुंच मुद्दा)


मैं आमतौर पर एक स्थानीय स्थापना पसंद करता हूं

 $HOME/gitolite/github/install -to $HOME/gitolite/bin

(इसलिए ' -to ' के बजाय ' -ln ', सिस्टम पथ के बजाय मेरे खाते में एक पूर्ण पथ के साथ):

  • github के स्थानीय क्लोन का नाम https://github.com/sitaramc/gitolite
  • $HOME/gitolite/bin एक निर्देशिका जिसे मैंने अपने साथ जोड़ा है $PATH

कृपया उन समाधानों का सुझाव न दें जिनमें कुछ भी शामिल है जो प्रलेखन में नहीं है। mkdir -p ... इस तरह के एक अच्छी तरह से अर्थ लेकिन गलत सुझाव है। यदि आपको लगता है कि यह आवश्यक है, तो मुझे बताएं कि मेरे दस्तावेज़ में कुछ कमी है और हम इस पर चर्चा कर सकते हैं। उपस्कर त्रुटि संदेश भ्रामक है; यह तब होता है जब स्थापना निर्देशिका $ PATH में नहीं होती है। कृपया चलाएं ./install -h इस पर विभिन्न विकल्पों के विवरण के लिए।

@sitaram ठीक है, उत्तर संपादित किया गया। mkdir जी 3 के साथ मेरे मुद्दों में से कम से कम है: आपकी सभी लिपियां संदर्भ ए #!/usr/bin/perl, जो मेरे गैर-मानक पर्ल स्थापना के साथ असंगत है। ए #!/usr/bin/env perl अधिक सुविधाजनक होगा।
VonC

0

निम्नलिखित कमांड एक टाइपो था:

DiskStation> /volume1/homes/git/gitolite/install -ln /bin

इससे पहले के पोस्ट में आपके पास git उपयोगकर्ता के लिए $ HOME / बिन डायरेक्टरी है। समान कमांड चलाएँ, लेकिन निर्दिष्ट / बिन निर्देशिका तर्क को छोड़ दें, और gitolite $ HOME / bin के लिए डिफ़ॉल्ट होगा जो मौजूद है और git उपयोगकर्ता द्वारा लिखित है।

इसके बजाय इसे चलाएं:

DiskStation> /volume1/homes/git/gitolite/install -ln

0

मैंने कमान चलाई gitolite/install -ln /usr/bin/

मेरे लिए, सिमलिंक त्रुटि के कारण था git उपयोगकर्ता को सिमिलिंक करने के लिए अपेक्षित अनुमति नहीं है /usr/bin। मैंने बस जोड़ा git उपयोगकर्ता के लिए wheel में समूह /etc/group फ़ाइल और एक आकर्षण की तरह काम किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.