আমার একটি 32-বিট সিস্টেম রয়েছে যা একটি 64-বিট প্রসেসরের উপর চলে। পুনরায় ইনস্টল না করে কীভাবে আমি এটিকে সমস্ত -৪৪-বিটে রূপান্তর করব? আমি কোথাও দেখেছি যে এটি নতুন মাল্টিয়ার্ক কাঠামোর ফলস্বরূপ কার্যকর ।
আমার একটি 32-বিট সিস্টেম রয়েছে যা একটি 64-বিট প্রসেসরের উপর চলে। পুনরায় ইনস্টল না করে কীভাবে আমি এটিকে সমস্ত -৪৪-বিটে রূপান্তর করব? আমি কোথাও দেখেছি যে এটি নতুন মাল্টিয়ার্ক কাঠামোর ফলস্বরূপ কার্যকর ।
উত্তর:
টিএল; ডিআর: এটি করণীয় তবে জটিল। আমি নীচে একটি বিকল্প রূপরেখা আছে।
এখন দীর্ঘ বিবরণ , এবং এটি লবণের শস্যের সাথে নিন, কারণ আমি সেরা পথে নাও যেতে পারি:
এটি সম্ভব, এবং এখানে আমি শেষ দুই রাত যা করেছি তা এখানে রয়েছে: এখানে একটি উইকি এন্ট্রি রয়েছে যা বহুগুণ সমর্থন ছাড়াই পুরাতন-স্কুল পদ্ধতি বর্ণনা করে । এটি ভাঙা প্যাকেজগুলি ঠিক করার জন্য সহায়ক।
আপনার বেস সিস্টেমটি স্থানান্তর করতে, এটি করুন :
$ dpkg --print-architecture
i386
# dpkg --add-architecture amd64
$ dpkg --print-foreign-architectures
amd64
# apt-get update
# apt-get download gcc-4.6-base:amd64 libgcc1:amd64 libc6:amd64 \
libselinux1:amd64 zlib1g:amd64 libbz2-1.0:amd64 dpkg:amd64
# dpkg -i gcc-4.6-base*.deb libgcc*.deb libc*.deb libselinux*.deb \
libbz2*.deb zlib*.deb dpkg*.deb
$ dpkg --print-architecture
amd64
$ dpkg --print-foreign-architectures
i386
আপনার প্যাকেজগুলির কয়েকটি তখন amd64 হয় তবে বেশিরভাগ i386 এ থাকবে। apt-get upgrade
কিছু প্যাকেজ যত্ন নেবে, apt-get -f install
কিছু ত্রুটি মেরামত করবে, কিন্তু এখনও বেশিরভাগ প্যাকেজ i386 থাকবে। যদি আপনি এটি মোকাবেলা করতে চান, তবে কৌশলযুক্ত অংশটি এড়িয়ে যান;)
ব্যবহার করা dpkg --get-selections | grep :i386
আপনার সমস্ত প্যাকেজ ফিরিয়ে দেবে, আপনাকে এখনও স্থানান্তর করতে হবে।
আমার পরবর্তী ধারণাটি করা ছিল:
# apt-get install `dpkg --get-selections \
| grep i386 \
| awk {'gsub(/:i386/, ":amd64"); print $1'}`
তবে এটি একটি খারাপ ধারণা হিসাবে প্রমাণিত হয়েছিল: কিছু প্যাকেজ amd64 (যেমন libc6-i686) তে উপলব্ধ নেই, অ্যাপট-গিট বিভ্রান্ত হবে এবং উভয় সংস্করণে প্রচুর প্যাকেজ ইনস্টল করা হবে। প্রবণতা অনেক ম্যানুয়াল কাজ করতে হবে।
আরও অসুবিধা: কিছু প্রয়োজনীয় প্যাকেজগুলি প্রতিস্থাপন করা যেতে পারে, যাতে আপনার কাছে সর্বদা বাইনারি ইনস্টলের জন্য ইনস্টল করা থাকে তবে কিছু প্যাকেজগুলি আবার মুছে ফেলা এবং ইনস্টল করতে হবে, উদাহরণস্বরূপ আমার সাথে এই সমস্যা ছিল। আমি অন্য সিস্টেমে প্যাকেজগুলি পেলাম, প্যাকেজগুলির মাধ্যমে প্যাকেজগুলি বের করেছি ar p package.deb data.tar.gz | tar zx
এবং তারপরে scp
এক্সট্রাক্ট করা ফাইলগুলি সম্পাদনা করি scp -r ./* root@other_computer:/
, সুতরাং বাইনারিগুলি আবার উপলব্ধ। ধুয়ে ফেলুন এবং পুনরাবৃত্তি করুন এবং scp
এডি ফাইলগুলি ওভাররাইট করা হবে।
পরিবর্তে আমি কি করব
আমি নিম্নলিখিতগুলি করেছি, যখনই আমি সিস্টেমগুলি স্যুইচ করেছি:
ব্যাক আপ /home
, /etc
(এবং সম্ভবত /var
, /usr/local
আপনি পরিবর্তিত কিছু অন্যান্য ফাইল /root
,, ..., ওয়াইএমএমভি)
ইনস্টল করা প্যাকেজগুলির একটি তালিকা পান dpkg --get-selections > packagelist
এবং ফলস্বরূপ ফাইলটি অনুলিপি করুন packagelist
।
তারপরে ডেবিয়ানের একটি পরিষ্কার পুনরায় ইনস্টল করুন, সমস্ত ব্যবহারকারীকে আবার তৈরি করুন, সম্ভবত ভূমিকা ইত্যাদি
এর সাথে সমস্ত প্যাকেজ পুনরায় ইনস্টল করুন dpkg --set-selections < packagelist; apt-get -f install
।
ব্যাকআপ ডিরেক্টরিগুলি, ফাইলগুলি কপি করুন এবং আপনি বেশিরভাগ কাজ শেষ করেছেন।
এই পদ্ধতির এক নেতিবাচক দিক: গ্রন্থাগারগুলি সহ আপনার সমস্ত প্যাকেজগুলি ম্যানুয়ালি ইনস্টল হিসাবে চিহ্নিত করা হবে, সুতরাং সেগুলি আনইনস্টল করা হবে না, যখন কোনও প্যাকেজ তাদের উপর আর নির্ভর করে না।
apt-mark showauto
করা তালিকাটি রফতানি করতে এবং apt-mark auto
সেগুলিকে নতুন ইনস্টলেশনতে চিহ্নিত করতে ব্যবহার করতে পারেন ।
x86_64
এবং আমার সিস্টেম প্যাকেজগুলি 64৪-বিট প্রসেসরটি সর্বোত্তমভাবে ব্যবহার না করে তবে যত্নশীল হবেন না কী? ? আমি একটি 32-বিট ওএসও চালাচ্ছি। আমি অনুমান করি আমি যখন প্রথম
এখানে অন্যান্য উত্তরগুলি দেখায় যে এটি তাত্ত্বিকভাবে সম্ভব হলেও এটি খুব জটিল এবং সম্ভবত চেষ্টাটির পক্ষে মূল্যহীন। তবে, আপনি একটি পরিষ্কার ইনস্টল করতে পারেন এবং প্রক্রিয়াটি তুলনামূলকভাবে বেদনাবিহীন করতে পারেন যদি আপনি একইটি রাখেন $HOME
।
সাধারণ প্রক্রিয়া হবে
আপনার ইনস্টল করা প্যাকেজগুলির তালিকা এবং স্বয়ংক্রিয়ভাবে ইনস্টল হওয়া প্যাকেজগুলির তালিকার ব্যাকআপ করুন।
dpkg --get-selections '*' > package.list
apt-mark showauto >auto.list
নোট করুন যে আপনি মাল্টিআরচ ব্যবহার করে ইনস্টল করা যে কোনও প্যাকেজ নাম থেকে আর্কিটেকচারটি সরাতে পারেন :
dpkg --get-selections '*' | sed -e 's/:\(i386\|amd64\)//' > package.list
যদি আপনার /home
আলাদা পার্টিশন হয় তবে ইনস্টলেশন প্রক্রিয়া চলাকালীন এটি বিন্যাস করবেন না তা নিশ্চিত করুন। যদি এটি পৃথক বিভাজনে না থাকে তবে একটি ব্যাকআপ তৈরি করুন যা আপনি পরে থেকে পুনরুদ্ধার করতে পারেন:
tar cvzf home_backup.tgz $HOME/
আপনি আপনার নতুন সিস্টেম ইনস্টল করার পরে, অনুপস্থিত প্যাকেজগুলি ইনস্টল করুন
sudo dpkg --set-selections < package.list
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-mark auto $(cat auto.list)
আপনার $ হোম পুনরুদ্ধার করুন। টিজিজেড ফাইলটি অনুলিপি করুন এবং এটি আপনার $ হোম ডিরেক্টরিতে বের করুন:
tar xvzf home_backup.tgz
আপনি এটিকে সহজ করার জন্য পুদিনা যে সরঞ্জামগুলি সরবরাহ করে তার দিকে নজর রাখতেও পারেন। সেগুলি উবুন্টুতেও ইনস্টলযোগ্য হবে।
এটি তাত্ত্বিকভাবে সম্ভব, তবে সম্ভবত বিশ্বাসঘাতক। ডিবিয়ান মাল্টিআরচ বর্তমানে মাল্টার্ক লিবসকে সমর্থন করে তবে বাইনারিগুলি নয়। সুতরাং যে আছে।
সিস্টেমটি প্রাথমিকভাবে তার নিজস্ব আর্কিটেকচারটি বুঝতে পারে dpkg-architecture
(যা আসলে পার্ল স্ক্রিপ্ট, তবে এটি খিলান তথ্যটি বের করে এবং এটি প্রদর্শন করে), যা আর্কিটেকচারটি সেট করতে সক্ষম বলেও দাবি করে ।
মোটামুটি প্রক্রিয়াটি হ'ল:
libgcc1
)dpkg-architecture -aamd64
আপনার খিলান স্থানান্তর করতে ব্যবহার করুন (দ্রষ্টব্য, এটি জিসিসি সম্পর্কে অভিযোগ করতে পারে)dpkg
এবং নির্ভরতা ইনস্টল করার জন্য জোর করেapt-get
কার্নেল সহ প্রয়োজনীয় বেস সিস্টেম প্যাকেজগুলির amd64 ভেরিয়েন্টগুলি ইনস্টল করার জন্য জোর করুন (দ্রষ্টব্য, এটি একটি LOT অভিযোগ করতে পারে)apt-get
এই পদক্ষেপগুলি গত 12 বছর ধরে ( debtakeover
আগে ব্যবহার সহ ) এবং আমি যে পদ্ধতি গ্রহণ করব সে সম্পর্কে ডিবিয়ান এটি প্রায় একচেটিয়াভাবে লিনাক্স ডিস্ট্রোজের মধ্যে ব্যবহার করেছে এবং যে পদ্ধতির বিষয়ে আমি জানি তার উপর ভিত্তি করে । সুতরাং এটি আপনার নিজের ঝুঁকিতে বিবেচনা করুন । পদক্ষেপ 4 চেষ্টা করার পরে আপনার সিস্টেমটি যে কোনও সময় অকেজো হয়ে যেতে পারে 4 ও ৫ ধাপের বিকল্প হতে পারে debbootstrap
।
সর্বাধিক গুরুত্বপূর্ণ, আমি আপনার যত্ন নেওয়ার কোনও বিষয় করার আগে একটি ভিএম এ চেষ্টা করার পরামর্শ দিচ্ছি।
শুভকামনা, এবং বাহিনী আপনার সাথে থাকুক ।
প্রশ্নের উত্তর নয়, তবে x86 থেকে amd64 এ সমস্ত প্যাকেজ আপগ্রেড করা কঠিন হতে পারে তবে আপনি কমপক্ষে সহজেই amd64 কার্নেল প্যাকেজটি ইনস্টল করতে পারেন যা আপনাকে কমপক্ষে bit৪ বিট অ্যাপ্লিকেশন এবং ভার্চুয়াল মেশিন এবং পাত্রে চালানোর অনুমতি দেয় ( যা আপনার প্রয়োজনের জন্য যথেষ্ট হতে পারে)।
মাত্র amd64 লিনাক্স-চিত্র প্যাকেজটি ইনস্টল করুন dpkg -i --force-architecture
।
--force-architecture
প্রয়োজন নেই এবং amd64 কার্নেলটি i386-এ অ্যাপের মাধ্যমে ইনস্টল করা যেতে পারে।
সেখানে বেশ কয়েকটি ম্যানুয়াল রয়েছে, তবে সত্যিই কী আশা করা যায় তা খুব কমই দেখাতে পারে। আমি এটি একটি ডেবিয়ান হুইজি ল্যাপটপে লিখছি যা আমি সবেমাত্র 32 বিট থেকে 64 আপগ্রেড করা শেষ করেছি এবং এটি সত্যই কার্যকর হয়।
আমি এই নির্দেশাবলী অনুসরণ করেছিলাম এবং আপনি আসলে কী মুখোমুখি হবেন সে সম্পর্কে তারা সত্যই সঠিক ছিল:
http://blog.zugschlus.de/archives/972-How-to-amd64-an-i386-Debian-installation-with-multiarch.html
একটি সুপারিশটি হ'ল পুরো প্রক্রিয়াটি সিস্টেমকে চালিত করে রাখা, আপনি সমস্ত কিছু স্থানান্তরিত করেছেন এবং মুছে ফেলা সমস্ত কিছু আবার ইনস্টল করা হয়েছে (বিশেষত প্রয়োজনীয় প্যাকেজগুলি) আপনি নিশ্চিত না হয়ে পুনরায় বুট করবেন না, বা সিস্টেমটি আবার চালু হবে না।
Awk ব্যবহার করে ধারণাটি অনুসরণ করে , আমি ব্যবহার করে শেষ করেছি:
dpkg --get-selections \ # get the list
| grep -v deinstall \ # throw away deselected packages
| grep ':i386' \ # get the i386 arch packages
| sed 's/install//g' \ # drop 'install' to get list
| sed 's/:i386/:amd64/g' \ # replace i386 with amd64
| while read package; do \ # iterate over the result
apt-get -yf install $package; \ # install each one and fix dependencies
done
আমাকে কয়েকবার চালাতে হয়েছিল। dpkg --get-selections
কেবলমাত্র একটি বর্ণানুক্রমিক তালিকা, সুতরাং নীচে প্যাকেজগুলির জন্য শীর্ষে থাকা প্যাকেজগুলি পাস হয়ে যাবে। আপনি যদি কতটি ইনস্টল করা হচ্ছে তা দেখতে চান, লুপের dpkg --get-selections | grep amd64 | wc -l
ভিতরে করুন while
।
বিষয়টি নিয়ে আমার সামান্য অভিজ্ঞতা আছে, তবে আমি বিশ্বাস করি যে আপনি যখন 32 থেকে 64 তে রূপান্তর করেন তখন মাল্টি-আর্চ দিয়ে সক্ষম হওয়া উচিত বলে আপনি সঠিক ছিলেন believe এই নতুন সিস্টেমটি কতটা সমর্থিত তা সম্পর্কে আমি সতর্ক থাকব।
আমি এখানে যে নথিগুলি পড়েছিলাম সেগুলির মধ্যে একটি যা এখানে আলোচিত হয়েছিল, সম্ভবত এটি আপনাকে সহায়তা করবে: https://wiki.ubuntu.com/ মাল্টিয়ার্কস্পেক
তৃতীয় ব্যবহারকারী গল্পগুলি লক্ষ্য করুন। এখানে একই বিষয়ের চারপাশে আরেকটি লিঙ্ক এখানে দেওয়া হয়েছে: https://help.ubuntu.com/commune/M মাল্টিআর্ক ch
যদিও এটি ডেবিয়ান এবং উবুনুতুর মধ্যে আলাদা বাচ্চা হতে পারে তবে এটি একটি মূল বৈশিষ্ট্য। যা আমি কল্পনা করব যে উবুন্টু এবং দেবিয়ান এই কাঠামোটি জমিনে কাজ করার জন্য নিবিড়ভাবে কাজ করবে উবুন্টু তাদের নিজের মতো করে কিছুটা টেনে নিয়ে যাওয়ার আগে এবং তার নিজের পছন্দমতো কিছু করতে পারে।
শুভকামনা!