LoginSignup
0
0

More than 3 years have passed since last update.

Kali LinuxでのPythonバージョンアップ方法[upgrade-alternatives]

Posted at

Kali Linux上のPythonのバージョン設定で手こずったのでメモ。

背景

Virtual Box上にKali Linuxをインストールし、Kali Linux上でsqlmapというツールを利用していた。そこでKali LinuxのPythonのバージョンを変更しようと思ったところドツボにハマった。

Pythonのバージョンアップ

Kali Linux上のPython系のツール(sqlmap)がうまく動かないため、バージョンが原因と思い、Python2系からPython3系へバージョンアップしようと思い立った。(この浅はかな考えがまずかった)

KaliLinux
┌──(root💀kali)-[~/bin]
└─# which python 
/usr/bin/python

┌──(root💀kali)-[~/bin]
└─# which python2
/usr/bin/python2

┌──(root💀kali)-[~/bin]
└─# which python3
/usr/bin/python3    

┌──(root💀kali)-[/home/kali]
└─# python --version                        
Python 2.7.18

┌──(root💀kali)-[/home/kali]
└─# python3 -V                              
Python 3.8.6     //すでにインストール済みであった

┌──(root💀kali)-[/home/kali]
└─# python2 -V                              
Python 2.7.18

確認したところ、現在はPython2.7.18が適用されているが、Python3.8.6もインストール済みであった。

/usr/bin/python配下のファイルを確認

KaliLinux
┌──(root💀kali)-[/home/kali]
└─# ls /usr/bin/python*                                            2 ⨯
/usr/bin/python            /usr/bin/python3-config
/usr/bin/python2           /usr/bin/python3-futurize
/usr/bin/python2.7         /usr/bin/python3-pasteurize
/usr/bin/python3           /usr/bin/python3-qr
/usr/bin/python3.8         /usr/bin/python3-tor-prompt
/usr/bin/python3.8-config  /usr/bin/python3-wsdump
/usr/bin/python3.9         /usr/bin/python-faraday

Pythonバージョン変更

バージョン変更方法はupdate-alternativesを利用する。Python2.7Python3.8の優先度(Priority)を変更することでバージョンを変更する。

KaliLinux
┌──(root💀kali)-[/home/kali]
└─# sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2  
update-alternatives: renaming python link from /usr/bin/python3 to /usr/bin/python
//最後を2にする

┌──(root💀kali)-[/home/kali]
└─# sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
//最後を1にする

#update-alternatives --config python
There are 2 choices for the alternative python (providing /usr/bin/python).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /usr/bin/python3.8   2         auto mode
* 1            /usr/bin/python2.7   1         manual mode
  2            /usr/bin/python3.8   2         manual mode

Press <enter> to keep the current choice[*], or type selection number: 0
update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in manual mode

変更確認

┌──(root💀kali)-[/home/kali]
└─# python --version
Python 3.8.6

ここで思わぬエラーに遭遇

バージョンアップした目的であったsqlmapを動かそうとすると以下のエラーが出て動かなくなる事態に。。。

KaliLinux
┌──(root💀kali)-[/home/kali]
└─# sqlmap --version                        
zsh: /usr/bin/sqlmap: bad interpreter: /usr/bin/python3: no such file or directory

また、sqlmapはPython3系に対応していないということにここで気づく。(先にしっかり調べるべきだった)
ということで、update-alternativesを使ってバージョンを元に戻す。

KaliLinux
┌──(root💀kali)-[/home/kali]
└─# sudo update-alternatives --config python                     127 ⨯
There are 2 choices for the alternative python (providing /usr/bin/python).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python3.8   2         auto mode
  1            /usr/bin/python2.7   1         manual mode
  2            /usr/bin/python3.8   2         manual mode

Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in manual mode

バージョン確認

KaliLinux
┌──(root💀kali)-[/home/kali]
└─# python --version                        
Python 2.7.18

無事にPython2.7.18に戻りました。しかし、、、

KaliLinux
┌──(root💀kali)-[/home/kali]
└─# sqlmap                                  
zsh: /usr/bin/sqlmap: bad interpreter: /usr/bin/python3: no such file or directory

sqlmapが動かない!!!
Python2.7.18に戻したのに、bad interpreter: /usr/bin/python3:と出てくるのが怪しい。。。

バージョン確認

┌──(root💀kali)-[/home/kali]
└─# which python3      
python3 not found

┌──(root💀kali)-[/home/kali]
└─# python3 -V                                                     1 ⨯
zsh: command not found: python3

Python3が見つからないとなるのが原因と思われる。

解決方法

以下のコマンドを打つことで解決。

KaliLinux
┌──(root💀kali)-[~/bin]
└─# ln -s /usr/bin/python /usr/bin/python3                                           127 ⨯

確認

もう一度Python2.7.18に戻してから、無事sqlmapが動いた。

KaliLinux
┌──(root💀kali)-[~/bin]
└─# sqlmap                                
        ___
       __H__                                                                               
 ___ ___[.]_____ ___ ___  {1.4.11#stable}                                                  
|_ -| . [']     | .'| . |                                                                  
|___|_  ["]_|_|_|__,|  _|                                                                  
      |_|V...       |_|   http://sqlmap.org                                                

Usage: python3 sqlmap [options]

sqlmap: error: missing a mandatory option (-d, -u, -l, -m, -r, -g, -c, --list-tampers, --wizard, --update, --purge or --dependencies). Use -h for basic and -hh for advanced help

参考

UbuntuでPythonのバージョンを変更する方法

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0