Posts Tagged fedora 19

პითონის default ვერსიის შეცვლის, სიმბოლური ლინკებისა და yum-ის KeyboardInterrupt ერორის ამბავი

რამდენიმე ხნის წინ დამჭირდა პითონის დააფდეითება 2.7.5-დან 3.2.3-ზე ჩემს ფედორა 19-ზე. დააფდეითების შემდეგ ($ sudo yum upgrade python), ვერსიად მაინც ძველს (2.7.5) მაჩვენებდა.

მცირედი დაგუგლვის შემდეგ ვიპოვე, რომ საკითხის მოგვარება მარტივად შეიძლება პითონის სიმბოლური ლინკის შეცვლით:

/usr/bin-ში (სადაც არის პითონის ინსტალაცია), არის ფაილი python, რომელიც უთითებს პითონის ვერსიაზე.

ამის შემოწმება შეგვიძლია შემდეგნაირად:

$ readlink /usr/bin/python

python2

python2 იყო ბრძანების პასუხი.

symbolic link-ების შესაქმნელად თუ შესაცვლელად ვიყენებთ ln-ს. შეიძლება symbolic link ისე შევცვალოთ, რომ არ წავშალოთ.

პითონის შემთხვევაში:

$ ln -f -s /usr/bin/python3 /usr/bin/python

$ readlink /usr/bin/python

-f არის ბრძანების ფორსირება. -s არის სომბოლური ლინკის შექმნა. ამის შემდეგ, ჯერ ვუთითებთ target ფაილს/ფოლდერს, შემდეგ კი ლინკს.

შედეგი:

$ python –version

Python 3.2.3

ამას კიდევ ერთი შედეგი მოჰყვა. კერძოდ ის, რომ yum-მა პროტესტის ნიშნად მუშაობაზე უარი განაცხადა. ნებისმიერი პაკეტის ინსტალაციის თუ აფდეითის დროს, აგდებდა შეცდომას:

File “/usr/bin/yum”, line 30

except KeyboardInterrupt, e:

გამოძიებამ დაადგინა, რომ საქმე სამხრეთ ამერიკული სერიალის სიუჟეტივით ყოფილა ჩახლართული.

პითონის 3.2.3 ვერსიას ჰქონია ავი ზნე: სისტემას მოყოლილ პითონის ინსტალაციის ბრძანება python-ს ცვლის. რა შუაშია yum-თან? ეს უკანასკნელი პითონის (2.7.5 ვერსიის) გარვეულ მოდულებს იყენებს.

მოკლედ, ინტერნეტში ბევრი სხვადასხვა ვერსიაა პრობლემის მოსაგვარებლად. მაგალითად, რჩევა $ yum clean all ბრძანების გაშვებისა. არ დაიჯეროთ. yum საერთოდ არ ეშვება და აბა clean all-ს როგორ იზამს.

მოკლედ, “დავროლბექდი” ისევ 2.7.5-ზე სიმბოლური ლინკების გადართვით:

$ ln -f -s /usr/bin/python2 /usr/bin/python

ცოტაოდენი კითხვის შემდეგ აღმოვაჩინე, რომ თუ პითონის ახალ ვერსიას დავაინსტალირებთ make install-ით უარესად იქნება საქმე და yum-ს შეიძლება მხოლოდ პითონის ძველი ვერსიის ფორსირებულმა გადაინსტრალირებამ უშველოს. აქ არის დეტალები: http://stackoverflow.com/questions/11171015/python-and-yum-issue-centos-5-4

ალტერნატივა (ანუ საჭიროების შემთხვევაში პითონის ახალი ვერსიის გამოყენება) არის პითონის სასურველი ვერსიის ცალკე დაინსტალირება (ძველი ვერსიის შენარჩუნებით) და “პირდაპირ დაძახება” python3-ით ან /usr/bin/python3.3-ით.

$ python3 –version

Python 3.3.3

, , , , , , , ,

Leave a comment