সিএফএলএগএস এবং এলডিএফএলএগএসকে "কনফিগার করতে" যুক্ত করার সঠিক বাক্য গঠন কী?


40

আমি ওপেনভিপিএন উত্স টারবাল ব্যবহার করে ওপেনবিএসডি 5.5 এ ওপেনভিপিএন ইনস্টল করতে চাই।

এখানে নির্দেশাবলী অনুযায়ী , আমি lzo ইনস্টল করতে হবে এবং

CFLAGS = যুক্ত করুন - I / usr / স্থানীয় / "LDFLAGS =" অন্তর্ভুক্ত - এল / usr / স্থানীয় / lib "" কনফিগার করার "দিকনির্দেশনা, যেহেতু gcc তাদের অন্যথায় খুঁজে পাবে না।

ওপেনবিএসডি-তে উপরোক্ত কীভাবে করা যায় তার জন্য আমি গাইডের জন্য ব্যাপকভাবে গুগল করেছি তবে কিছুই নেই।

এটি আমি যা করার পরিকল্পনা করছি:

  1. একটি সদ্য নির্মিত ডিরেক্টরিতে উত্স টারবালকে অন্টার করুন
  2. কমান্ড জারি করুন ./configure CFLAGS = "- I / usr / স্থানীয় / অন্তর্ভুক্ত" LDFLAGS = "- এল / usr / স্থানীয় / lib"
  3. কমান্ডটি ইস্যু করুন
  4. কমান্ড মেক ইনস্টল ইস্যু করুন

নিচের কোন সিনট্যাক্সটি সঠিক?

./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

অথবা

./configure --CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

অথবা

./configure --CFLAGS="-I/usr/local/include" --LDFLAGS="-L/usr/local/lib"

উত্তর:


41

সঠিক উপায়টি হ'ল:

./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

তবে এটি সমস্ত configureস্ক্রিপ্টগুলির সাথে কাজ করতে পারে না । পরিবেশের ভেরিয়েবল যেমন CPATHএবং LIBRARY_PATH( gccম্যান পৃষ্ঠা দেখুন) সেট করা ভাল ।

একটি উদাহরণ:

export CPATH=/usr/local/include
export LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH=/usr/local/lib

আপনার মধ্যে .profile, উদাহরণস্বরূপ। LD_LIBRARY_PATHশেয়ার করা লাইব্রেরির ক্ষেত্রে প্রয়োজন হতে পারে যদি একটি রান পথ ব্যবহার করা হয় না (এই OS উপর নির্ভর করে, বিল্ড সরঞ্জাম ও বিকল্প ব্যবহার করা হয়, কিন্তু এটি আঘাত উচিত নয়)।


আপনার উত্তরের জন্য ধন্যবাদ. ওপেনবিএসডি 5.5 এর বেস সিস্টেমে জিসিসি কি ডিফল্টরূপে ইনস্টল করা হয়? যদি এটি না হয় তবে আমি তৃতীয় পক্ষের প্যাকেজটি ইনস্টল করব না কারণ এতে বাগ বা সুরক্ষা দুর্বলতা থাকতে পারে।
ব্যবহারকারী 66229

1
@ user66229 আপনি একটি ডিফল্ট তারপর হ্যাঁ ইনস্টল করেছিলেন gcc-4.2.1(যতক্ষণ না আপনি vaxen মত সত্যিই পুরাতন মেশিনে দর্শিত থাকবে) হয় comp55.tgz। সেখানে জন্য প্যাকেজ হয় gcc-4.8এবং 4.9, এবং এছাড়াও llvm/clang 3.0। প্রাক্তনগুলি মূলত লাইসেন্সের কারণে (জিপিএলভি 2 বনাম জিপিএলভি 3) অন্তর্ভুক্ত করা হয় না, পরে ব্যবহার করা হয় না কারণ এটি ওপেনবিএসডি বর্তমানে সমর্থন করে এমন সমস্ত প্ল্যাটফর্ম সমর্থন করে না।
দামিয়েন

1
@ user66229 আমি আমার উত্তর সম্পাদনা করেছি। এটি কেবলমাত্র একটি উদাহরণ, এটি করার অন্যান্য উপায় থাকতে পারে এবং আপনার ইতিমধ্যে কিছু সেটিংস থাকতে পারে। আরও আগে পরীক্ষা echo $CPATHকরুন।
ভিঙ্ক 17

1
"তবে এটি সমস্ত কনফিগার স্ক্রিপ্টগুলির সাথে কাজ করতে পারে না" মন্তব্যটির জন্য ধন্যবাদ - আমি কেবল একটি মামলায় চলে এসেছি, যেখানে সিএফএলএজিএসের সাথে সংকলিত বেশ কয়েকটি নির্ভরতার পরে সিএফএলএজিএস নির্দিষ্ট করা হলে শেষ নির্ভরতা ক্র্যাশ হয়ে যায় (এবং প্রকৃতপক্ষে, grep CFLAGS configureসেই কনফিগার স্ক্রিপ্ট থেকে ফাঁকা ফিরে আসে) ।
sdaau

