apt-cygでガバガバになったパッケージを手動でremoveする

手元のpython3.2を3.4に更新しようとremove→installしたが,正しくinstallされず,removeもできなくなった.
既にありますよとか言われてしまう.

 

①removeできないのをなんとかしよう.apt-cygの更新を行った.最新版はgithubから入手.

https://github.com/transcode-open/apt-cyg
解決せず.

②手動でremoveする.

インスール済みのパッケージは(cygwin)\ets\setup\installed.db に記述されているっぽいので,中を見て書き換える.
python3っぽいものをリストから消す.
.db-saveとかいうのもいるけど,これは.dbのバックアップっぽい.

③手動removeできたぞ(ちゃんとパッケージが無いことになってる)

[Prily@ASAGI] $ apt-cyg remove python3                                                [~]
Package python3 is not installed, skipping
 

④install しなおす

[Prily@ASAGI] $ apt-cyg install python3                                               [~]
Installing python3
--2015-05-24 00:16:40--  http://cygwin.cybermirror.org//x86/release/python3/python3-3.4.3-1.tar.xz
cygwin.cybermirror.org (cygwin.cybermirror.org) をDNSに問いあわせています... 80.83.126.34
cygwin.cybermirror.org (cygwin.cybermirror.org)|80.83.126.34|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 6893432 (6.6M) [application/x-xz]
`python3-3.4.3-1.tar.xz' に保存中

100%[================================================>] 6,893,432    191K/s 時間 42s

2015-05-24 00:17:23 (159 KB/s) - `python3-3.4.3-1.tar.xz' へ保存完了 [6893432/6893432]

python3-3.4.3-1.tar.xz: 完了
Unpacking...
Package python3 requires the following packages, installing:
bash crypt cygwin cygwin-devel libbz2_1 libexpat1 libffi6 libgcc1 libgdbm4 libintl-devel libintl8 liblzma5 libncursesw10 libopenssl100 libreadline7 libsqlite3_0 zlib0 binutils libuuid-devel
Package bash is already installed, skipping
Package crypt is already installed, skipping
Package cygwin is already installed, skipping
Package cygwin-devel is already installed, skipping
Package libbz2_1 is already installed, skipping
Package libexpat1 is already installed, skipping
Package libffi6 is already installed, skipping
Package libgcc1 is already installed, skipping
Package libgdbm4 is already installed, skipping
Package libintl-devel is already installed, skipping
Package libintl8 is already installed, skipping
Package liblzma5 is already installed, skipping
Package libncursesw10 is already installed, skipping
Package libopenssl100 is already installed, skipping
Package libreadline7 is already installed, skipping
Package libsqlite3_0 is already installed, skipping
Package zlib0 is already installed, skipping
Package binutils is already installed, skipping
Package libuuid-devel is already installed, skipping
Package python3 installed
apt-cyg install python3  3.70s user 3.64s system 11% cpu 1:02.64 total
 

⑤removeはできたけどpythonちゃん動いてないじゃん.結局またremoveもできないし.

[Prily@ASAGI] $ python3                                                               [~]
[Prily@ASAGI] $ apt-cyg remove python3                                                [~]
gzip: invalid option -- 'k'
Try `gzip --help' for more information.
awk: コマンドライン:4: 致命的: ファイル `setup/python3.lst' を読み込み用に開けません (No such file or directory)
rm: `setup/python3.lst' を削除できません: No such file or directory
[Prily@ASAGI] $                                                                       [~]

 

⑥不具合の原因を調べる

1. gzipの invalid option – ‘k’ が謎.apt-cygのソースコードを読んでみた感じではgzipのバージョンが古くてオプションをサポートしていないっぽい.(-kはkeep)

→手元のは1.4,最新は1.6だった.

2.pythonが立ち上がらないので直接exeを叩いてみると,__cxa_atexit が cygwin1.dll の中に無いとか言って落ちていた. cygwin自体のバージョンが古いのでは.

→手元のは1.7,最新は2.0だった.

 

⑦公式から最新のcygwinを落とす

apt-cygもpython3.4もcygwinのバージョンが古くて動いていない可能性.

→cygwin+基礎パッケージを適当な場所にインストールして,bin以下をまるごとコピった.

 

⑧動いた.

 

cygwin不自由すぎてとてもつらい.windows使うのがつらい.てかapt-cyg,upgradeサポートしてくれ.

ちなみにお仕事の方もwindowsです.こちらはさすがにcygwin使わずcmder+chocolateyですが,cmderもbashでヒストリ漁った時に出力の表示位置がずれるんだよなあ.なんなんだあれ.

 

あとLive Writerがバグだらけなのでブログを書くのがツライです.そもそも2012年からメンテされてないし.

WordPressの表示も気に喰わないけど直す時間もない.はてなに乗り換えるのありだ…てかMarkdownで書かせてくれ…

 

とにかく1行もコード書いてないのにとてもつかれました.ねます.

0 Comments

Leave a Reply

Your email address will not be published.