উবুন্টুতে একটি নেট প্রোগ্রাম চলাকালীন আমাকে কেবল foo.exe বা আইকনে ডাবল ক্লিক করার পরিবর্তে "mono foo.exe" টাইপ করতে হবে। শুধু foo.exe চালানোর কোনও উপায় আছে?
উবুন্টুতে একটি নেট প্রোগ্রাম চলাকালীন আমাকে কেবল foo.exe বা আইকনে ডাবল ক্লিক করার পরিবর্তে "mono foo.exe" টাইপ করতে হবে। শুধু foo.exe চালানোর কোনও উপায় আছে?
উত্তর:
এই লিঙ্কটি সাহায্য করে? চলমান মনো
বিনফএমটি ব্যবহারে মনো প্রকল্প থেকে:
.Exe অ-নেটিভ বাইনারি হিসাবে নিবন্ধন করা (কেবল লিনাক্স)
এটি একটি লিনাক্স-নির্দিষ্ট বৈশিষ্ট্য, তাই আমরা সুপারিশ করি না যে বিকাশকারীরা এই সমাধানটি স্থাপন করুন, কারণ এটি তাদের স্ক্রিপ্টগুলির বহনযোগ্যতা সীমাবদ্ধ করে।
তদতিরিক্ত , অ্যাপ্লিকেশন ডিপ্লোয়মেন্ট গাইডলাইনস অনুসারে এই পদ্ধতিটি কাজ করে না ।
আপনি সিস্টেম ব্যাপী পরিবর্তনও করতে পারেন এবং এক্সেপ ফাইলগুলিকে অ দেশীয় বাইনারি হিসাবে নিবন্ধিত করতে বিনফ্যাম্ট ব্যবহার করতে পারেন। তারপরে, এক্সিপ ফাইলটি চালু করার চেষ্টা করার সময়, কার্নেলটি কমান্ডটি পরিচালনা করার জন্য মনো ইন্টারপ্রেটার চালাবে। বিএনএফএমটি উইন্ডোজ এক্সিকিউটেবলগুলি ডাব্লু ওয়াইন, বা জাভা .ক্লাস ফাইলগুলি একটি জেভিএম ব্যবহার করে চালু করতে ব্যবহার করা যেতে পারে। কার্নেলের সাথে এক্স নিবন্ধন করতে:
রুট হয়ে উঠুন এবং এই কমান্ডটি দিয়ে আপনার কার্নেলের বিনফ্ম্ট মডিউলটি চালু করুন:
sudo apt-get install binfmt-support
modprobe binfmt_misc
এছাড়াও, আপনি বুট স্ক্রিপ্টে modprobe
কমান্ডটি যুক্ত করতে চাইতে পারেন /etc/rc.local
, যাতে এটি বুটে কার্যকর হয়।
আপনার /etc/fstab
ফাইলে নীচের লাইনটি যুক্ত করুন:
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none
তারপরে, আপনার সিস্টেমটি বুট-এ নিম্নলিখিত কমান্ডটি চালাবেন:
echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
আপনার .exe ফাইলগুলিও ফাইল সিস্টেমে এক্সিকিউটেবল হিসাবে চিহ্নিত করতে ভুলবেন না:
chmod +x myprogram.exe
মনে রাখবেন এটি আপনার কার্নেলটি পরিবর্তন করে না, আপনি যখন সিস্টেম বুট করার সময় এটি লোড হয় কেবল তখনই। অন্য কথায়, আপনি এই পরিবর্তনগুলি হারাতে উদ্বিগ্ন না হয়ে আপনার কার্নেলটি আপগ্রেড করতে পারেন। একইভাবে, আপনি এই বিভাগে তালিকাভুক্ত হওয়া যে কোনও অনুরোধ পদ্ধতিকে প্রভাবিত না করে আপনার মনো রানটাইমকে আপগ্রেড করতে পারেন।
FATAL: Module binfmt not found
12.04 এ পেয়েছে
একটি স্টার্টআপ স্ক্রিপ্ট তৈরি করুন।
একটি সরল পাঠ্য সম্পাদক খুলুন, এটি যুক্ত করুন:
#!/bin/bash
mono foo.exe &
আপনার সেটআপের উপর নির্ভর করে আপনার foo.exe এর জন্য পুরো পথটি ব্যবহার করতে হতে পারে।
উদাহরণস্বরূপ ফাইল সংরক্ষণ করুন foo.sh
।
এটি সম্পাদনযোগ্য করুন:
sudo chmod a+x foo.sh
আপনার এখন ডাবল ক্লিক করে foo.exe শুরু করতে সক্ষম হওয়া উচিত foo.sh
।
আপনি নটিলাসে এক্সটেনশন '.exe' যুক্ত করতে পারেন যার সাথে মৃত্যুদন্ড কার্যকর করা হবে /usr/bin/mono
আমি জানি এটি একটি পুরানো প্রশ্ন তবে আমি এটি গুগলের মাধ্যমে খুঁজে পেয়েছি এবং এটি আমার চিন্তাভাবনা করেছে। এটি একটি প্রধান হ্যাক তবে আপনি ডাউনলোড করতে পারেন
https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh
আপনার বাড়ীতে এবং .bashrc এ নিম্নলিখিতগুলি যুক্ত করুন
source ~/.bash-preexec.sh
preexec() {
if [[ $1 =~ [^\s]+\.exe$ ]]; then
eval "$1() { return 1; }"
export -f $1
/usr/bin/mono $1
fi
}
precmd() { [[ $1 =~ [^\s]+\.exe$ ]]; unset -f $1; }