जब मैं 16.04 एलटीएस से 18.04 एलटीएस में अपग्रेड करना चाहता था, तब मैंने डब्ल्यूएसएल उबंटू पर चल रहे विंडोज 10 1903 पर इस त्रुटि संदेश को देखा ।
do-release-upgrade
असफल होने के बाद , मैंने python
विकल्प की पेशकश की update-alternatives --config python
और फिर से अपग्रेड कमांड को चलाया। इससे कोई फायदा नहीं हुआ।
फिर मैंने लॉग फाइल को चेक किया /var/log/dist-upgrade/main.log
जिसमें लाइनें थीं
2019-09-02 20:58:08,686 DEBUG _pythonSymlinkCheck run
2019-09-02 20:58:08,687 DEBUG python symlink points to: '/etc/alternatives/python', but expected is 'python2.7' or
'/usr/bin/python2.7'
2019-09-02 20:58:08,688 ERROR pythonSymlinkCheck() failed, aborting
इसलिए यद्यपि त्रुटि संदेश में python3 का उल्लेख है , समस्या python2 के बारे में है ।
/usr/bin/python
लिंक करने के लिए अपग्रेड स्क्रिप्ट की जाँच करता है /usr/bin/python2
, DistUpgrade/DistUpgradeController.py
यहाँ का सोर्स कोड देखें : ubuntu लॉन्चपैड
इसलिए एक उपाय यह है कि वैकल्पिक प्रणाली से अजगर को पूरी तरह से हटा दिया जाए और सबसे लोकप्रिय उत्तर में वर्णित रूप से लिंक को मैन्युअल रूप से जोड़ दिया जाए।
यदि आप वैकल्पिक सिस्टम से अजगर को नहीं हटाना चाहते हैं, तो अपग्रेड प्रक्रिया के दौरान केवल लिंक को समय के लिए बदलें:
# rm /usr/bin/python
# ln -sf /usr/bin/python2.7 /usr/bin/python
# do-release-upgrade
इसने मेरे लिए काम किया।
नवीनीकरण प्रक्रिया के दौरान, लिंक स्वचालित रूप से मरम्मत की जाती है। इसलिए जब नवीनीकरण समाप्त हो जाता है, तो यह विकल्प निर्देशिका में अजगर प्रविष्टि की ओर इशारा करता है:
$ ls -l /usr/bin/python
lrwxrwxrwx 1 root root 24 Sep 2 22:01 /usr/bin/python -> /etc/alternatives/python
संपादित करें: पूरी तरह से जानकारी के लिए, यह समस्या तब भी प्रकट हो सकती है जब आप 18.04 LTS से 19.04 तक अपग्रेड करते हैं और एवर इस स्थिति पर भी लागू होता है।