সিমন! আমি জানি তুমি কেমন অনুভব করছো; আমি লিনাক্স শেখার এই অংশটি নিয়েও লড়াই করেছি। আমার নিজের অভিজ্ঞতার উপর ভিত্তি করে, আমি কিছু আইটেম আপনি সুরাহা কয়েকটির বিষয়ে একটি টিউটোরিয়াল লিখেছেন (বেশিরভাগই নিজের জন্য একটি রেফারেন্স হিসেবে!): Http://easyaspy.blogspot.com/2008/12/buildinginstalling-application-from.html । আমি মনে করি আপনি পাইথন অ্যাপ্লিকেশনগুলি কীভাবে তৈরি / ইনস্টল করতে পারবেন তা সহজ note :)
আশা করি এটি সাহায্য করে! এবং শুভ সংকলন।
টিম জোনস
উবুন্টু লিনাক্সের উত্স থেকে অ্যাপ্লিকেশন তৈরি / ইনস্টল করা
উবুন্টু সংগ্রহস্থলগুলি দুর্দান্ত অ্যাপ্লিকেশনগুলিতে পূর্ণ হয়ে উঠেছে, এক সময় বা অন্য কোনও সময় আপনি সেই "আবশ্যক" সরঞ্জামটি অতিক্রম করতে বাধ্য হন যা সংগ্রহস্থলগুলিতে নেই (বা একটি ডেবিয়ান প্যাকেজ নেই) বা আপনার প্রয়োজন সংগ্রহস্থলের তুলনায় নতুন সংস্করণ। আপনি কি করেন? ঠিক আছে, আপনাকে উত্স থেকে অ্যাপ্লিকেশনটি তৈরি করতে হবে! চিন্তা করবেন না, এটি যতটা শোনাচ্ছে তেমন জটিল নয়। র্যাঙ্ক অপেশাদার হতে যাওয়া সম্পর্কে আমার অভিজ্ঞতার ভিত্তিতে এখানে কয়েকটি টিপস দেওয়া হল! (এই উদাহরণের জন্য আমি উবুন্টুটি ব্যবহার করার সময়, সাধারণ ধারণাটি ইউনিক্স / লিনাক্সের যে কোনও বিতরণ যেমন ফেডোরা এবং এমনকি উইন্ডোজের সাইগউইন প্ল্যাটফর্মের ক্ষেত্রে প্রযোজ্য))
উত্স থেকে বেশিরভাগ অ্যাপ্লিকেশন তৈরি করার (সংকলন) করার প্রাথমিক প্রক্রিয়াটি এই ক্রমটি অনুসরণ করে: কনফিগার করুন -> সংকলন -> ইনস্টল করুন। এই জিনিসগুলি করার জন্য সাধারণ ইউনিক্স / লিনাক্স আদেশগুলি হ'ল: config
-> make
-> make install
। কিছু ক্ষেত্রে, আপনি এমন ওয়েব পৃষ্ঠাগুলিও খুঁজে পাবেন যা দেখায় যে এই সমস্তগুলি একটি একক কমান্ডের সাথে সংযুক্ত করা যেতে পারে:
$ config && make && make install
অবশ্যই, এই আদেশটি অনুমান করে যে এই পদক্ষেপগুলির কোনওর মধ্যে কোনও সমস্যা নেই। এখানেই মজা আসে!
শুরু হচ্ছে
আপনি যদি আপনার সিস্টেমে উত্স থেকে কোনও অ্যাপ্লিকেশন সঙ্কলিত না করে থাকেন তবে আপনাকে সম্ভবত এটি সাধারণ বিকাশের কিছু সরঞ্জাম যেমন gcc
সংকলক স্যুট, কিছু সাধারণ হেডার ফাইল (এটি ইতিমধ্যে লিখিত হয়েছে এমন কোড হিসাবে ভাবেন) দিয়ে সেটআপ করতে হবে will আপনি ইনস্টল করা প্রোগ্রাম) এবং মেক টুল দ্বারা ব্যবহৃত অন্য কারও দ্বারা। ভাগ্যক্রমে, উবুন্টুতে একটি মেটাপ্যাকেজ রয়েছে যা build-essential
এটি ইনস্টল করবে। এটি ইনস্টল করতে (বা কেবল আপনার ইতিমধ্যে এটি নিশ্চিত হয়ে গেছে!), টার্মিনালে এই কমান্ডটি চালান:
$ sudo apt-get install build-essential
এখন আপনার কাছে বেসিক সেটআপ রয়েছে, অ্যাপ্লিকেশন উত্স ফাইলগুলি ডাউনলোড করুন এবং সেগুলি আপনার ডিরেক্টরিতে "হোম" ডিরেক্টরি হিসাবে পড়া / লেখার অনুমতি রয়েছে এমন একটি ডিরেক্টরিতে সংরক্ষণ করুন। সাধারণত, এগুলি কোনও .tar.gz
বা ফাইলের এক্সটেনশন সহ একটি সংরক্ষণাগার ফাইলে থাকবে .tar.bz2
। এর .tar
সহজ অর্থ হল এটি একটি "টেপ সংরক্ষণাগার", যা ফাইলগুলির একটি গ্রুপিং যা তাদের সম্পর্কিত ডিরেক্টরি কাঠামো সংরক্ষণ করে। .gz
Gzip, (গনুহ জিপ), যা একটি জনপ্রিয় ইউনিক্স / লিনাক্স কম্প্রেশন ফরম্যাট ঘোরা। একইভাবে, .bz2
bzip2, যা একটি নতুন সংক্ষেপণ বিন্যাস যা gzip এর চেয়ে উচ্চতর সংক্ষেপণ (ছোট সংকোচিত ফাইলের আকার) সরবরাহ করে।
উত্স ফাইলটি ডাউনলোড করার পরে, একটি টার্মিনাল উইন্ডো খুলুন (উবুন্টু মেনু থেকে সিস্টেম টার্মিনাল) এবং আপনি যে ডিরেক্টরিটি আপনার ফাইলটি সংরক্ষণ করেছেন সেখানে পরিবর্তন করুন। (আমি ~/download
এই উদাহরণটি ব্যবহার করব Here এখানে '~' আপনার "হোম" ডিরেক্টরিতে একটি শর্টকাট)) ডাউনলোড করা সংরক্ষণাগার ফাইল থেকে ফাইলগুলি বের করার জন্য টার কমান্ডটি ব্যবহার করুন:
যদি আপনার ফাইলটি একটি জিজিপ সংরক্ষণাগার (উদাহরণস্বরূপ শেষ হয় .tar.gz
) হয়, কমান্ডটি ব্যবহার করুন:
$ tar -zxvf filename.tar.gz
যদি আপনার ফাইলটি bzip2 সংরক্ষণাগার (উদাহরণস্বরূপ শেষ হয় .tar.bz2
) হয়, কমান্ডটি ব্যবহার করুন:
$ tar -jxvf filename.tar.gz
টিপ: আপনি সংরক্ষণাগার আহরণের জন্য কমান্ড লাইনগুলির সমস্ত সুইচ মনে রাখতে না চাইলে আমি এই ইউটিলিটিগুলির একটি (বা উভয়) পাওয়ার প্রস্তাব দিচ্ছি: ডিটিআরএক্স (আমার প্রিয়!) বা ডেকো (আরও জনপ্রিয়)। এই ইউটিলিটিগুলির যে কোনওটির সাথে আপনি কেবল ইউটিলিটির নাম (ডিটিআরএক্স বা ডেকো) এবং ফাইলের নাম লিখুন, এটি বাকী সমস্ত কিছু করে। এই উভয়ই "জানেন" কীভাবে সর্বাধিক কোনও সংরক্ষণাগার ফর্ম্যাটটি পরিচালনা করবেন যে আপনি সম্ভবত চালিয়ে যাবেন এবং এগুলিতে দুর্দান্ত ত্রুটি হ্যান্ডলিং রয়েছে।
উত্স থেকে তৈরি করার সময়, দুটি সাধারণ ধরণের ত্রুটি রয়েছে যা আপনার মুখোমুখি হতে পারে:
- আপনার সেটআপের সাথে সুনির্দিষ্ট একটি মেকফিল তৈরি করতে আপনি যখন কনফিগারেশন স্ক্রিপ্টটি (সাধারণত নামযুক্ত কনফিগারেশন বা কনফিগার করা) চালিত হন তখন কনফিগারেশন ত্রুটিগুলি ঘটে।
- সংকলক ত্রুটিগুলি ঘটে যখন আপনি মেক কমান্ডটি চালান (মেকফিল উত্পন্ন হওয়ার পরে) এবং সংকলকটির প্রয়োজনীয় কিছু কোড সন্ধান করতে অক্ষম।
আমরা এগুলির প্রত্যেকটির দিকে নজর দেব এবং সেগুলি কীভাবে সমাধান করব সে সম্পর্কে আলোচনা করব।
কনফিগারেশন এবং কনফিগারেশন ত্রুটি
টার্মিনালে উত্স কোড সংরক্ষণাগার ফাইলটি বের করার পরে, আপনাকে সেই ডিরেক্টরিতে পরিবর্তন করা উচিত যা নিষ্কাশিত ফাইল রয়েছে। সাধারণত, এই ডিরেক্টরিটির নাম ফাইলের নামের মতো (কোনও .tar.gz
বা .tar.bz2
প্রসার ছাড়াই ) will যাইহোক, কখনও কখনও ডিরেক্টরি নামটি কোনও সংস্করণের তথ্য ছাড়াই কেবল অ্যাপ্লিকেশনটির নাম।
উত্স ডিরেক্টরিতে একটি README
ফাইল এবং / অথবা একটি INSTALL
ফাইল (বা অনুরূপ নামের কিছু) সন্ধান করুন। এই ফাইলগুলিতে সাধারণত অ্যাপ্লিকেশনটি কীভাবে তৈরি / সংকলন করা যায় এবং নির্ভরতা সম্পর্কে তথ্য সহ এটি ইনস্টল করা সম্পর্কিত দরকারী তথ্য রয়েছে। "নির্ভরতা" হ'ল অন্যান্য উপাদান বা গ্রন্থাগারের জন্য অভিনব নাম যা সফলভাবে সংকলন করা প্রয়োজন।
আপনি README
এবং / অথবা INSTALL
ফাইলটি পড়ার পরে (এবং আশাকৃতভাবে অ্যাপ্লিকেশনটির জন্য কোনও প্রাসঙ্গিক অনলাইন ডকুমেন্টেশনটি দেখেছেন), নাম নির্বাহী (ফাইলটিতে "এক্স" অনুমতি সেট আছে) ফাইলটি সন্ধান করুন config
বা configure
। কখনও কখনও ফাইলের একটি এক্সটেনশন থাকতে পারে, যেমন .sh
(যেমন, config.sh
)। এটি সাধারণত শেল স্ক্রিপ্ট যা আপনার অন্যান্য সংকলনের জন্য "বুদ্ধিমান" পরিবেশ রয়েছে তা নিশ্চিত করার জন্য কিছু অন্যান্য ইউটিলিটি চালায়। অন্য কথায়, এটি আপনার প্রয়োজনীয় যা কিছু ইনস্টল করেছেন তা নিশ্চিত করে পরীক্ষা করবে।
টিপ: এটি যদি একটি পাইথন-ভিত্তিক অ্যাপ্লিকেশন হয় তবে কোনও কনফিগার ফাইলের পরিবর্তে আপনার নামের একটি ফাইল খুঁজে পাওয়া উচিত setup.py
। পাইথন অ্যাপ্লিকেশনগুলি সাধারণত ইনস্টল করা খুব সহজ। এই অ্যাপ্লিকেশনটি ইনস্টল করতে, রুট হিসাবে (যেমন, উবুন্টুর নীচে নিম্নলিখিত কমান্ডের সামনে sudo রাখুন), এই কমান্ডটি চালান:
$ python setup.py install
আপনার যা করা দরকার তা হ'ল। আপনি এই টিউটোরিয়ালটির বাকী অংশটি এড়িয়ে যেতে পারেন এবং সরাসরি আপনার অ্যাপ্লিকেশনটি ব্যবহার এবং উপভোগ করতে পারেন।
টার্মিনালে কনফিগারেশন স্ক্রিপ্ট চালান। সাধারণত, আপনি আপনার নিয়মিত ব্যবহারকারীর অ্যাকাউন্ট দিয়ে আপনার কনফিগারেশন স্ক্রিপ্টটি (এবং হওয়া উচিত) চালাতে পারেন।
$ ./config
এটি কী করছে তা সম্পর্কে ধারণা দেওয়ার জন্য স্ক্রিপ্টটি কিছু বার্তা প্রদর্শন করবে। প্রায়শই, স্ক্রিপ্টটি আপনাকে সফল বা ব্যর্থ হয়েছে কিনা এবং যদি এটি ব্যর্থ হয় তবে ব্যর্থতার কারণ সম্পর্কে কিছু তথ্য আপনাকে একটি ইঙ্গিত দেয়। যদি আপনি কোনও ত্রুটি বার্তা না পান তবে আপনি সাধারণত ধরে নিতে পারেন যে সবকিছু ঠিকঠাক হয়ে গেছে।
আপনি যদি কোনও স্ক্রিপ্ট খুঁজে না পান যা কোনও কনফিগারেশন স্ক্রিপ্টের মতো লাগে তবে এর সাধারণত অর্থ হল অ্যাপ্লিকেশনটি খুব সাধারণ একটি এবং এটি প্ল্যাটফর্মটি স্বতন্ত্র। এর অর্থ হ'ল আপনি কেবল নীচের বিল্ড / কমপাইল পদক্ষেপটি এড়িয়ে যেতে পারেন, কারণ প্রদত্ত যে Makefile
কোনও সিস্টেমে কাজ করা উচিত।
একটি উদাহরণ
এই টিউটোরিয়ালে, আমি অ্যাপ্লিকেশনটি তৈরি করার সময় আপনি যে ধরণের ত্রুটির মুখোমুখি হতে পারেন তার উদাহরণ হিসাবে নিউজবাউটার নামে পাঠ্য-ভিত্তিক আরএসএস পাঠক ব্যবহার করতে যাচ্ছি। নিউজবাটারের জন্য, কনফিগারেশন স্ক্রিপ্টের নাম config.sh
। আমার সিস্টেমে যখন আমি রান করি তখন config.sh
নিম্নলিখিত ত্রুটিগুলি ঘটে:
tester@sitlabcpu22:~/download/newsbeuter-1.3$ ./config.sh
Checking for package sqlite3... not found
You need package sqlite3 in order to compile this program.
Please make sure it is installed.
কিছু গবেষণা করার পরে, আমি দেখতে পেলাম, আসলে, sqlite3
অ্যাপ্লিকেশনটি ইনস্টল করা হয়েছিল। তবে, যেহেতু আমি উত্স থেকে তৈরি করার চেষ্টা করছি, এটি এমন একটি টিপ যা config.sh
আসলে যা খুঁজছে তা হ'ল উন্নয়ন লাইব্রেরি (শিরোলেখ) sqlite3
। উবুন্টুতে, বেশিরভাগ প্যাকেজগুলির একটি সম্পর্কিত ডেভেলপমেন্ট কাউন্টার পার্ট প্যাকেজ থাকে যা শেষ হয় -dev
। (অন্যান্য প্ল্যাটফর্ম, যেমন ফেডোরা, প্রায়শই -devel
বিকাশ প্যাকেজগুলির জন্য প্যাকেজ প্রত্যয় ব্যবহার করে))
sqlite3
বিকাশ প্যাকেজের উপযুক্ত প্যাকেজটি সন্ধান করতে আমরা apt-cache
উবুন্টুতে ইউটিলিটিটি ব্যবহার করতে পারি (এবং একইভাবে yum
ফেডোরার ইউটিলিটি):
tester@sitlabcpu22:~/download/newsbeuter-1.3$ sudo apt-cache search sqlite
এই কমান্ডটি ফলাফলের একটি বৃহত তালিকার প্রত্যাবর্তন করে, তাই উপযুক্ত প্যাকেজটি কোনটি তা নির্ধারণ করতে আমাদের কিছুটা গোয়েন্দা কাজ করতে হবে। এই ক্ষেত্রে, উপযুক্ত প্যাকেজটি পরিণত হয় libsqlite3-dev
। লক্ষ্য করুন যে কখনও কখনও আমরা যে প্যাকেজটির সন্ধান করছি তার lib
কেবল একই প্যাকেজের নাম প্লাসের পরিবর্তে উপসর্গ থাকবে -dev
। এটি কারণ কখনও কখনও আমরা কেবল একটি ভাগ করা লাইব্রেরি খুঁজছি যা বিভিন্ন বিভিন্ন অ্যাপ্লিকেশন দ্বারা ব্যবহৃত হতে পারে। ইনস্টল করতে libsqlite3-dev
, টার্মিনালে টিপিকাল অ্যাপ-গেট ইনস্টল কমান্ডটি চালান:
tester@sitlabcpu22:~/download/newsbeuter-1.3$ sudo apt-get install libsqlite3-dev
এখন, আমরা config.sh
এই নির্ভরতা সমস্যার সমাধান করেছি এবং আমাদের আর কোনও নির্ভরতার সমস্যা না রয়েছে তা নিশ্চিত করার জন্য আমাদের আবার দৌড়াতে হবে। (যদিও আমি এটি এখানে দেখাব না, নিউজবাটারের ক্ষেত্রে, আমাকে libcurl4-openssl-dev
প্যাকেজটিও ইনস্টল করতে হবে ।) এছাড়াও, আপনি যদি কোনও বিকাশ প্যাকেজ ইনস্টল করেন (যেমন libsqlite3-dev
) এবং সম্পর্কিত অ্যাপ্লিকেশন প্যাকেজ (যেমন, sqlite3
) না হয় ইতিমধ্যে ইনস্টল করা হয়েছে, বেশিরভাগ সিস্টেম একই সময়ে সংশ্লিষ্ট অ্যাপ্লিকেশন প্যাকেজটি স্বয়ংক্রিয়ভাবে ইনস্টল করবে।
যখন কনফিগারেশনটি সফলভাবে চলে, ফলাফলটি এটি এক বা একাধিক মেক ফাইল তৈরি করবে। এই ফাইলগুলির নাম সাধারণত দেওয়া হয় Makefile
(ইউনিক্স / লিনাক্সে ফাইলের নামের বিষয়টি মনে রাখবেন!)। যদি বিল্ড প্যাকেজটিতে উপ-ডিরেক্টরিগুলি অন্তর্ভুক্ত থাকে src
, ইত্যাদি ইত্যাদি অন্তর্ভুক্ত থাকে তবে এই উপ-ডিরেক্টরিগুলির মধ্যে একটিতে একটিও থাকবে Makefile
।
বিল্ডিং এবং সংকলন ত্রুটি
এখন, আমরা আসলে অ্যাপ্লিকেশনটি সংকলন করতে প্রস্তুত। এটিকে প্রায়শই বিল্ডিং বলা হয় এবং নামটি কিছু নির্মাণের বাস্তব-বিশ্ব প্রক্রিয়া থেকে ধার করা হয়। অ্যাপ্লিকেশনটির বিভিন্ন "টুকরা", যা সাধারণত একাধিক উত্স কোড ফাইল হয়, একত্রে সামগ্রিক অ্যাপ্লিকেশনটি তৈরি করে। মেক ইউটিলিটি বিল্ড প্রক্রিয়া পরিচালনা করে এবং অন্যান্য অ্যাপ্লিকেশনগুলিকে যেমন সংকলক এবং লিঙ্কারকে ডেকে আনে আসলে কাজটি করার জন্য। বেশিরভাগ ক্ষেত্রে আপনি যে ডিরেক্টরিটি কনফিগারেশন চালিয়ে গিয়েছিলেন কেবল সেখান থেকে মেক (আপনার নিয়মিত ব্যবহারকারী অ্যাকাউন্ট সহ) চালান। (যেমন কিউটি লাইব্রেরির সাথে লিখিত অ্যাপ্লিকেশনের সংকলন হিসাবে কয়েক ক্ষেত্রে, ইন, আপনি যদি এর পরিবর্তে qmake মত অন্য "মোড়কের" অ্যাপ্লিকেশন চালানোর জন্য প্রয়োজন হবে। আবার, সবসময় পরীক্ষা README
এবং / অথবা INSTALL
বিস্তারিত জানার জন্য নথি।)
উপরের কনফিগারেশন স্ক্রিপ্টের মতো, আপনি যখন টার্মিনালে মেক (বা অনুরূপ ইউটিলিটি) চালাবেন, এটি কী সম্পাদন করছে এবং কোনও সতর্কতা এবং ত্রুটি সম্পর্কে কিছু বার্তা প্রদর্শন করবে। আপনি সাধারণত সতর্কতাগুলিকে অগ্রাহ্য করতে পারেন, কারণ এগুলি মূলত অ্যাপ্লিকেশন বিকাশকারীদের জন্য এবং তাদের বলছেন যে কিছু মানক অনুশীলন রয়েছে যা লঙ্ঘিত হচ্ছে। সাধারণত, এই সতর্কতাগুলি অ্যাপ্লিকেশন কার্যকে প্রভাবিত করে না। অন্যদিকে, সংকলক ত্রুটিগুলি অবশ্যই মোকাবেলা করতে হবে। নিউজবাটারের সাহায্যে, আমি যখন দৌড়ে এসেছি তখন কিছুক্ষণের জন্য জিনিস ঠিকঠাক হয়ে গেছে, তবে তারপরে আমার একটি ত্রুটি হয়েছিল:
tester@sitlabcpu22:~/download/newsbeuter-1.3$ make
...
c++ -ggdb -I/sw/include -I./include -I./stfl -I./filter -I. -I./xmlrss -Wall -Wextra -DLOCALEDIR=\"/usr/local/share/locale\" -o src/configparser.o -c src/configparser.cpp
c++ -ggdb -I/sw/include -I./include -I./stfl -I./filter -I. -I./xmlrss -Wall -Wextra -DLOCALEDIR=\"/usr/local/share/locale\" -o src/colormanager.o -c src/colormanager.cpp
In file included from ./include/pb_view.h:5,
from src/colormanager.cpp:4:
./include/stflpp.h:5:18: error: stfl.h: No such file or directory
In file included from ./include/pb_view.h:5,
from src/colormanager.cpp:4:
./include/stflpp.h:33: error: ISO C++ forbids declaration of \u2018stfl_form\u2019 with no type
./include/stflpp.h:33: error: expected \u2018;\u2019 before \u2018*\u2019 token
./include/stflpp.h:34: error: ISO C++ forbids declaration of \u2018stfl_ipool\u2019 with no type
./include/stflpp.h:34: error: expected \u2018;\u2019 before \u2018*\u2019 token
make: *** [src/colormanager.o] Error 1
প্রথম ত্রুটির সম্মুখীন হওয়ার সাথে সাথে মেক প্রক্রিয়াটি বন্ধ হয়ে যাবে। সংকলক ত্রুটিগুলি পরিচালনা করা কখনও কখনও কৌশলযুক্ত ব্যবসায় হতে পারে। সমস্যা সম্পর্কে কিছু সূত্রের জন্য আপনাকে ত্রুটিগুলি দেখতে হবে। সাধারণত সমস্যাটি হ'ল কিছু শিরোলেখ ফাইল, যা সাধারণত বর্ধিত থাকে .h
বা .hpp
থাকে না। উপরের ত্রুটির ক্ষেত্রে এটি স্পষ্ট হয় (বা হওয়া উচিত!) সমস্যাটি হ'ল stfl.h
হেডার ফাইলটি খুঁজে পাওয়া যায় না। যেমন এই উদাহরণটি দেখায়, আপনি ত্রুটি বার্তার প্রথম লাইনটি দেখতে এবং সমস্যার অন্তর্নিহিত কারণ খুঁজতে আপনার পথে কাজ করতে চান।
নিউজবাউটার ডকুমেন্টেশন (যা শুরু করার আগে আমার করা উচিত ছিল, তার পরে দেখার পরে) তবে টিউটোরিয়ালটির এই অংশটি খুব অর্থবহ হবে না!), আমি আবিষ্কার করেছি যে এটির জন্য একটি তৃতীয় পক্ষের লাইব্রেরি প্রয়োজন এসটিএফএল। সুতরাং আমরা এই ক্ষেত্রে কি করব? ঠিক আছে, আমরা প্রয়োজনীয়ভাবে এটি প্রয়োজনীয় লাইব্রেরির জন্য একই একই প্রক্রিয়াটি পুনরাবৃত্তি করি: গ্রন্থাগারটি অর্জন করুন এবং এর জন্য কনফিগার-বিল্ড-ইনস্টল প্রক্রিয়াটি কার্যকর করুন এবং তারপরে, পছন্দসই অ্যাপ্লিকেশনটি তৈরি করা পুনরায় শুরু করুন। উদাহরণস্বরূপ, এসটিএফএল এর ক্ষেত্রে, libncursesw5-dev
এটি সঠিকভাবে তৈরি করার জন্য আমাকে প্যাকেজটি ইনস্টল করতে হয়েছিল । (সাধারণত, অন্য প্রয়োজনীয় অ্যাপ্লিকেশন ইনস্টল করার পরে আমাদের মূল অ্যাপ্লিকেশনটিতে কনফিগারেশন পদক্ষেপটি পুনরায় করা প্রয়োজন হয় না তবে এটি কখনও আঘাত করে না))
এসটিএফএল টুলকিট সফলভাবে ইনস্টল করার পরে, নিউজউইটারের জন্য তৈরি প্রক্রিয়াটি সফলভাবে চলল। মেক প্রক্রিয়াটি সাধারণত যেখানে এটি ছেড়ে যায় সেখানে বাছাই করে (ত্রুটির বিন্দুতে)। সুতরাং, ইতিমধ্যে সফলভাবে সংকলিত যে কোনও ফাইল পুনরায় সংযোগ করা হবে না। আপনি যদি সমস্ত কিছু পুনরায় সংকলন করতে চান তবে আপনি যে কোনও সংকলিত অবজেক্টগুলি সরাতে ক্লিন ক্লিন রান করে আবার মেক চালাতে পারেন।
ইনস্টল করার প্রক্রিয়া
বিল্ড প্রক্রিয়াটি সফলভাবে শেষ হওয়ার পরে, আপনি অ্যাপ্লিকেশনটি ইনস্টল করতে প্রস্তুত। বেশিরভাগ ক্ষেত্রে, ফাইল সিস্টেমের সাধারণ অঞ্চলে অ্যাপ্লিকেশন ইনস্টল করতে (যেমন, /usr/bin
বা /usr/share/bin
, ইত্যাদি), আপনাকে রুট হিসাবে ইনস্টলেশন চালাতে হবে। ইনস্টল করা পুরো প্রক্রিয়াটির পক্ষে সহজতম পদক্ষেপ। ইনস্টল করতে, টার্মিনাল রান করুন:
$ make install
কোনও ত্রুটির জন্য এই প্রক্রিয়াটির আউটপুট পরীক্ষা করুন। যদি সবকিছু সফল হয় তবে আপনার কমান্ডের নাম টার্মিনালে চালানো উচিত এবং এটি চালু হবে। (কমান্ড লাইনের শেষে যুক্ত করুন, যদি এটি কোনও জিইউআই অ্যাপ্লিকেশন হয়, বা আপনি অ্যাপ্লিকেশনটি শেষ না হওয়া পর্যন্ত টার্মিনাল সেশনটি ব্যবহার করতে পারবেন না))
আপনি যখন উত্স থেকে কোনও অ্যাপ্লিকেশন তৈরি করেন, এটি সাধারণত উবুন্টুতে জিইউআই মেনুগুলিতে কোনও আইকন বা শর্টকাট যুক্ত করে না। আপনাকে এটি ম্যানুয়ালি যুক্ত করতে হবে।
এবং উবুন্টুতে উত্স থেকে কোনও অ্যাপ্লিকেশন তৈরি এবং ইনস্টল করার জন্য এটি মূলত প্রক্রিয়া, আপনি কয়েকবার এটি করার পরে এটি আপনার দ্বিতীয় প্রকৃতির হয়ে উঠবে!