pythonを削除してひどい目にあった話
ことの起こりは Ubuntu7.10に GNU Mailmanをインストールしようとしたときのことでした。
ここ(→ GNU Mailman - インストールマニュアル )はもちろんのこと、参考にさせていただいたここ(→ http://infolinux.jp/?p=15 )でもソースからインストールしているので、なんの疑いもなく最新版ソースをとってきて、make installしたわけですが、途中、「pthon-develがないよ。pythonをソースからコンパイルしなおすと直るかもよ」(意訳)というメッセージが出たわけです。
じゃあ、そうするかと、pythonの最新版をとってきて自分環境でコンパイルして、/usr/binの pythonをリネームしてシンボリックリンクを張り直してみたんですが、事態は全然変わらず。
「これはきっと前の python環境が残ってて悪さしてるんだな。じゃあ、前の pythonを purgeしてから最新版を入れ直せばいいんじゃね。ナイスアイディア!、グッドアイディア!」って、悪さしてるのは自分の頭だということに気づかないくらいてんぱってたんでしょうね。
pythonは削除しちゃいけない!
The following packages will be REMOVED:
alsa-utils*
command-not-found*
sdovecot-common*
dovecot-imapd*
dovecot-pop3d*
lsb-release*
mailman*
openssl-blacklist*
postfix*
postfix-pcre*
python*
python-apt*
:
:0 upgraded, 0 newly installed, 19 to remove and 0 not upgraded.
「s apt-get purge python」しようとしたとき、こういうメッセージが出てたはずなんです。「dovecot」も「postfix」も削除しちゃいますよって。でも、Y、Y、Y、ってやっちゃったんですよね。
pythonを削除すると
「dovecot」や「postfix」が消えるのはもちろんのこと、削除されたモジュールによって削除時にpythonを必要とするものもあるので、「apt-get upgrade」も失敗するようになります。
pythonを入れてから「apt-get upgrade」すればいいようなものですが、「apt-get install python」で入るのは、/usr/bin/python2.5
なので、/usr/bin/pythonにシンボリックリンクを張ってやらないと事態は好転しません。(これに気がつくのに3時間くらいかかりました。馬鹿です)
やったことの記録
今後の戒めとして作業記録をさらしておきます。誰の参考にもならないかもしれませんが。
616 python ← pythonのバージョン確認をやってます 619 gcc --version ← gccのバージョン確認も 620 s groupadd mailman ← mailmanのグループを作成 627 s useradd -g mailman -s /bin/false -d /usr/local/mailman mailman ← mailmanのユーザを 追加 629 s chown mailman:mailman /usr/local/mailman ← オナー変更 632 id -a mailman 633 s mkdir /usr/local/mailman 634 s chown mailman:mailman /usr/local/mailman 635 s chmod 02775 /usr/local/mailman ← ユーザディレクトリのパーミッション変更 637 wget http://mm.tkikuchi.net/mailman-2.1.11.tgz ← mailman本体のダウンロード 638 wget http://mm.tkikuchi.net/mailman.po ← 日本語ファイルをゲット 642 cp -v mailman.po mailman-2.1.11/messages/ja/LC_MESSAGES/ ← 日本語ファイルをコピー 643 cd mailman-2.1.11/ 644 ./configure --with-cgi-gid=www-data --with-mail-gid=mailman --prefix=/usr/local/mailman --with-mailhost=mail.5-55.jp --with-urlhost=5-55.jp ← ./configureしてます ここでエラーが出たため、pythonを疑うことになります。 647 s apt-get install python python-devel ← いろいろやってます 650 s aptitude install python ← まだやってます 651 ./configure --with-cgi-gid=www-data --with-mail-gid=mailman --prefix=/usr/local/mailman --with-mailhost=mail.5-55.jp --with-urlhost=5-55.jp やっぱりまだダメです。 652 s aptitude install python-tk ← これか? 653 ./configure --with-cgi-gid=www-data --with-mail-gid=mailman --prefix=/usr/local/mailman --with-mailhost=mail.5-55.jp --with-urlhost=5-55.jp 654 sudo aptitude install zlib1g-dev ← これか? 657 wget http://www.python.org/ftp/python/2.5.4/Python-2.5.4.tgz ← いよいよ最新版pythonへ突入 659 tar zxvf Python-2.5.4.tgz 660 cd Python-2.5.4/ 661 ./configure --prefix=/home/mam 662 make 663 s make install ← インストールしちゃいました 664 python 665 s find / -name python* ← 疑ってます 667 which python 668 s mv -v /usr/bin/python /usr/bin/python251 ← 元々のpythonを逃がしたつもり 669 /home/mam/bin/python 670 s cp -v /home/mam/bin/python /usr/bin/ ← シンボリックリンクを張らずにコピーしてます 671 python 673 cd mailman-2.1.11/ 675 ./configure --with-cgi-gid=www-data --with-mail-gid=mailman --prefix=/usr/local/mailman --with-mailhost=mail.5-55.jp --with-urlhost=5-55.jp やっぱりダメー! 676 s aptitude install python2.5-dev ← まだがんばるか? 677 ./configure --with-cgi-gid=www-data --with-mail-gid=mailman --prefix=/usr/local/mailman --with-mailhost=mail.5-55.jp --with-urlhost=5-55.jp ダメ、ダメー! 682 s aptitude install mailman ← 今度は mailmanを疑ってる模様 683 sudo dpkg-reconfigure mailman ← ダメだって 684 export LANG=C 686 sudo check_perms -f 687 cd Python-2.5.4/ 688 sudo aptitude install zlib1g-dev 689 ./configure 690 make 696 s aptitude purge python-tk ← いよいよ pythonを消しにかかります 697 make 698 ./configure --prefix=/home/mam 699 make 700 cd .. 701 wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz ← もっかい取り直して 702 tar zxvf Python-2.5.2.tgz 703 cd Python-2.5.2 704 ./configure --prefix=/home/mam 705 make 706 s make install 707 python 708 which python 709 /home/mam/bin/python 710 /home/mam/bin/python2.5 712 s mv -v /usr/bin/python /usr/bin/python254 713 s cp -v /home/mam/bin/python /usr/bin/ ← いまのやつをコピー 714 python 717 rm -r mailman-2.1.11 ← mailmanをもう1回 719 tar xvzf mailman-2.1.11.tgz 724 cp -v mailman.po mailman-2.1.11/messages/ja/LC_MESSAGES/ 725 cd mailman-2.1.11/ 727 ./configure --with-cgi-gid=www-data --with-mail-gid=mailman --prefix=/usr/local/mailman --with-mailhost=mail.5-55.jp --with-urlhost=5-55.jp やっぱダメー 728 s apt-get install python-setuptools ← これがないからか? 735 s mv -v python python252 736 s mv -v python2.5 python 737 python 738 s apt-get install python-setuptools 739 s apt-get install python 740 s apt-get purge python ← やっちゃったよ、とうとう とうとう禁断の実をたべてしまいました。しかも removeじゃなくて purgeとは。頭がおかしくなってるとしか思えませんね。 742 s apt-get -f install python 743 s aptitude install python 745 e /etc/postfix/main.cf ← 設定消えちゃった 747 e /etc/aliases ← こちらは無事でした 766 s cp -v /etc/alias* /home/samba/backup/etc/ ← あわててバックアップ 768 sudo apt-get install postfix ← インストールし直し 771 export LANG=ja_JP.UTF-8 ← 設定を元に戻す 774 s apt-get install postfix ← もう1回 776 s rm /var/cache/debconf/config.* ← これがあってインストールに失敗 777 s rm /var/cache/debconf/templates.* 779 s apt-get install postfix ← もう1回 780 s apt-get install python-apt python-central python-gnupginterface python-setuptools python-support ubuntu-minimal update-manager-core ssl-cert alsa-utils command-not-found lsb-release openssl-blacklist 781 s apt-get install update-manager-core 782 s apt-get install command-not-found 783 s apt-get install python-setuptools ← 足りないといわれたものをじゃかすか入れる 786 s mv -v /var/cache/debconf/passwords.dat /var/cache/debconf/passwords.dat-back このあたりから /usr/bin/pythonがないため、はまっているのに気づかず延々と繰り返すの図 788 s apt-get install python-setuptools 789 s apt-get install python-apt 790 s aptitude install python-apt 791 s aptitude install update-manager-core 792 s apt-get install command-not-found 793 s apt-get install python 794 s apt-get update python 795 s apt-get upgrade python 796 s apt-get upgrade python-apt 797 s apt-get python-apt command-not-found update-manager-core python-setuptools 798 s apt-get install python-apt command-not-found update-manager-core python-setuptools 799 s apt-get upgrade python-apt command-not-found update-manager-core python-setuptools 800 s apt-get remove python-apt command-not-found update-manager-core python-setuptools 801 s apt-get update 802 s apt-get install python-apt command-not-found update-manager-core python-setuptools 803 s apt-get install alsa-utils 804 s apt-get install ubuntu-minimal 805 s apt-get install command-not-found 806 s apt-get remove python-apt 807 s apt-get check python-apt 808 s apt-get -f install python-apt 809 dpkg -l こんなのが延々と続きます : : 842 s dpkg --configure -a 848 s dpkg -r python-apt 849 s apt-get upgrade 850 s dpkg -r lsb-core 851 s dpkg -r lsb-graphics 852 s dpkg -r lsb-cxx 853 s dpkg -r lsb-desktop 854 s dpkg -r lsb 855 s apt-get upgrade 856 s aptitude upgrade : : ここら辺からやっと復旧モード 866 sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d ← dovecotを入れる 867 e /etc/postfix/main.cf ← 設定ファイル復旧 868 e /etc/postfix/master.cf 869 e /etc/dovecot/dovecot.conf 870 dovecotpw 871 e /etc/dovecot/passwd 872 e /etc/postfix/main.cf 880 s /etc/init.d/postfix restart ← postfix起動 881 e /etc/aliases 882 s /etc/init.d/dovecot restart ← dovcot起動 883 e /etc/dovecot/dovecot.conf 884 s /etc/init.d/dovecot restart 885 sudo sysv-rc-conf --list postfix ← 一応念のため設定確認 886 sudo sysv-rc-conf --list dovecot 887 s /etc/init.d/postfix restart 888 e /etc/postfix/main.cf 889 e /etc/postfix/master.cf 890 e /etc/dovecot/dovecot.conf
参考
- Loading...
- GNU Mailman - インストールマニュアル
- http://jp-ito.com/server_conf/mailman2_1_1+postfix.html
- http://infolinux.jp/?p=15
- Ubuntu/Server/Mail - PukiWiki
- APT HOWTO (Obsolete Documentation) - パッケージの管理
- 第04回 「apt-get, dpkg コマンドでパッケージ管理」
- http://patora.dip.jp/gconf_huntou.html
- apt-get による依存関係の問題 @Debian - QA@IT
- http://debian.fam.cx/?AptGet#content_1_13
- Postfix デバッグ Howto
- sambaの文字コードはUTF-8に設定するとベスト - サーバー技術メモ
- http://pod-head.net/wiki/environment2
- Index of /ftp/python/
- http://it.kndb.jp/entry/show/id/2365
- Mailmanインストールのはまりどころ. - kgbu's diary
- http://digimono.dip.jp/blog/index.php?e=171
- http://pod-head.net/wiki/backup
- Latest topics > バックアップの自動化の続き - outsider reflex
- それ行けLinux〜システムバックアップ〜
- Ubuntuのシステムを丸ごとバックアップする方法を探す - Mattari Memo
- 第4回 Ubuntuのバックアップ(1):SBackupによるバックアップ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- .com: Sbackup
- Ubuntu/homeの簡易バックアップ - TOBY SOFT wiki
- Ubuntu/システムのバックアップ - TOBY SOFT wiki
- Linux初心者Tips - satake7’s memo
- LANDISK HACKING DIARY