কীভাবে ব্যক্তিগত নির্ভরতা লিঙ্কগুলি সেটআপ.পিতে পরিচালনা করা উচিত


10

কর্মক্ষেত্রে আমরা একটি প্রাইভেট পাইপি সার্ভার ব্যবহার করি। এই পাইপি সার্ভারটি নির্ভরতা লিঙ্ক হিসাবে নির্দিষ্ট করা হয়েছে:

...
from setuptools import setup

config = ConfigParser.ConfigParser()
rc = os.path.join(os.path.expanduser('~'), '.pypirc')
config.read(rc)
dependency_links = [
    'https://{}:{}@<private_url>'.format(
        config.get('dc', 'username'), config.get('dc', 'password'))]

setup(
    dependency_links=dependency_links,
    ...)

আমাদের বেশিরভাগ ক্ষেত্রে এটি কাজ করে works তবে কিছু সময় আগে আমাদের ক্লায়েন্ট সার্ভারে প্যাকেজ ইনস্টল করতে হয়েছিল। এর জন্য আমাদের .pypircকোনও প্যাকেজ ইনস্টল করার আগে আমাদের একটি বৈধ অনুলিপি করতে হয়েছিল।

এছাড়াও উপরের কোডটি কেবল একটি নোংরা হ্যাকের মতো মনে হচ্ছে।

হার্ডকডিং শংসাপত্র ছাড়াই সুরক্ষিত নির্ভরতা লিঙ্কগুলি নির্দিষ্ট করার সঠিক উপায় কী?


1
আমি বুঝছি তুমি কি বলতে চাও. এটা না যে একটি হ্যাক নোংরা, কিন্তু এটা মানে আপনি প্রতি প্যাকেজ ভিত্তিতে নির্ভরতা ব্যবস্থাপনা প্রমাণীকরণের সংযোজন করছি। এই পদ্ধতির বহনযোগ্য বা স্কেলযোগ্য নয়।
জোয়েল করনেট

উত্তর:


1

এটিকে মোটামুটি একটি নোংরা হ্যাকের মতো বলে মনে হচ্ছে।

  1. শংসাপত্রগুলির জন্য একটি কনফিগারেশন ফাইল রয়েছে
  2. নির্ভরতাগুলিতে কাস্টম URL + ক্রেডিটগুলি ইনজেক্ট করার একটি উপায় রয়েছে a

কাজটি চলছে এবং ভালভাবে সম্পন্ন হচ্ছে, এটিকে আরও ভাল করার একমাত্র উপায় হ'ল এটি নথিভুক্ত করা এবং একাধিক ভিন্ন সেটআপে বা একাধিক পাইপি সার্ভার সহ এবং এটি থেকে বেরিয়ে আসা সমস্যাগুলির সমাধান করা।


0

একটি সম্ভাবনা পরিবেশ পরিবর্তনশীল স্থাপন করা হবে । এটি জবাবদিহি যেমন ডিপ্লোয়মেন্ট সরঞ্জাম দিয়ে করা যেতে পারে । স্ট্যাক ওভারফ্লো এর ব্ল্যাকবক্স বা উত্তরীয় ভল্ট দিয়ে আপনার গোপনীয়তাগুলি সংরক্ষণ করা

বিকল্পভাবে: কনটেইনারাইজেশন সাহায্য করবে, যেহেতু সফ্টওয়্যারটি চালানোর জন্য প্রয়োজনীয় সবকিছু অন্তর্নির্মিত।


0

এই সমাধানটি ব্যবহার করার সময় খুব সতর্কতা অবলম্বন করুন। ডকুমেন্টেশনে যেমন বলা হয়েছে :

.Egg ফাইল ইনস্টল করার সময় ইজিআইনস্টল-এর মতো সরঞ্জামগুলি ব্যবহার করার জন্য সেগুলি ডিমের মেটাডেটাতেও লেখা হবে।

অর্থাৎ, আপনার শংসাপত্রগুলি বিতরণ করা হবে .eggsetuptoolsউত্স কোডটি রুট করে , আমি জানতে পেরেছি যে অভ্যন্তরীণভাবে এটি easy_installনির্ভরতা ইনস্টল করতে কমান্ডটি ব্যবহার করছে । অতএব, আপনার ব্যক্তিগত setup.cfgকারণে নিম্নলিখিতটি যুক্ত করে এটি একটি ব্যক্তিগত রেপো তুলবে:

[easy_install]
index_url=https://username:password@your.repo/simple

এটি ইনস্টল করার সাথে সাথে আপনার শংসাপত্রগুলি টার্মিনালে মুদ্রিত হবে এমন স্ন্যফু এখনও রয়েছে তবে কমপক্ষে সেগুলি আপনার বিতরণে শেষ হয় না। নোট করুন যে এই সমাধানটি আপনার সূচী URL টি প্রতিস্থাপন করে , তাই আপনার ব্যক্তিগত রেপোতে জনসাধারণকেও মিরর করতে হবে। আমি কোনও সুস্পষ্ট উপায়ে সূচী URL গুলি যুক্ত করার জন্য সমর্থন দেখিনি ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.