রুট অ্যাক্সেস ছাড়াই সিস্টেমে বিল্ডিং করতে স্থানীয়ভাবে ডেভলপমেন্ট ফাইল ইনস্টল করবেন?


11

একটি সার্ভার রয়েছে যা আমি লিনাক্সের একটি পুরানো সংস্করণে কাজ করি। সিস্টেমে আমার কাছে রুট অ্যাক্সেস নেই, তাই আমি একটি সরঞ্জামের একটি সাম্প্রতিক সংস্করণ তৈরি করতে চেয়েছিলাম যা আমি প্রচুর ব্যবহার করি (Vim 7.3)। আমি অনুভব করেছি যে আমি কেবল এটি তৈরি করব এবং এটি ~ / বিনে ইনস্টল করব। তবে এর জন্য ncurses ডেভলপমেন্ট ফাইলগুলি দরকার যা সিস্টেম-ওয়াইড ইনস্টলড নয়। আমি ncurses-devel আরপিএম খুঁজে পেয়েছি এবং 'lib' এবং 'অন্তর্ভুক্ত' ফোল্ডারগুলি বের করেছি, আমি সেগুলি কোথায় রাখব এবং কীভাবে। / কনফিগার স্ক্রিপ্টটি তাদের সন্ধান করার জন্য বলব যাতে আমি প্যাকেজটি স্থানীয়ভাবে কনফিগার করতে এবং তৈরি করতে পারি?

সম্পাদনা: আমি ভার্চুয়ালবক্সে অভিন্ন ওএস ইনস্টল করে এবং সেখানে প্যাকেজটি তৈরি করে এবং বাইনারিগুলির অনুলিপি করে কাজ করে শেষ করেছি।


সার্ভারফল্ট / প্রশ্ন / 23734 সাহায্যের জন্য যথেষ্ট অনুরূপ হতে পারে। বেশিরভাগ উত্তরের মধ্যে আপনার বাড়ির অভ্যন্তরে কার্যকরভাবে একটি সম্পূর্ণ সিস্টেম কী তা ইনস্টল করা জড়িত তবে এটি জেন্টো প্রিফিক্স এবং রুটলেস গাবো জুড়ে কাজ করা যেতে পারে।
প্রশংসাপত্র

উত্তর:


14

আমি আমার শেষ কাজটিতে বেশ ঘন ঘন এটি করেছি - যে সমাধানটি সবচেয়ে ভাল কাজ করেছে বলে মনে হয়েছিল তা হল একটি ~ / usr ডিরেক্টরি তৈরি করা এবং --/configure স্ক্রিপ্টগুলিকে সঠিক দিকে নির্দেশ করার জন্য --prefix যুক্তিটি ব্যবহার করা। পদক্ষেপ এখানে:

  • ~ / Usr ডিরেক্টরি তৈরি করুন এবং এর নীচে lib এবং বিন ডিরেক্টরি অন্তর্ভুক্ত করুন।
  • আপনার। প্রোফাইল, .bashrc, বা অন্যান্য শেল ইনি স্ক্রিপ্টে নিম্নলিখিতগুলি যুক্ত করুন (বা আপনার শেলের ডায়ালকের সমতুল্য):
    export PATH=$PATH:~/usr/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/usr/lib
    export C_INCLUDE_PATH=$C_INCLUDE_PATH:~/usr/include
    export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:~/usr/include
  • প্যাকেজ তৈরি করার সময়, ব্যবহার করুন ./configure --prefix=/home/<username>/usr

এই ব্যবস্থাটি বেশিরভাগ পরিস্থিতিতে আমার জন্য কাজ করে যেখানে আমার ইউজারস্পেসে জিনিসগুলি তৈরি করা দরকার। সবচেয়ে শক্তিশালী অংশটি আপনার প্রয়োজনীয় সমস্ত নির্ভরতা সন্ধান এবং তৈরি করা হয় তবে এটি আপনার প্যাকেজ ম্যানেজারের 'উত্স পান' কার্যকারিতাটি কিছুটা গুগলিং বা বিচার্য ব্যবহার করে।


আমার পক্ষে বেশ কাজ করেনি। কনফিগার স্ক্রিপ্টটি :
31

