আমি bash
আমার শেল হিসাবে ম্যাকোএসএক্স এ আছি । আমার প্রতীকী লিঙ্ক আছে, এটি তৈরি করা হয়েছে:
ln -s /usr/bin/python python2
আমার কাছে একটি প্যাকেজ রয়েছে যা পাইথন 2 ব্যবহার করে এবং আমি আমার বর্তমান ওয়ার্কিং ডিরেক্টরিতে একটি প্রতীক লিঙ্ক তৈরি করতে চাই /usr/bin/python
যার সাথে আসলে পাইথন 2। আমি যখন python2
কমান্ড লাইন থেকে একটি করি তখন আমি এই ত্রুটিটি পাই:
python2: realpath couldn't resolve "/usr/bin/python2"
তবে এটির মতো অনুরোধ করা ./python2
পথটিকে সঠিকভাবে সমাধান করে। আমার PATH
হয়েছে .
তাতে। বাস্তবে আমি এটি পরিবর্তন করেছি, পরীক্ষার জন্য, কেবল .
এটির জন্য।
আমি কীভাবে এটি সমাধান করব? ধন্যবাদ!
প্রসঙ্গ
নীচে প্রস্তাবিত বেশ কয়েকটি সমাধান আমার পক্ষে কাজ করবে না। আমি আমার প্রশ্নটি যতটা সম্ভব কেন্দ্রীভূত এবং সংক্ষিপ্ত করে দেওয়ার চেষ্টা করেছি যাতে লোকেরা পাঠ্যের সমুদ্রে ডুবে না যায়, তবে স্পষ্টতই আমার আরও পটভূমি সরবরাহ করা প্রয়োজন।
আমি এমন একটি প্যাকেজ বিকাশের চেষ্টা করছি যা আমি গিট থেকে ক্লোন করেছি। মূল প্যাকেজটি, git-multimail
লিনাক্সের কিছু বৈকল্পিক / এ বিকাশ করা হয়েছিল (আমি উবুন্টু অনুমান করছি)। আমি এটি এবং ম্যাকোএসএক্সে এর টেস্ট স্যুটটি যতটা সম্ভব সংশোধন করে ব্যবহার করতে সক্ষম হতে এটি পরিবর্তন করার চেষ্টা করছি been প্রস্তাবিত সমাধানগুলির কিছু কেন আদর্শ নয় তা এখানে রয়েছে:
রুট হিসাবে,
python2
/ usr / bin / এ একটি সিমিলিংক তৈরি করুন । আমি এমন একটি সমাধান খুঁজছি যা এর প্রয়োজন হবে না। এটি শুরুতে একটি সুস্পষ্ট বিকল্প ছিল, তবে আমি এমন একটি সমাধান চাই যা হোস্ট সিস্টেমটিকে যতটা সম্ভব সংশোধন করবে। এই কারণেই আমি বর্তমান চলমান ডিরেক্টরি ডিরেক্টরিতে একটি অস্থায়ী সিমিলিংক তৈরি করতে চেয়েছিলাম,.
আমার পথে সিডাব্লুডি (ie ) যুক্ত করতে এবং তারপরে এটি শেষ করে (অর্থাত্ সিমলিংক)।বিদ্যমান পাইথন দিয়ে পাইথন স্ক্রিপ্ট কল করতে একটি মোড়ক স্ক্রিপ্ট তৈরি করুন। এটির সাথে সমস্যাটি হ'ল পরীক্ষার স্যুটের বেশিরভাগ আসল স্ক্রিপ্ট_ফায়ালগুলি এক্সিকিউটেবল হিসাবে ব্যবহার করে, সঠিক প্রয়োগের পরিবেশটি খুঁজে পেতে শেবাংয়ের উপর নির্ভর করে। এর অর্থ পরীক্ষার স্যুটটি যথেষ্ট সম্পাদনা করা। এই প্রসঙ্গে, (পরীক্ষার কাঠামোর স্নিপেটের জন্য নীচে দেখুন), আমাকে প্রতিটি
.py
ফাইলের জন্য একটি মোড়ক যুক্ত করতে হবে; আরও ব্যবহারকারী / বিকাশকারীরা কোন সিস্টেমে রয়েছে তার উপর নির্ভর করে প্যাকেজটি ব্যবহার করার জন্য বিভিন্ন বিধি সম্পর্কে সচেতন হতে হবে (অর্থাত ম্যাকোএসএক্স-এ নিশ্চিত করুন যে আপনি পাইথন ফাইলগুলি মোড়কের মাধ্যমে অনুরোধ না করে বা স্পষ্টভাবে কল না করে ব্যবহার করছেন না/usr/bin/python file.py
)।#! /bin/sh D=$(cd $(dirname "$0") && pwd) MULTIMAIL="$D/../git-multimail/git_multimail.py" POST_RECEIVE="$D/../git-multimail/post-receive" TESTREPO=$("$D/create-test-repo") HOME="$D" XDG_CONFIG_HOME="$D" GIT_CONFIG_NOSYSTEM=1 export HOME XDG_CONFIG_HOME GIT_CONFIG_NOSYSTEM cd $TESTREPO test_email() { REFNAME="$1" OLDREV="$2" NEWREV="$3" echo "$OLDREV" "$NEWREV" "$REFNAME" | USER=pushuser "$MULTIMAIL" }
সমস্ত
python2
রেফারেন্সে পরিবর্তন করা হচ্ছেpython
। README এটিকে পরামর্শ দেয় তবে এটি কার্যকরভাবে সংস্করণ নিয়ন্ত্রণকে অকেজো করে তোলে কারণ সিস্টেমটি পরিবর্তনটিকে নতুন সংস্করণ হিসাবে দেখায়, যখন বাস্তবে এটি (শব্দার্থগতভাবে) হয় না।
আমি ব্যবহার করছি (3) তবে আমি আরও ভাল সমাধানের সন্ধান করার চেষ্টা করছি। আমি মেনে নিতে চাই যে এই জিনিসগুলি ঠিক এইভাবে (যেমন 'পাইথন 2' নির্দেশ করার উপযুক্ত উপায় নেই /usr/bin/python
যা পরীক্ষার স্যুট এবং প্রকৃত কাঠামোর অনেকগুলি পরিবর্তন ছাড়াই বহনযোগ্য এবং আপত্তিজনক নয়) to
git-multimail.py
এটা #!/usr/bin/env python2
, তাই একটি (অপেক্ষাকৃত) সহজবোধ্য উপায় এই কাজ করতে হবে।
ln -s /usr/bin/python2.7 /usr/local/bin/python2
করেছে
ln -s /usr/bin/python /usr/bin/python2