मैंने अभी-अभी अपना पहला जीथब रिपॉजिटरी बनाया है: https://github.com/WinEunuuchs2Unix/eyesome

मैंने सभी फाइलें अपलोड कर दी हैं, लेकिन मुझे इस बात की चिंता है कि डाउनलोड के बाद अंतिम उपयोगकर्ता उन्हें कैसे कॉपी करेगा।

यहां copy-files स्क्रिप्ट (संक्षिप्त) है जिसे वे चलाएंगे:

!/bin/sh

if [ $(id -u) != 0 ]; then # root powers needed to call this script
    echo >&2 $0 must be called with sudo powers
    exit 1
fi

cp -v ./eyesome.sh              /usr/local/bin/
cp -v ./eyesome-cfg.sh          /usr/local/bin/
cp -v ./eyesome-src.sh          /usr/local/bin/
cp -v ./eyesome-sun.sh          /usr/local/bin/
cp -v ./wake-eyesome.sh         /usr/local/bin/
cp -v ./start-eyesome           /etc/cron.d/
cp -v ./daily-eyesome-sun       /etc/cron.daily/
cp -v ./systemd-wake-eyesome    /lib/systemd/system-sleep/

exit 0

मेरा पहला विचार यह है कि जब कोई फाइल डाउनलोड करता है तो कोई भी निष्पादन योग्य के रूप में चिह्नित नहीं होता है?

copy-files स्क्रिप्ट में "अनइंस्टॉल करने" के लिए एक सेक्शन है जो निष्क्रिय है। क्या यह प्रदान करने के लिए एक सामान्य शिष्टाचार है?

मेरे github को बेहतर बनाने और मेरे copy-files कोड को परिशोधित करने के लिए आगे पढ़ने पर टिप्पणियों की भी सराहना की जाती है।

1
WinEunuuchs2Unix 16 सितंबर 2018, 22:59

2 जवाब

सबसे बढ़िया उत्तर
  1. आप कहते हैं: "मेरा पहला विचार यह है कि जब कोई फाइल डाउनलोड करता है तो कोई भी निष्पादन योग्य के रूप में चिह्नित नहीं होता है?" git आपको निष्पादन योग्य फ़ाइलों को चिह्नित करने और अनुमतियों को संरक्षित करने की अनुमति देता है। git commit -a -m 'Some changes';git push करने से पहले केवल फाइलों पर chmod +x चलाएं।

  2. वर्तमान में आपकी सभी फाइलें निर्देशिका के शीर्ष स्तर पर हैं। यह थोड़े गन्दा और अव्यवस्थित दिखता है। निर्देशिकाओं को रखना और चीजों को व्यवस्थित करना सबसे अच्छा है। यदि आप पेशेवर संगठनों को देखें, तो उनके पास doc/, scr/ निर्देशिकाएं हैं, या कम से कम प्रोजेक्ट के शीर्ष स्तर के मॉड्यूल नाम निर्देशिका के अंदर सबमॉड्यूल हैं।

    जब उपयोगकर्ता ज़िप फ़ाइल डाउनलोड करता है और सब कुछ निकालता है, तो वे क्या देखेंगे? ढेर सारी फाइलें उस डायरेक्टरी में बिखरी पड़ी थीं, जहां से उन्होंने इसे निकाला था। इसलिए आपके प्रोजेक्ट में निर्देशिका होने से अव्यवस्था को कम करने में मदद मिलती है।

    मेरे पास कुछ भंडार एक ही चीज़ का पालन करते हैं - सब कुछ शीर्ष स्तर पर है। लेकिन मैं इसे नहीं बदलता क्योंकि मेरे पास पहले से ही मेरे आस्क उबंटू उत्तरों में लिखे गए निर्देश हैं, इसलिए वापस जाना और यह पता लगाने की कोशिश करना कि परिवर्तन के लिए कौन से उत्तर बहुत समस्याग्रस्त हैं।

  3. एक इंस्टॉलेशन स्क्रिप्ट रखें। उपयोगकर्ता को बहुत अधिक निर्देश लिखने के बजाय, यह एक चीज़ उनके और आपके लिए समय बचा सकती है।

  4. develop और master शाखाओं का उपयोग करने का तरीका जानें। आप master में एक कार्यशील संस्करण रख सकते हैं और develop में परिवर्तनों पर काम कर सकते हैं। इस तरह उपयोगकर्ताओं के पास काम करने वाला कोड होता है, और आप कोड के टूटने और उपयोगकर्ताओं को नाखुश होने के बारे में चिंतित नहीं होते हैं।

  5. आपका README.md नंगे है। कुछ उपयोगी जानकारी जोड़ें। विशेष रूप से, उन चीजों की रूपरेखा तैयार करें जो परियोजना के लिए निर्भरता के रूप में आवश्यक हैं, विशेष रूप से डिफ़ॉल्ट उबंटू सिस्टम पर स्थापित नहीं हैं (जो कि आपकी परियोजनाओं का आमतौर पर लक्ष्य है)।

1
Sergiy Kolodyazhnyy 16 सितंबर 2018, 23:27

cp का उपयोग करने के बजाय, install पर एक नज़र डालें , उदाहरण के लिए

install ./eyesome.sh /usr/local/bin/

डिफ़ॉल्ट रूप से, यह मोड 755 का उपयोग करेगा, लेकिन यदि आपको कुछ अलग चाहिए तो आप -m विकल्प के साथ इसे ओवरराइड कर सकते हैं।

अगला तार्किक कदम शायद आपके द्वारा लक्षित ऑपरेटिंग सिस्टम के लिए एक उचित पैकेज बनाना होगा।

1
Chris 16 सितंबर 2018, 23:09