আমার পোষ্টফিউচারিস্ট একই সমস্যা ছিল। আমি আমার সমস্ত রফতানির ${HOME}পরিবর্তে এটি ব্যবহার করে ঠিক করা শেষ করেছিলাম ~এবং তারপরে pkg-config খুশি হয়েছিল এবং আমার ব্যবহারকারী ইনস্টল করা লাইব্রেরি এবং প্যাকেজগুলি সন্ধান করতে সক্ষম হয়েছি।
ফায়াত

3

সাধারণত আপনার হোম ডিরেক্টরিতে বা নতুন লাইব্রেরি এবং প্রোগ্রামগুলির জন্য অন্য পথে কোনও নতুন অবস্থান নির্ধারণ করার জন্য আপনার কোডটি পুনরায় কনফিগার করতে এবং পরিবর্তন করতে সক্ষম হওয়া উচিত ...

তবে, আইএমএইচও, সবচেয়ে সহজ উপায় (যদি আপনার প্রচুর জায়গা থাকে) হ'ল একটি সাব-ডাইরেক্টরিতে ক্রোট ব্যবহার করা হবে এতে সমস্ত লিনাক্স ডিস্ট্রো ইনস্টল করা আছে। আপনি ব্যবহার করতে পারবেন না একজন সাধারণ ব্যবহারকারী হিসেবে cuorse এর chroot :, কিন্তু আপনি এই মহান সরঞ্জাম ব্যবহার করতে পারেন fakechroot এবং fakeroot

ক্রুট ফাইল সিস্টেম তৈরি করতে, আমি ডেবিটস্ট্র্যাপ ইউটিলিটিটি ব্যবহার করে ডেবিয়ান (বা উবুন্টুর মতো কোনও ডেবিয়ান ডেরিভেট ) দিয়ে একটি ডিরেক্টরি স্থাপন করতে চাই ।

সুতরাং পদ্ধতিটি সহজ (আমি প্রযুক্তিগত বিশদে প্রবেশ করবো না, কমান্ড ম্যানুয়ালগুলি পড়ি):

  • পান এবং ইনস্টল করুন: ফেকেকরুট, ফেকেরুট এবং ডিবুটস্ট্র্যাপ সরঞ্জাম
  • ডিবুটস্ট্র্যাপ ব্যবহার করে একটি উপ-ডিরেক্টরি তৈরি করুন (আমি কেবল এটি রুট হিসাবে চালাতে সক্ষম হয়েছি You আপনি এটি অন্য কম্পিউটারে করতে পারেন এবং বাইনারিগুলি অনুলিপি করতে পারেন যদি প্রয়োজন হয়)
  • সম্পাদন করুন: ফাকেচরূট ফেকেরুট ক্রুট মাইদেবিয়ান-দির

আপনার যদি আরও বিশদ প্রয়োজন হয় তবে আমার মনে হয় এই সমস্ত করার জন্য আমার কোথাও একটি স্ক্রিপ্ট ছিল।


2

এই সমস্যাটির আর একটি সমাধান হ'ল জেন্টো প্রিফিক্স ব্যবহার করা যেমন ম্যাকোএসএক্স ব্যবহারকারী এবং অন্যান্য প্ল্যাটফর্ম (সোলারিস, এআইএক্স) করে:

http://www.gentoo.org/proj/en/gentoo-alt/prefix/

এটি জেন্টু স্ট্যাক (পোর্টেজ সহ) একটি $ প্রিফিক্স স্থানে সংকলন করবে। এটি জেন্টু প্যাকেজ ব্যবহার করে, বেশিরভাগ প্যাকেজগুলি এই সেটিংসের ব্যবহারকে সমর্থন করে।

পোর্টেজ সমস্ত নির্ভরতা অনুসরণ করে রাখে, আপনার কাছে সফ্টওয়্যারটির শেষ সংস্করণ থাকবে, এটি সম্প্রদায় দ্বারা পরীক্ষা করা হয়েছে ...


1

যদি prefix=/home/foo/usrকাজ না করে, চেষ্টা করুন:

CFLAGS=-I/home/foo/usr/include LDFLAGS=-L/home/foo/usr/lib ./configure
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.