ইনস্টল করুন, কিন্তু ডিফল্ট ডিরেক্টরিতে না?


148

আমি 'মেক ইনস্টল' চালাতে চাই যাতে আমার প্রয়োজনীয় সমস্ত কিছু থাকে তবে সিস্টেমের / ইউএসআর / বিন ইত্যাদির বিপরীতে জিনিসগুলি তাদের নিজস্ব ফোল্ডারে ইনস্টল করা কি সম্ভব? এমনকি যদি এটি / usr / বিন ইত্যাদির সরঞ্জামগুলি রেফারেন্স করে?


3
যদি আপনি ইতিমধ্যে প্রকল্পের নির্মাণ করেছি এবং আপনি একটি উপসর্গ ছাড়া ./configure দৌড়ে এবং আপনি একটি কাস্টম পথে এটি ইনস্টল করতে চান তাহলে, দেখতে stackoverflow.com/a/17679654/313113
bitek

উত্তর:


213

এটি প্যাকেজের উপর নির্ভর করে। যদি মেকফাইলটি জিএনইউ অটোটুলগুলি ( ./configure) দ্বারা উত্পাদিত হয় তবে আপনি সাধারণত লক্ষ্য অবস্থান নির্ধারণ করতে পারেন:

./configure --prefix=/somewhere/else/than/usr/local

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


9
make && make installকনফিগার ধারাটি অনুসরণ করা উচিত নয় ?
নাস

1
আমার সমস্যাটি --prefixহ'ল যদি আপনি stringsপরে বাইনারিটি চালান তবে আপনি দেখতে পাচ্ছেন যে পথটি ভিতরে সঞ্চিত আছে। আমি জানি না কেন এটি সুখী হয়, তবে আমি অবশ্যই আমার মেশিনের পথগুলি বাইনারিগুলিতে চাই না যা আমি অন্য ব্যবহারকারীদের কাছে প্রেরণ করি।
এরিক অ্যাগনার

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

44

যেহেতু অটোমেকের কোন সংস্করণটি আপনি জানেন না আপনি DESTDIR পরিবেশ পরিবর্তনশীল ব্যবহার করতে পারেন ।
নিশ্চিত হওয়ার জন্য মেকফিল দেখুন।

উদাহরণ স্বরূপ:

 export DESTDIR="$HOME/Software/LocalInstall" && make -j4 install

9
এটি কাজ করে যখন আপনি - prefix কমান্ড লাইন আর্গুমেন্ট ব্যতীত কনফিগার করেছেন এবং আপনি ইতিমধ্যে প্রকল্পটি তৈরি করেছেন তবে আপনি এটি ডিফল্ট লোকেশনগুলিতে ইনস্টল করতে চান না বরং পরিবর্তে একটি কাস্টম ইনস্টলেশন পাথ নির্দিষ্ট করুন। এটি ডিএসটিডিআইআর-এর ডিফল্ট ইউএসআর / লোকাল / বিন / পাথ সংযোজন করবে এবং আপনার প্রকল্পটি $ হোম / সফটওয়্যার / লোকালইনস্টল / ইউএসআর / স্থানীয় / বিন /
বিটেক

এটি একটি উজ্জ্বল সমাধান। কেন জানি এই তোলা উত্তর নয়! প্রায় সমস্ত অন্যান্য উত্তরগুলি পুনরায় কনফিগার করতে বলে, যার অর্থ একটি আবারও তৈরি করা দরকার। পুরো MITK সুপার বিল্ডটি 2 থেকে 3 ঘন্টা পরে সংকলন করে নিয়ে যাওয়ার পরে কল্পনা করুন এবং তারপরে এটি পুনরায় করতে বলা হবে, কারণ আমি সংকলিত ফাইলগুলি অন্য কোনও জায়গায় ইনস্টল করতে চাই। পরিস্থিতি এড়াতে এটি এখানে প্রায় একটি দুর্দান্ত কাজ।
হাঁস

23
make DESTDIR=./new/customized/path install

এই দ্রুত কমান্ড উবুন্টু 16 এ 3.2.0 ইনস্টলেশন ওপেনসিভি রিলিজ করার জন্য আমার পক্ষে কাজ করেছিল DE

DESTDIR অবস্থান ব্যবহারকারীর জন্য ডান অ্যাক্সেস না হওয়া পর্যন্ত ব্যবহারকারীর প্রশাসনিক সুবিধাগুলি না থাকলে ক্ষেত্রে এই জাতীয় পুনঃনির্দেশটিও কার্যকর হতে পারে। যেমন / হোম //


1
মেকফাইলের অভ্যন্তরে যদি এটির একটি ডিফল্ট মান থাকে তবে প্রিফিক্সকে ওভাররাইডের প্রয়োজন হতে পারে
মার্ক সিএইচ

17

আপনি যে মডিউলটি সংকলনের চেষ্টা করছেন তার দ্বারা এটি নির্ভরযোগ্য হতে পারে। যদি আপনার মেকফাইলটি অটোটুলগুলি ব্যবহার করে উত্পন্ন হয় তবে ব্যবহার করুন:

--prefix=<myinstalldir>

। / কনফিগার চালু করার সময়

কিছু প্যাকেজ আপনাকে চলমান অবস্থায় ওভাররাইড করতে দেয়:

make prefix=<myinstalldir>

তবে, যদি আপনার। / কনফিগার ব্যবহার না করা হয় তবে নিশ্চিতভাবে জানার একমাত্র উপায় হ'ল মেকফিলটি খোলার এবং চেক করা। এটি শীর্ষে কয়েকটি প্রথম পরিবর্তনশীল হওয়া উচিত।


3
আপনার সচেতন হওয়া উচিত যে make prefix=...ভুল হার্ড-কোডড পাথগুলির সাথে বাইনারিগুলির ফলস্বরূপ হতে পারে, যেহেতু সাধারণত সেগুলি পরে সংশোধন করা যায় না./configure --prefix=...
টোবিয়াস কেইনজলার

3

প্যাকেজের মাধ্যমে একটি প্রদান করে Makefile.PL- একটি ব্যবহার করতে পারেন:

perl Makefile.PL PREFIX=/home/my/local/lib LIB=/home/my/local/lib
make
make test
make install

* আরও ব্যাখ্যা: https://www.perlmonks.org/?node_id=564720


0

আমি উপরের সমাধানগুলি চেষ্টা করেছিলাম। কারও কাজ হয়নি।

শেষ পর্যন্ত আমি মেকফিল ফাইলটি খুললাম এবং ম্যানুয়ালি উপসর্গের পথটি নীচের মত পছন্দসই ইনস্টলেশন পথে পরিবর্তিত করেছিলাম

PREFIX ?= "installation path"

যখন আমি - প্রিফিক্স চেষ্টা করেছি, "মেক" অভিযোগ করেছে যে এরকম কমান্ড ইনপুট নেই। তবে, সম্ভবত কিছু প্যাকেজগুলি - ਪ੍ਰੀফিক্স গ্রহণ করে যা অবশ্যই একটি ক্লিনার সমাধান।


1
--prefixবিকল্প হয় ./configureযা আপনি আগে কল make
Gus

-7

INSTALL_ROOT ব্যবহার করে দেখুন।

make install INSTALL_ROOT=$INSTALL_DIRECTORY

11
লোকেরা কোনও সংযুক্ত তথ্য ছাড়াই কিছু "চেষ্টা" করার পরামর্শ দিবেন না।
রিচিএইচ এইচ

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