সফ্টওয়্যার জন্য শুধুমাত্র আপনি প্রয়োজন, পরিবর্তে আপনার বাড়িতে ডিরেক্টরি ব্যবহার /usr/local।
/usr/localযখন আপনি চান না তখন কমান্ডগুলির মালিকানা পরিবর্তন করতে বা রুট হিসাবে চালানোর পরিবর্তে আপনার বিল্ডগুলি কনফিগার করা উচিত যাতে তারা আপনার হোম ডিরেক্টরিতে পরিবর্তে ইনস্টল করে /usr/local। এটির মালিকানা পরিবর্তন /usr/localসহ সমস্ত সম্ভাব্য সমস্যাগুলির সমাধান করে , এর binএবং sbinসাব-ডিরেক্টরিগুলি কীভাবে তার rootপথে চলছে তা সহ ।
আপনার যদি অন্য ব্যবহারকারীদের আপনার সফ্টওয়্যারটি চালানোর অনুমতি দেওয়ার দরকার হয় তবে আপনি তাদের অ্যাক্সেস দিতে পারেন। প্রকৃতপক্ষে, তারা সম্ভবত ইতিমধ্যে সক্ষম হবেন, কারণ ডিফল্টরূপে আপনার হোম ডিরেক্টরিটিতে অ্যাক্সেস পড়ার অনুমতি দেওয়া হয় । (আপনি যদি এটি না চান তবে আপনি chmodব্যক্তিগত বা ব্যক্তিগতভাবে যে কোনও ফাইল বা ডিরেক্টরি তৈরি করতে চান তা ব্যবহার করে এবং এটি সম্ভবত আপনার পরিবর্তন করেও আপনি খুব সহজেই এটি পরিবর্তন করতে পারেন umask))
আপনার হোম ডিরেক্টরিতে সফ্টওয়্যার ইনস্টল করার সাথে, যে বাইনারিগুলি প্রবেশ করানো হয়েছে সেগুলি /usr/local/binতার পরিবর্তে প্রবেশ করবে । আপনি যে সফ্টওয়্যারটি ইনস্টল করেন তার সাব ডাইরেক্টরিগুলির সাথে সম্পর্কিত আপনার হোম ডিরেক্টরিটির অন্যান্য উপ-ডিরেক্টরিগুলি পাবেন । আপনি উত্স কোড থেকে সফ্টওয়্যার ইনস্টল করার সময় এটি স্বয়ংক্রিয়ভাবে ঘটবে।/home/username/bin/usr/local
আপনার বিল্ডগুলি কনফিগার করছে
আপনি উত্স কোড থেকে তৈরি বেশিরভাগ সফ্টওয়্যারটির একটি ধাপ রয়েছে যেখানে আপনি চালান:
./configure
configureস্ক্রিপ্টের সাহায্যে বহনকারী বেশিরভাগ সফ্টওয়্যার এর জন্য চালানো যেতে পারে, /usr/localশেষ পর্যন্ত আপনি যখন sudo make installএটি ইনস্টল করতে চলেছেন তখন এটি ভিতরে ইনস্টলেশনের জন্য বিল্ডটি কনফিগার করতে ডিফল্ট হয় । কারণটি হ'ল এটি স্পষ্টভাবে দৌড়ানোর সমতুল্য:
./configure --prefix=/usr/local
আপনার হোম ডিরেক্টরিতে ইনস্টলেশন জন্য একটি বিল্ড কনফিগার করতে, পরিবর্তে এটি ব্যবহার করুন:
./configure --prefix="$HOME"
অনুশীলনে, উবুন্টুতে, হোম ডিরেক্টরি পাথগুলিতে ফাঁকা স্থান, অন্যান্য সাদা জায়গা বা অন্যান্য অক্ষর নেই যা শেলের মতো বিশেষভাবে চিকিত্সা করবে * , সুতরাং আপনি যদি নিজের ব্যবহারকারী অ্যাকাউন্টটি বেশ অদ্ভুতভাবে সেট আপ না করেন তবে আপনি কেবল টাইপ করতে পারেন:
./configure --prefix=$HOME
(আমি এর অভ্যাসে থাকার পরামর্শ দিই না যদিও স্ক্রিপ্টগুলি লেখার , যদিও, অন্য কয়েকটি ওএসে - যেমন ম্যাকোস - ব্যবহারকারীর হোম ডিরেক্টরিতে ফাঁকা স্থান রাখার পথগুলির পক্ষে কম অস্বাভাবিক))
অথবা আপনি যদি পছন্দ করেন তবে আপনি নিজের হোম ডিরেক্টরি ডিরেক্টরিটি টাইপ করতে পারেন:
./configure --prefix=/home/username
(প্রতিস্থাপন username অবশ্যই আপনার প্রকৃত ব্যবহারকারীর some কোনও কারণে যদি আপনার হোম ডিরেক্টরিটি না থাকে /homeতবে আপনাকে সে অনুযায়ী সামঞ্জস্য করতে হবে))
আপনার বিল্ড ইনস্টল করা হচ্ছে
আপনি চালাতে পর make, আপনি চলমান অভ্যস্ত হতে পারে sudo make install, কিন্তু আপনি আপনার নিজের বাড়ির ডিরেক্টরির মধ্যে ইনস্টল করুন, আপনাকে, তাই আপনি যা করতে পারেন রুট হিসাবে এটি চালানোর জন্য প্রয়োজন হবে না - এবং উচিত --omit sudo। শেষ ঘন্টা:
make install
একইভাবে, সফ্টওয়্যারগুলির জন্য যা একটি uninstallলক্ষ্য সমর্থন করে :
make uninstall
আপনি ঠিক যা চেয়েছিলেন ঠিক এটিই আপনার বাড়ির ডিরেক্টরিতে নয় /usr/local।
আপনার প্রোগ্রাম চলমান
সম্ভবতbin আপনার বাড়িতে ডিরেক্টরি সাব পারেন হল:
- ইতিমধ্যে আপনার
$PATH, বা
- আপনার মধ্যে হতে হবে
$PATHযদি আপনি শুধু লগ আউট করে ফিরে।
কারণটি হ'ল .profileআপনার হোম ডিরেক্টরিতে থাকা ফাইলটিতে, আপনি লগ ইন করার সময় চলমান কমান্ডগুলি ধারণ করে, এটি উবুন্টুর বেশিরভাগ সংস্করণে তৈরি হওয়া অ্যাকাউন্ট অ্যাকাউন্টের জন্য ডিফল্টরূপে থাকে (আপনি ওএস ইনস্টল করার সময় তৈরি করা প্রশাসক অ্যাকাউন্ট সহ):
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
আপনি যখন লগ ইন করবেন তখন এই কোডটি চলবে (কারণ এটি এতে রয়েছে .profile) এবং আপনার ব্যক্তিগত binডিরেক্টরিটি $PATH কেবল তখনই উপস্থিত থাকলে তা স্থাপন করে। এজন্য আপনাকে লগ আউট এবং পিছনে প্রবেশ করতে হবে।
উবুন্টু 14.04 এর মতো পুরানো রিলিজ , পাশাপাশি উবুন্টু 17.10 এর মতো নতুন রিলিজ that তবে উবুন্টু ১.0.০৪, যা সম্ভবত এই লেখার সবচেয়ে জনপ্রিয় প্রকাশ, এর পরিবর্তে এটি রয়েছে:
# set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
এটি কেবলমাত্র binআপনার ডিরেক্টরি ডিরেক্টরি --- পাশাপাশি .local/binউপ-ডিরেক্টরি - আপনার $PATHডিরেক্টরিতে যুক্ত করে those ডিরেক্টরিগুলি আসলে রয়েছে কিনা তা পরীক্ষা না করেই। সুতরাং আপনি যদি 16.04 ব্যবহার করেন বা আপনার ব্যবহারকারী অ্যাকাউন্ট তৈরির সময় আপনি যদি 16.04-এর সিস্টেম থেকে আপগ্রেড করেন তবে binআপনার হোম ডিরেক্টরিটির সাব-ডিরেক্টরিটি সম্ভবত ইতিমধ্যে আপনার মধ্যে রয়েছে$PATH ।
তোমার .profileফাইল থেকে অনুলিপি করা হয়েছে /etc/skelডিরেক্টরির যখন আপনার ব্যবহারকারী অ্যাকাউন্ট তৈরি করা হয়। যদি আপনার ব্যবহারকারী অ্যাকাউন্টটি কোনও পুরানো উবুন্টু প্রকাশে তৈরি করা হয়েছিল, তবে এটির সংস্করণটি পেয়ে গেল.profile , এবং এটির কোনও পরিবর্তন হয়নি - আপনার ব্যবহারকারী অ্যাকাউন্টের জন্য - আরও সাম্প্রতিক প্রকাশে আপগ্রেড করে।
একবার binআপনার বাড়ির ডিরেক্টরিটির উপ-ডিরেক্টরি আপনার মধ্যে $PATHএলে আপনি উবুন্টুর প্যাকেজ ম্যানেজার দ্বারা ইনস্টল করা বা ভিতরে ইনস্টল হওয়া প্রোগ্রামগুলির সাথে ঠিক তেমন প্রোগ্রামগুলি চালাতে সক্ষম হবেন যাঁর এক্সিকিউটেবল ফাইলগুলি কেবল তাদের নাম টাইপ করে ইনস্টল করা আছে /usr/local।
.localঅপশন
আপনি লক্ষ্য করেছেন যে .profileউপরে বর্ণিত ১ 16.০৪ সহ কিছু উবুন্টু প্রকাশে ব্যবহারকারী অ্যাকাউন্টগুলির জন্য ডিফল্ট ফাইলটি কেবল $HOME/binআপনার পথেই নয়, আরও যুক্ত করে $HOME/.local/bin। যদি .profileআপনি এটি যোগ না করেন তবে আপনি এটিতে চান তবে আপনি কেবল এটিকে সম্পাদনা করতে পারেন।
যদিও প্রায়শই সেটিংস এবং ক্যাশেড ডেটা সঞ্চয় করতে ব্যবহৃত হয় , আপনি .localনিজের হোম ডিরেক্টরিতে সাব-ডিরেক্টরিতেও সফ্টওয়্যার ইনস্টল করতে পারেন । এটি ব্যবহারে আপনার বাধা বোধ করা উচিত, যেমন একটি ব্যবহারযোগ্যতা এবং সুরক্ষা দৃষ্টিকোণ থেকে, --prefix="$HOME/.local"অনুরূপ --prefix="$HOME"।
মনে রাখবেন যে ফাইল এবং ডিরেক্টরিগুলি দিয়ে শুরু হয় .সেগুলি গ্রাফিকাল ফাইল ব্রাউজারগুলিতে ডিফল্টরূপে প্রদর্শন করা হয় না ( সেগুলি দেখানোর জন্য এবং পুনরায় প্রদর্শন করতে Ctrl+ ব্যবহার Hকরুন) বা lsকমান্ড দ্বারা ( সেগুলি প্রদর্শনের জন্য -Aবা -aপতাকাটি পাস করুন)। এটি আপনি যা চান তা নাও হতে পারে, বা এটি আপনি যা চান ঠিক তেমন হতে পারে। এটি ব্যক্তিগত পছন্দের বিষয়।
যাইহোক, আমি লক্ষ্য করেছি যে কিছু স্বয়ংক্রিয় উত্স-ভিত্তিক প্যাকেজ পরিচালক যা কারওর হোম ডিরেক্টরি ব্যবহার করে সফ্টওয়্যার তৈরি করে এবং ইনস্টল করে $HOME/.local। এটি আসলে কতটা সাধারণ তা আমি জানি না - আমি আরও উত্তর তদন্ত করে এই উত্তরটি আপডেট করার আশাবাদী - তবে আপনি $HOMEনিজে যে বিষয়গুলি সঙ্কলন করেন কেবল তার জন্য ব্যবহার করতে পছন্দ করতে পারেন । এই জিনিসগুলি কোথা থেকে এসেছে তা স্পষ্ট হবে। এবং যদি কোনও সংঘর্ষ হয় তবে সফ্টওয়্যারটি এখনও গ্রহণযোগ্যভাবে সহাবস্থান করার সম্ভাবনা রয়েছে।
আপনি ইচ্ছাকৃতভাবে কিছু সফ্টওয়্যার ইন $HOME/.localএবং অন্যান্য সফ্টওয়্যার ইনস্টল করতে পারেন $HOME। এটা আপনার উপর নির্ভর করছে. binআপনার $PATHএনভায়রনমেন্ট ভেরিয়েবলের মধ্যে যে ডিরেক্টরিটি প্রথম প্রদর্শিত হবে তা হ'ল কমান্ডটি চালিত হবে, যদি একই নামের আদেশ দুটি ক্ষেত্রেই বিদ্যমান থাকে।
ক্রেডিট যায় Zanna এবং Videonauth জন্য ত্রুটি ইশারা একটি পূর্ববর্তী সংস্করণ সংক্রান্ত যা উবুন্টু রিলিজ যা ডিফল্ট কোড আছে, এই উত্তর .profile, এবং সংশোধন করার জন্য আমাকে সাহায্য তাদের (এছাড়াও দেখুন এখানে )।