知りたいこと
Python3 を GDB 内で使用したいのですが、
その環境を構築するための方法として、Cygwin installer を使いたいです。
どうしても Python2.7 になってしまい、Python3 用のパッケージが使用できなくて困っています。
やってみたこと
Cygwin installer を使って GDB をインストールすると、依存関係のパッケージとして以下がリストアップされます。
※Select Packages
画面で、gdb 8.2.1-1
をインストールさせる状態にしてから、
Review and confirm changes
画面まで来た時の例です。
Review
1Install _autorebase 001007-1 2Install alternatives 1.3.30c-10 3Install base-cygwin 3.8-1 4Install base-files 4.3-2 5Install bash 4.4.12-3 6Install binutils 2.29-1 (automatically added) 7Install bzip2 1.0.8-1 8Install ca-certificates 2.32-1 9Install coreutils 8.26-2 10Install crypto-policies 20190218-1 11Install cygutils 1.4.16-2 12Install cygwin 3.0.7-1 13Install dash 0.5.9.1-1 14Install diffutils 3.5-2 15Install editrights 1.03-1 16Install file 5.32-1 17Install findutils 4.6.0-1 18Install gawk 5.0.1-1 19Install gdb 8.2.1-1 20Install getent 2.18.90-4 21Install grep 3.0-2 22Install groff 1.22.4-1 23Install gzip 1.8-1 24Install hostname 3.13-1 25Install info 6.6-1 26Install ipc-utils 1.0-2 27Install less 530-1 28Install libargp 20110921-3 29Install libattr1 2.4.48-2 30Install libblkid1 2.33.1-1 31Install libbz2_1 1.0.8-1 32Install libcrypt0 2.1-1 (automatically added) 33Install libdb5.3 5.3.28-2 (automatically added) 34Install libexpat1 2.2.6-1 (automatically added) 35Install libfdisk1 2.33.1-1 36Install libffi6 3.2.1-2 37Install libgcc1 7.4.0-1 38Install libgdbm4 1.13-1 39Install libgmp10 6.1.2-1 40Install libiconv 1.14-3 41Install libiconv2 1.14-3 42Install libintl8 0.19.8.1-2 43Install liblzma5 5.2.4-1 44Install libmpfr6 4.0.2-1 45Install libncursesw10 6.1-1.20190727 46Install libp11-kit0 0.23.15-1 47Install libpcre1 8.43-1 48Install libpipeline1 1.4.0-1 49Install libpkgconf3 1.6.0-1 (automatically added) 50Install libpopt-common 1.16-2 51Install libpopt0 1.16-2 52Install libreadline7 7.0.3-3 53Install libsigsegv2 2.10-2 54Install libsmartcols1 2.33.1-1 55Install libsqlite3_0 3.28.0-1 (automatically added) 56Install libssl1.1 1.1.1c-1 57Install libstdc++6 7.4.0-1 58Install libtasn1_6 4.14-1 59Install libuuid-devel 2.33.1-1 (automatically added) 60Install libuuid1 2.33.1-1 61Install login 1.13-1 62Install man-db 2.7.6.1-1 63Install mintty 3.0.2-1 64Install ncurses 6.1-1.20190727 65Install openssl 1.1.1c-1 66Install p11-kit 0.23.15-1 67Install p11-kit-trust 0.23.15-1 68Install pkg-config 1.6.0-1 (automatically added) 69Install pkgconf 1.6.0-1 (automatically added) 70Install python-pip-wheel 19.1.1-1 (automatically added) 71Install python-setuptools-wheel 41.0.1-1 (automatically added) 72Install python27 2.7.16-1 (automatically added) 73Install rebase 4.4.4-1 74Install run 1.3.4-2 75Install sed 4.4-1 76Install tar 1.29-1 77Install terminfo 6.1-1.20190727 78Install terminfo-extra 6.1-1.20190727 79Install tzcode 2019b-1 80Install tzdata 2019b-1 81Install util-linux 2.33.1-1 82Install vim-minimal 8.1.1772-1 83Install which 2.20-2 84Install xz 5.2.4-1 85Install zlib0 1.2.11-1
リスト中にあるように、
python27 2.7.16-1
が依存パッケージと解釈されており、
そのままインストール
-> 以下の様にすると、確かに GDB が起動する Python が 2.7 であることが確認できます。
※インストールされる Python が 2.7 になってしまうことは、
あらかじめ Python3 を インストールした状態で GDB をインストールしても同じです。
Python2.7 がインストールされて、 GDB 内で起動する Python が 2.7 になってしまいます。
また、インストールする GDB のバージョンを 8.0.1-1
または 8.2.1-1
にしても同じです。
cygwin
1$ gdb 2GNU gdb (GDB) (Cygwin 8.1.1-1) 8.1.1 3Copyright (C) 2018 Free Software Foundation, Inc. 4License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 5This is free software: you are free to change and redistribute it. 6There is NO WARRANTY, to the extent permitted by law. Type "show copying" 7and "show warranty" for details. 8This GDB was configured as "x86_64-pc-cygwin". 9Type "show configuration" for configuration details. 10For bug reporting instructions, please see: 11<http://www.gnu.org/software/gdb/bugs/>. 12Find the GDB manual and other documentation resources online at: 13<http://www.gnu.org/software/gdb/documentation/>. 14For help, type "help". 15Type "apropos word" to search for commands related to "word". 16(gdb) pi 17>>> import sys 18>>> print(sys.version) 192.7.16 (default, Mar 20 2019, 12:15:19) 20[GCC 7.4.0]
しかし、 Python3 用のパッケージを利用したい為、
ここで起動される Python も 3.X 系にしたいのです。
Cygwin installer で入手した GDB が起動させる Python のバージョンを変更することはできるのでしょうか?
もしくは、
Cygwin installer が判定する 依存パッケージの Python バージョンを変更してからインストールする方法はありませんか?
調べてみたこと
1) build する方法
以下によると、GDB を ビルド すれば Python バージョンを指定できるようですが、
インストール作業に比べてハードルが高いです。導入のしやすさを考慮してこのような方法は使いたくありません、、。
(GDB 向けの Python3 パッケージを 不特定多数に公開しようとしているので、 Cygwin 環境で使いたければ、Python3 を使うために GDB をビルドして使ってね
という事になってしまいます。これは受け入れられにくいと思うので、、)
2) MSYS2 なら Python3 が使える
MSYS2 環境で GDB をインストールした場合は、Python 3.7 にすることができます。
(Cygwin installer の依存関係チェックがおかしいということなのでしょうか?)
mintty
1$ pacman -S gdb 2依存関係を解決しています... 3衝突するパッケージがないか確認しています... 4 5パッケージ (4) expat-2.2.7-1 6 mpdecimal-2.4.2-2 7 python-3.7.4-1 8 gdb-8.2.1-3 9 10合計ダウンロード容量: 18.87 MiB 11合計インストール容量: 114.37 MiB 12 13:: インストールを行いますか? [Y/n]
しかし Cygwin 環境で構築するためのノウハウがほしいんです、、。
使用環境
- OS -> Windows 10 (64bit)
- Cygwin installer -> 3.0.7