ayucat.ch 2015-16

id:ayucatのぶろぐ (Nexus 5 (2015) / iPhone 6s / Galaxy S6 edge / iOS 9 / Ubuntu Trusty / Android 6.0 Marshmallow / Thunderbird / AWS / クラブ / 祭り / 花火 / 海 / 野外フェス)

Karmicアップデート後にすべきこと (7): パッケージ名の変わったパッケージを整理

今度もUbuntu 9.10の話。前回同様、ディストリビューションバージョンが増えるたび、パッケージ名の変わったパッケージは大量に発生する。
そこで、この作業の確立したストラテジを私は知らないので、いつも次のようにやっている。

  1. 数字が大きくなったものを機械的に検出
  2. それぞれのディストリビューションバージョン (e.g. Jaunty, Karmic, lucid ...) のパッケージリストを目視で比較

この記事を書いたときに使った環境(Jaunty→Karmic)では、88パッケージあった。

1. 数字が大きくなったものを自動検出

実際にはここに書いていないワンライナーも含めて、システマティックに検出してみる

dpkg --get-selections | grep deinstall | awk '{sub(/[0-9].*/, "", $1); print $1}' | xargs -i dpkg -l "{}*"

してきたstdoutを解析。

rc  gij-4.2               4.2.4-5ubuntu1                             The GNU Java bytecode interpreter
ii  gij-4.3               4.3.4-4ubuntu1                             The GNU Java bytecode interpreter
un  gij-4.4               <none>                                     (no description available)
rc  grub                  0.97-29ubuntu58                            GRand Unified Bootloader
ii  grub2                 1.97~beta4-1ubuntu1                        GRand Unified Bootloader, version 2 (dummy p
rc  libass1               0.9.5-2                                    library for SSA/ASS subtitles rendering
ii  libass3               0.9.6-1                                    library for SSA/ASS subtitles rendering
rc  libavahi-core5        0.6.23-4ubuntu4                            Avahi's embeddable mDNS/DNS-SD library
ii  libavahi-core6        0.6.25-1ubuntu4                            Avahi's embeddable mDNS/DNS-SD library
rc  libbind9-40           1:9.5.1.dfsg.P2-1ubuntu0.1                 BIND9 Shared Library used by BIND
ii  libbind9-50           1:9.6.1.dfsg.P1-3                          BIND9 Shared Library used by BIND
rc  libboost-regex1.35.0  1.35.0-8ubuntu5                            regular expression library for C++
ii  libboost-regex1.38.0  1.38.0-6ubuntu6                            regular expression library for C++
rc  libdatrie0            0.1.3-2                                    Double-array trie library
ii  libdatrie1            0.2.2-1                                    Double-array trie library
rc  libdirectfb-1.0-0     1.0.1-11ubuntu1                            direct frame buffer graphics - shared librar
ii  libdirectfb-1.2-0     1.2.7-2ubuntu1                             direct frame buffer graphics - shared librar
rc  libdns45              1:9.5.1.dfsg.P2-1ubuntu0.1                 DNS Shared Library used by BIND
ii  libdns50              1:9.6.1.dfsg.P1-3                          DNS Shared Library used by BIND
rc  libdvbpsi4            0.1.5-3.1                                  library for MPEG TS and DVB PSI tables decoding and generating
ii  libdvbpsi5            0.1.6-1                                    library for MPEG TS and DVB PSI tables decoding and generating
ii  libevent-1.4-2        1.4.11-stable-1                            An asynchronous event notification library
rc  libevent1             1.3e-3                                     An asynchronous event notification library
rc  libffado0             2.0~rc1-0ubuntu2                           FFADO API
ii  libffado1             2.0~rc2+svn1569-2ubuntu1                   FFADO API
rc  libffmpegthumbnailer2 1.3.0-1                                    the ffmpegthumbnailer library
ii  libffmpegthumbnailer3 1.5.4-1build1                              the ffmpegthumbnailer library
rc  libflickrnet2.1.5-cil 25277-6ubuntu4                             Flickr.Net API Library
ii  libflickrnet2.2-cil   1:2.2.0-1                                  Flickr.Net API Library
ii  libgcj10              4.4.1-5ubuntu2                             Java runtime library for use with gcj
rc  libgcj8-1             4.2.4-5ubuntu1                             Java runtime library for use with gcj
ii  libgcj9-0             4.3.4-4ubuntu1                             Java runtime library for use with gcj
rc  libgnomekbd3          2.26.0-0ubuntu2                            GNOME library to manage keyboard configuration - shared libra
ii  libgnomekbd4          2.28.0-0ubuntu2                            GNOME library to manage keyboard configuration - shared libra
rc  libgnomekbdui3        2.26.0-0ubuntu2                            User interface library for libgnomekbd - sha
ii  libgnomekbdui4        2.28.0-0ubuntu2                            User interface library for libgnomekbd - sha
rc  libgnustep-base1.16   1.16.3-3ubuntu1                            GNUstep Base library
ii  libgnustep-base1.19   1.19.0-2ubuntu1                            GNUstep Base library
rc  libgnustep-gui0.14    0.14.0-4ubuntu1                            GNUstep GUI Library
ii  libgnustep-gui0.16    0.16.0-2                                   GNUstep GUI Library
rc  libgoffice-0-6        0.6.6-1ubuntu1.1                           Document centric objects library - runtime files
ii  libgoffice-0-8        0.7.8-1ubuntu1                             Document centric objects library - runtime files
rc  libindicate1          0.1.6-0ubuntu1                             GNOME panel indicator applet - shared librar
ii  libindicate3          0.2.3-0ubuntu1                             GNOME panel indicator applet - shared librar
rc  libisc45              1:9.5.1.dfsg.P2-1ubuntu0.1                 ISC Shared Library used by BIND
ii  libisc50              1:9.6.1.dfsg.P1-3                          ISC Shared Library used by BIND
rc  libisccc40            1:9.5.1.dfsg.P2-1ubuntu0.1                 Command Channel Library used by BIND
ii  libisccc50            1:9.6.1.dfsg.P1-3                          Command Channel Library used by BIND
rc  libisccfg40           1:9.5.1.dfsg.P2-1ubuntu0.1                 Config File Handling Library used by BIND
ii  libisccfg50           1:9.6.1.dfsg.P1-3                          Config File Handling Library used by BIND
rc  libk3b3               1.0.5+kde4svn935857+really1.0.5-3ubuntu5   The KDE cd burning application library - run
ii  libk3b6               1.66.0~alpha2-0ubuntu7                     The KDE cd burning application library - run
rc  liblwres40            1:9.5.1.dfsg.P2-1ubuntu0.1                 Lightweight Resolver Library used by BIND
ii  liblwres50            1:9.6.1.dfsg.P1-3                          Lightweight Resolver Library used by BIND
rc  libmagickcore1        7:6.4.5.4.dfsg1-1ubuntu3.1                 low-level image manipulation library
ii  libmagickcore2        7:6.5.1.0-1.1ubuntu3                       low-level image manipulation library
rc  libmagickwand1        7:6.4.5.4.dfsg1-1ubuntu3.1                 image manipulation library
ii  libmagickwand2        7:6.5.1.0-1.1ubuntu3                       image manipulation library
rc  libnm-glib0           0.7.1~rc4.1.cf199a964-0ubuntu2             network management framework (GLib shared library)
ii  libnm-glib2           0.8~a~git.20091013t193206.679d548-0ubuntu1 network management framework (GLib shared library)
rc  libntfs-3g49          1:2009.2.1-0ubuntu2                        ntfs-3g filesystem in userspace (FUSE) libra
ii  libntfs-3g54          1:2009.4.4-1ubuntu4                        ntfs-3g filesystem in userspace (FUSE) libra
rc  libopal3.6.1          3.6.1~dfsg-0ubuntu2                        Open Phone Abstraction Library - successor o
ii  libopal3.6.4          3.6.4~dfsg-1ubuntu1                        Open Phone Abstraction Library - successor o
rc  libparted1.8-10       1.8.8.git.2008.03.24-11.1ubuntu6           The GNU Parted disk partitioning shared libr
ii  libparted1.8-12       1.8.8.git.2009.06.03-1ubuntu6              The GNU Parted disk partitioning shared libr
rc  libpoppler4           0.10.5-1ubuntu2.2                          PDF rendering library
ii  libpoppler5           0.12.0-0ubuntu1                            PDF rendering library
ii  libraw1394-11         2.0.4-1ubuntu1                             library for direct access to IEEE 1394 bus (aka FireWire)
rc  libraw1394-8          1.3.0-4ubuntu1                             library for direct access to IEEE 1394 bus (aka FireWire)
rc  libsgutils1           1.24-2                                     Utilities for working with generic SCSI devi
ii  libsgutils2-2         1.27-0.1                                   utilities for working with generic SCSI devi
rc  libtulip-3.0.0b6      3.0.0~B6-2.1                               Tulip graph library - core runtime
ii  libtulip-3.1          3.1.2-2ubuntu2                             Tulip graph library - core runtime
rc  libtulip-ogl-3.0.0b6  3.0.0~B6-2.1                               Tulip graph library - OpenGL runtime
ii  libtulip-ogl-3.1      3.1.2-2ubuntu2                             Tulip graph library - OpenGL runtime
rc  libtulip-qt4-3.0.0b6  3.0.0~B6-2.1                               Tulip graph library - Qt/OpenGL GUI runtime
ii  libtulip-qt4-3.1      3.1.2-2ubuntu2                             Tulip graph library - Qt/OpenGL GUI runtime
rc  libvlccore0           0.9.9a-2ubuntu1                            base library for VLC and its modules
ii  libvlccore2           1.0.2-1ubuntu1                             base library for VLC and its modules
rc  libx264-65            1:0.svn20081230-0.0ubuntu1                 x264 video coding library
ii  libx264-67            1:0.svn20090621+git364d7d-0ubuntu2         x264 video coding library
rc  libxklavier12         3.9-0ubuntu2                               X Keyboard Extension high-level API
ii  libxklavier15         4.0-0ubuntu4                               X Keyboard Extension high-level API
rc  libzephyr3            2.1.20070719.SNAPSHOT-3                    Project Athena's notification service - non-Kerberos libraries
ii  libzephyr4            3.0~rc.2544-1                              Project Athena's notification service - non-Kerberos libraries

ということで、ゴニョった上で、

$ sudo aptitude purge gij-4.2 grub libass1 libavahi-core5 libbind9-40 \
libboost-regex1.35.0 libdatrie0 libdirectfb-1.0-0 libdns45 libdvbpsi4 \
libevent1 libffado0 libffmpegthumbnailer2 libflickrnet2.1.5-cil \
libgcj8-1 libgnomekbd3 libgnomekbdui3 libgnustep-base1.16 \
libgnustep-gui0.14 libgoffice-0-6 libindicate1 libisc45 libisccc40 \
libisccfg40 libk3b3 liblwres40 libmagickcore1 libmagickwand1 \
libnm-glib0 libntfs-3g49 libopal3.6.1 libparted1.8-10 libpoppler4 \
libraw1394-8 libsgutils1 libtulip-3.0.0b6 libtulip-ogl-3.0.0b6 \
libtulip-qt4-3.0.0b6 libvlccore0 libx264-65 libxklavier12 libzephyr3
[...]
The following packages will be REMOVED:
  gij-4.2{p} grub{p} libass1{p} libavahi-core5{p} libbind9-40{p} 
  libboost-regex1.35.0{p} libdatrie0{p} libdirectfb-1.0-0{p} libdns45{p} 
  libdvbpsi4{p} libevent1{p} libffado0{p} libffmpegthumbnailer2{p} 
  libflickrnet2.1.5-cil{p} libgcj8-1{p} libgnomekbd3{p} libgnomekbdui3{p} 
  libgnustep-base1.16{p} libgnustep-gui0.14{p} libgoffice-0-6{p} 
  libindicate1{p} libisc45{p} libisccc40{p} libisccfg40{p} libk3b3{p} 
  liblwres40{p} libmagickcore1{p} libmagickwand1{p} libnm-glib0{p} 
  libntfs-3g49{p} libopal3.6.1{p} libparted1.8-10{p} libpoppler4{p} 
  libraw1394-8{p} libsgutils1{p} libtulip-3.0.0b6{p} 
  libtulip-ogl-3.0.0b6{p} libtulip-qt4-3.0.0b6{p} libvlccore0{p} 
  libx264-65{p} libxklavier12{p} libzephyr3{p} 
0 packages upgraded, 0 newly installed, 42 to remove and 5 not upgraded.

とした。

88パッケージ中、ほぼ半分の42パッケージが片付いた。

2. パッケージリストを目視で比較

88パッケージ中の残り46パッケージをどうにかする。
そのうち31パッケージは既にレポジトリにすらないもの。15パッケージはまだある。

2.1 システマティックな改名

バージョンアップに伴う、システマティックな改名

2.2 バージョンアップも含めたアーティフィシャルな改名

重要なシステム側の変更。いる。

残りのアプリ・ライブラリ。バージョンアップの過程でルールベースではない命名をした場合など。

2.3 実際の作業内容

以上を踏まえて、実際に作業した。
MySQL Server 5.1とPowerSavedを入れて、

$ sudo aptitude install mysql-server powersaved
[...]
The following NEW packages will be installed:
  cpufrequtils{a} libcpufreq0{a} libhtml-template-perl{a} liblazy1{a}
  libpowersave11{a} mysql-server mysql-server-5.1{a} mysql-server-core-5.1{a}
  powersaved 
0 packages upgraded, 9 newly installed, 0 to remove and 5 not upgraded.

残りをpurge。

$ sudo aptitude purge libbeecrypt6 libuniconf4.4 system-services \
upstart-compat-sysv readahead libsuitesparse-3.2.0 powernowd \
libcolamd-3.2.0
[...]
The following packages will be REMOVED:
  libbeecrypt6{p} libcolamd-3.2.0{p} libsuitesparse-3.2.0{p}
  libuniconf4.4{p} powernowd{p} readahead{p} system-services{p}
  upstart-compat-sysv{p} 
0 packages upgraded, 0 newly installed, 8 to remove and 5 not upgraded.

mysql-server-5.0はちょっと怖いので、保留しとく。

残り46パッケージ中、8パッケージを解決。残り38パッケージ(24パッケージはレポジトリにすらなく、14パッケージはレポジトリにある)。
ここで中断。また続きを後日。