1
আমি খুব সতর্কতা অবলম্বন করব LD_LIBRARY_PATH: xahlee.info/UnixResource_dir/_/ldpath.html
স্কলে

8

প্রথম বাক্য গঠনটি সঠিক।

./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"

কিন্তু, ব্যাপারটা জোরালোভাবে পারেন ব্যবহার বাইনারি করা বাঞ্ছনীয় packages(7)বা, যদি কোন কারনের জন্য আপনি একেবারে উৎস থেকে বিল্ড করতে হবে, এর ব্যবহার করতে ports(7)পরিকাঠামো, যেমন দ্বারা ব্যাখ্যা প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী ধারা 15

এফএকিউতে বিস্তারিত হিসাবে বন্দর গাছ সেট আপ করুন। তারপরে একটি openvpnবন্দরের সন্ধান করুন:

cd /usr/ports
make search key=openvpn

এই শব্দটি সম্বলিত কয়েকটি পোর্ট আউটপুট দেয় openvpn। তাদের মধ্যে একটি openvpn-2.3.2পথ সহ net/openvpn

cd net/openvpn
sudo make install clean

এতে উপকার হবে যে নির্ভরতাগুলি (কেবল এখানে lzo2) আপনার সিস্টেমে ক্লোবার্ব না করে সঠিকভাবে ইনস্টল করা হবে এবং আপনি openvpnওপেনবিএসডি কীভাবে ব্যবহার করবেন সে সম্পর্কে অতিরিক্ত নির্দেশাবলী পাবেন get


আপনার উত্তরের জন্য ধন্যবাদ. ওপেনবিএসডি 5.5 এর মধ্যে ইতিমধ্যে একটি ওপেনভিপিএন (বাইনারি) প্যাকেজ রয়েছে তবে এটি 2.3.2 সংস্করণে পুরানো। আমি সর্বশেষ সংস্করণ 2.3.4 সংকলন এবং ইনস্টল করতে চাই যা কেবল ওপেনভিপিএন এর গিটহাব থেকে উপলব্ধ from
ব্যবহারকারী 66229

যেমন আপনি lzo উল্লেখ করেছেন, আমি লক্ষ্য করেছি যে এখানে তিনটি বাইনারি প্যাকেজ উপলব্ধ রয়েছে: lzo-1.08p3.tgz, lzo2-2.06p0.tgz এবং lzop-1.03.tgz। এই 3 টির মধ্যে কোনটি ওপেনভিপিএন এর জন্য নির্ভরতা?
ব্যবহারকারী 66229

1
@ user66229: তা হবে lzo2-2.06p0.tgz। এখানে একটি প্যাচ যে বন্দর আপগ্রেড openvpnথেকে 2.3.2থেকে 2.3.4, কিন্তু কষ্টসহকারে মধ্যে একটি পরিবর্তন OpenBSD প্রাসঙ্গিক আছে দুটি সংস্করণ (সমগ্র থ্রেড পড়ুন)। আমি সত্যিই সুপারিশ করব যে আপনি কেবল বাইনারি প্যাকেজটি নিয়ে যান।
দামিয়েন

@ ডিডিয়েন আপনার উত্তর এবং প্যাচের লিঙ্কের জন্য ধন্যবাদ। আমি প্যাচের বিষয়বস্তু পড়েছি এবং যে বিষয়টি আমাকে চিন্তায় ফেলেছে তা হ'ল ওপেনবিপিএন-এর জন্য ওপেনবিএসডি-তে কোনও রক্ষণাবেক্ষণকারী নেইopenvpn-2.3.2.tgzওপেনবিএসডি-র অফিসিয়াল ডাউনলোড মিররগুলিতে বাইনারি প্যাকেজটি কীভাবে পেল তার উত্তর সম্পর্কে অনুমান করতে আমাকে দয়া করে সহায়তা করুন ?
ব্যবহারকারী 66229

1
@ user66229 এখানে আপনি বন্দরের মেকফিলের জন্য পুরো সংশোধন তালিকাটি দেখতে পারেন। স্টুয়ার্ট হেন্ডারসন (অন্যতম প্রধান প্যাকেজ রক্ষণাবেক্ষণকারী) সেই থ্রেডে বলেছিলেন, এই পরিবর্তনগুলির বেশিরভাগই ওপেনবিএসডি-র জন্য আসলে প্রাসঙ্গিক নয়।
দামিয়েন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.