আমি যখন গিট বাশ ব্যবহার করি (উইন্ডোজে), আমি এর সম্পূর্ণ পাথ নির্দিষ্ট না করেই কোনও এক্সিকিউটেবল চালাতে পারি না, যদিও এটি আমার প্যাথ ভেরিয়েবলের একটি ফোল্ডারে অবস্থিত। দেখে মনে হচ্ছে বাশ এটিকে চিনতে পারে না। কেন? আমি কি এটি ঠিক করতে পারি?
আমি যখন গিট বাশ ব্যবহার করি (উইন্ডোজে), আমি এর সম্পূর্ণ পাথ নির্দিষ্ট না করেই কোনও এক্সিকিউটেবল চালাতে পারি না, যদিও এটি আমার প্যাথ ভেরিয়েবলের একটি ফোল্ডারে অবস্থিত। দেখে মনে হচ্ছে বাশ এটিকে চিনতে পারে না। কেন? আমি কি এটি ঠিক করতে পারি?
উত্তর:
বুঝেছি. উইন্ডোজ ব্যবহারকারী হিসাবে, আমি এক্সটেনশন ছাড়াই এক্সিকিউটেবল নাম টাইপ করতে ব্যবহৃত হয়েছি। আমার ক্ষেত্রে, আমি একটি ফাইল ডেকে কার্যকর করতে চেয়েছিলাম cup.bat
। একটি উইন্ডোজ শেল, টাইপিং cup
যথেষ্ট হবে। বাশ এইভাবে কাজ করে না, এটি পুরো নাম চায়। টাইপিং সমস্যার cup.bat
সমাধান করে। (যদিও আমি ফাইলটি চালাতে সক্ষম হইনি, যেহেতু দৃশ্যত বাশ এর বিষয়বস্তু বুঝতে পারে না)
পশ-গিটে স্যুইচ করার আরও একটি কারণ ..
আমাকে সঠিক দিকের দিকে দেখানোর জন্য @ টমকে ধন্যবাদ।
alias cup=cup.bat
.bat
; এক্সটেনশনটি উইন্ডোজ ব্যাচের স্ক্রিপ্টকে বোঝায় - বিশেষ করে উইন্ডোজ মেশিনে।
সম্ভবত বাশ আপনার উইন্ডোজ পাথটি দেখতে পাবে না। এটিenv|grep PATH
কোন পাথটি দেখছে তা নিশ্চিত করতে ব্যাশে টাইপ করুন ।
@ ড্যানিয়েলের মন্তব্য অনুসরণ করে এবং @ টমের জবাবের জন্য ধন্যবাদ জানার পরে, আমি জানতে পেরেছিলাম যে গিট বাশ সত্যই প্যাথ ব্যবহার করছে তবে আমি সম্প্রতি ইনস্টল করা সর্বশেষতম পাথ নয়। এই সমস্যাটি সমাধান করার জন্য, আমি নিজের বাড়ির (উইন্ডোজ) ডিরেক্টরিতে একটি ফাইল যুক্ত করেছি:
.bashrc
এবং নিম্নলিখিত বিষয়বস্তু:
PATH=$PATH:/c/Go/bin
কারণ আমি গো ইনস্টল করছিলাম এবং এই পথে এক্সিকিউটেবল go.exe
নও গিট বাশ কমান্ডটি সনাক্ত করতে সক্ষম ছিল:
go
সম্ভবত আমার ক্ষেত্রে কেবল একটি সিস্টেম রিবুট যথেষ্ট ছিল তবে আমি খুশী যে এই সমাধানটি যে কোনও ক্ষেত্রেই কাজ করে।
PATH=$PATH:/c/Go/bin:/c/other/path
c:/Users/[myusername]/
এটি আমার হোম ডিরেক্টরি
আপনি গিট ইনস্টল করার সময় আপনি নীচে প্রদর্শিত বিকল্পটি নির্বাচন করতে পারেন, এটি আপনাকে স্বয়ংক্রিয়ভাবে পথ নির্ধারণ করতে সহায়তা করবে।
এটি আমার জন্য কার্যকর হয়েছিল :)
সি: \ ব্যবহারকারী \ USERNAME এ একটি ফাইল তৈরি করুন যা কনফিগার.বাশার্ক নামে পরিচিত, এতে রয়েছে:
PATH=$PATH:/c/Program\ Files\ \(x86\)/Application\ with\ space
এখন কমান্ড লাইনে ফাইলটি সঠিক অবস্থানে নিয়ে যান:
mv config.bashrc .bashrc
PATH এ নতুন মান যুক্ত করার পরে কম্পিউটার পুনরায় চালু করুন।
পুরানো প্রশ্ন তবে এটি অন্য কাউকে সহায়তা করতে পারে।
আমি আমার পাঠ্য ব্যবহারকারীকে প্রশস্ত করেছি, তার পরে আমি কেবল লগঅফ করে আবার লগইন করেছি।
হ্যাঁ, ওটাই! git bash
নতুন PATH মানটি সঠিকভাবে লোড করা হয়েছে।
export PATH=$NEW_PATH:$PATH
। এবং
আমি নিশ্চিত করতে পারি যে সিস্টেমটি পুনরায় আরম্ভ করার ফলে উইন্ডোতে পরিবেশগত পরিবর্তনশীল প্যাথ সেটটি গিট দ্বারা বাছাই করা হবে এবং অন্য কোনও স্বয়ংক্রিয় উপায় নেই তা নিশ্চিত করবে।
মনে হচ্ছে এটির মূল কারণটি হ'ল গিট বাশ সর্বদা% USERPROFILE% ভেরিয়েবলটি সঠিকভাবে পার্স করতে সক্ষম নয়। এটিকে সি: \ ব্যবহারকারীগণের সাথে তুলনামূলকভাবে পরিবর্তিত করার পরিবর্তে এটি সি: \ উইন্ডোজ \ সিস্টেম 32 \ সিস্টেমেপ্রোফিল value এর মানটি পেয়ে যায় this এটিকে একটি সম্পূর্ণ যোগ্য ঠিকানায় পরিবর্তন করার পরে, এটি কাজ করে এবং আমি পরে এটি সেট করে দিলেও, গিট বাশ এখনও কোনও কারণে সঠিক পথ রয়েছে।
কেস আপনার git-bash
'র PATH
কিন্তু দলিল না সর্বশেষ এবং আপনি একটি পুনরায় বুট করতে চান কিন্তু আপনার পুনর্জাত না PATH
গুলি, আপনি সমস্ত বন্ধের চেষ্টা করে দেখতে পারেন cmd.exe
, powershell.exe
এবং git-bash.exe
এবং সূচনা মেনুতে বা ডেস্কটপ থেকে এক cmd.exe উইন্ডো পুনরায় খোলা এবং যদি দেখতে PATH
env আপডেট করা হয় । যদি আপনি সিস্টেম-প্রশস্ত পরিবর্তন করে থাকেন তবে আপনাকে PATH
একটি সুবিধাযুক্ত সেমিডি উইন্ডোও খুলতে হবে।
দ্রষ্টব্য: এটি সমস্ত উইন্ডোজ সংস্করণগুলির সাথে কাজ করে না এবং cmd.exe
স্টার্ট মেনু বা ডেস্কটপ ব্যতীত অন্য কোথাও খালি কাজ করতে পারে না , আমার 3 কম্পিউটারের সাথে পরীক্ষিত হয়েছে এবং এর মধ্যে 2 টি কাজ করে। এটি কেন কাজ করে তা আমি বুঝতে পারি নি, তবে PATH
লগইন এবং লগআউট করার সময় যেহেতু পরিবেশের পরিবর্তনশীল স্বয়ংক্রিয়ভাবে উত্পন্ন হয়, আমি পরিবর্তনশীল যুক্তি দিয়ে সেই পরিবর্তনশীলটিকে বিশৃঙ্খলা করতে চাই না।
আমি যখন উইন 10-এ xgboost lib সংকলন করার জন্য মিংডাব্লু ব্যবহার করার চেষ্টা করি তখন আমি এই সমস্যার মুখোমুখি হই। অবশেষে আমি সমাধানটি খুঁজে পেলাম।
আপনার হোম ডিরেক্টরিতে .bashrc নামে একটি ফাইল তৈরি করুন (সাধারণত সি: \ ব্যবহারকারী \ ব্যবহারকারী নাম)। তারপরে এর সাথে পথ যুক্ত করুন। আপনার পথে ফাঁকা থাকলে উক্তি ব্যবহার করতে ভুলবেন না এবং সি: / এর পরিবর্তে / সি / ব্যবহার করতে ভুলবেন না
উদাহরণ স্বরূপ:
PATH = $ পাঠ: "/ সি / প্রোগ্রাম ফাইল / মিংডাব্লু- w64 / x86_64-7.2.0-পিক্সিক-সেহ-আরটি_ভি 5-রেভ 1 / মিংউউ 64 / বিন"
আমি আমার পক্ষে একটি বোকা ভুল করেছি। আমার উইন্ডোজ 10 মেশিনে আমার গোলং ওয়ার্কস্পেসের জন্য একটি সিস্টেম প্রশস্ত এবং একটি ব্যবহারকারী পরিবর্তনশীল পথ সেট ছিল। আমি যখন রিডানড্যান্ট সিস্টেমগুলির পরিবর্তনশীল পথটি সরিয়ে ফেলা এবং লগ অফ করে ফিরে এসেছি, তখন আমি সাফল্যের সাথে ব্যাশ এবং কল গো এনভিতে কল করে .exe ফাইলগুলি কল করতে সক্ষম হয়েছি।
যদিও ওপিকে উত্তর দেওয়া হয়েছে এটি অন্য একটি সমস্যা যা আপনার পথগুলি দেখার থেকে বাধা দিতে পারে। আমি কেবল এই সমস্যার সাথে আবার বাশ পরীক্ষা করেছি এবং মনে হচ্ছে এটি কোনও ধরণের সংঘাত দেয় যা পাথের কোনও একটিকে অনুসরণ করতে বাধা দেয়।
আমি জানি এটি একটি পুরানো প্রশ্ন তবে দুটি ধরণের পরিবেশ পরিবর্তনশীল রয়েছে। ব্যবহারকারীর মালিকানাধীন এক এবং প্রশস্ত একটি সিস্টেম। আপনি কীভাবে গিট ব্যাশ খুলবেন (ব্যবহারকারীর সুবিধার্থে বা প্রশাসকের সুবিধাসহ) PATH এনভায়রনমেন্ট ভেরিয়েবল আপনার ব্যবহারকারীর ভেরিয়েবল বা সিস্টেম ভেরিয়েবল হতে পারে। নিচে দেখ:
আগের উত্তরে যেমন বলা হয়েছে, env|grep PATH
আপনি কোনটি ব্যবহার করছেন তা দেখতে কমান্ডটি পরীক্ষা করে দেখুন এবং সেই অনুসারে আপনার পরিবর্তনশীল আপডেট করুন update বিটিডাব্লু, সিস্টেমটি পুনরায় বুট করার দরকার নেই। গিট ব্যাশটি বন্ধ করুন এবং আবার খুলুন
আমার ক্ষেত্রে এটি হিরকু ক্লাই এবং গিট ব্যাশ ইনস্টল করার সময় ঘটেছিল, আমি এখানে কাজ করার জন্য যা করেছি।
এই অবস্থান পেয়েছি
C:\Users\<username here>\AppData\Local
এবং ফাইলটি আমার কেস হিরকু ফোল্ডারে মুছুন। তাই আমি ফোল্ডারটি ডিলেড করে সিএমডি চালিয়েছি। এটা কাজ করছে
আপনার AT PATH ভেরিয়েবলটি সম্পাদনা / যুক্ত করার সময় (\) বিশেষ অক্ষরগুলি এড়িয়ে চলবেন না। উদাহরণস্বরূপ, প্রোগ্রাম ফাইলগুলিতে একটি অ্যাপ্লিকেশন ডিরেক্টরি এর মতো দেখাবে:
PATH=$PATH:/c/Program Files (x86)/random/application
এটি করবেন না:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/
আশাকরি এটা সাহায্য করবে.
PATH=$PATH:/c/Program Files (x86)/random/application
... এটি PATH সেট করার জন্য বাশ সিনট্যাক্স সঠিক নয়। এটি অস্থায়ীভাবে ডিরেক্টরিটিতে ডিরেক্টরি যুক্ত করবে /c/Program
, তারপরে Files
যুক্তি দিয়ে প্রোগ্রামটি চালানোর চেষ্টা করবে (x86)/random/application
। আপনার "এটি করবেন না" উদাহরণটিতে কেবল ভুলটি হ'ল এটি বন্ধনীগুলির জন্য দ্বিগুণ ব্যাকস্ল্যাশ হয়েছে, যখন একক ব্যাকস্ল্যাশ সঠিক হয়।
আপনারা যারা উইন্ডোজ সিস্টেম env সহ উপরে বর্ণিত সমস্ত পদ্ধতি ব্যবহার করে গেছেন। ভেরিয়েবল, .bashrc, .Bashprofile, ইত্যাদি এবং 'প্রতিধ্বনি $ PATH' এ সঠিক পথটি দেখতে পাচ্ছে ... আপনার জন্য আমার সমাধান থাকতে পারে।
এক্সিকিউটিভ 2> / ডিভ / নাল ব্যবহার করে ত্রুটিগুলি দমন করুন
আমার স্ক্রিপ্টটি ঠিক আছে তবে 'কমান্ড পাওয়া যায়নি' বা 'কোনও ডিরেক্টরি খুঁজে পাওয়া যায়নি' ত্রুটি ছুঁড়ে দিচ্ছিল, যদিও আমি বলতে পারি, পাথগুলি ফ্লাশ ছিল। সুতরাং, যদি আপনি এই ত্রুটিগুলি দমন করেন (এটি 'সেট + ই' যুক্ত করতেও পারে), এটি সঠিকভাবে কাজ করে না।
পাথ নামের একটি ব্যবহারকারী ভেরিয়েবল তৈরি করুন এবং% पथ% এর মান হিসাবে যুক্ত করুন, যা আমি লক্ষ্য করেছি গিত বাশ কেবলমাত্র ব্যবহারকারী ভেরিয়েবলগুলি দেখায় সিস্টেম সিস্টেম পরিবর্তনীয় নয়। উল্লিখিত পদ্ধতিটি সম্পাদন করে আপনি ব্যবহারকারীর ভেরিয়েবলগুলিতে আপনার সিস্টেমের পরিবর্তনশীল উন্মোচন করবেন।
উইন্ডোজ 7 পাথ এনভায়রনমেন্ট ভেরিয়েবলগুলিতে আমি সিস্টেম ভেরিয়েবল পাথের শেষে যুক্ত করি
\ সি: \ প্রোগ্রাম ফাইলগুলি it গিট \ বিন
এবং এটি এখন কাজ করে!