[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[plamo:33412] Re: [FYI] glibc-2.32 breaks install tools
-
From:Tetsuya Yamashita
-
Date:Thu, 3 Sep 2020 09:07:50 +0900 (JST)
- Subject: [plamo:33412] Re: [FYI] glibc-2.32 breaks install tools
- From: Tetsuya Yamashita <yamashit@xxxxxxxxxxxxxxxxx>
- Date: Thu, 3 Sep 2020 09:07:33 +0900
- User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101Thunderbird/78.2.0
やました と申します。
MLでこの情報を見ていたにもかかわらず、ハマってしまったものです。。。。
こういう人もいたよ、という情報展開を。
最近、xfceが突然固まったりする症状がでていたので、
「xまわりのモジュールアップデート無いかなぁ」と思い、get_pkginfoを実行し
ました。
モジュールを確認すると、関連しそうなものがあったので、get_pkginfo -a を
動かしました。
すると、pkgtoolsのところか、その後のところで、「installpkg,removepkgが無い」
というようなメッセージでパッケージ更新が停止。 たしかに/sbinから消えて
ました。
どうしようか悩んだんですが、ここでは、強引にpkgtoolsパッケージをを/直下
で展開し、
doinst.shや/sbin/installerフォルダを確認しながらなんとか修復。
その後、pkgtools -i でpkgtools以外を適用し、最後にpkgtoolsを適用しました。
その際、「pkgtoolsは削除できません」「pkgtools7をインストールします」
(文言はうろ覚え)と
いうようなメッセージが表示されましたが、そのまま進むと正常終了。
installpkg,removepkg無い状態って、「これって缶詰のなかの缶切りだよなぁ」
と思ったときに、
「最近、缶詰の中の缶切りって文言を見たなぁ」という流れで、こじまさんの
メールを思いだしだ次第です(^^;
この後続きがありまして、再起動すると xfceが起動せず。
画面には、「libc-2.32が必要だけど2.30だよ」という旨のメッセージが表示さ
れました。
ただしget_pkginfoでは何も表示されないので、これはこれで悩みましたが、ML
メールを再度見て
Plamo-test/for-7.x/x86_64/からglibcー2.32, libc-2.32のパッケージを落とし
てきて
updatepkgで適用、再起動で、無事xfceが立ち上がりました。
もっとスマートなやり方がありそうですが、最近、楽ちんなget_pkginfoに頼
りっきりだったので、
この手のトラブルにもなかなか対応できなくなっている1ユーザの昨日の顛末で
した。m(_ _)m
以上
On 2020/08/20 20:41, KOJIMA Mitsuhiro wrote:
From: KOJIMA Mitsuhiro <kojima@xxxxxxxxxxx>
Subject: [plamo:33404] [FYI] glibc-2.32 breaks install tools
Date: Mon, 10 Aug 2020 22:08:05 +0900 (JST)
最近、手元で GCC-10.2.0 や glibc-2.32 を試しているものの、
glibc-2.32 では、それ以前バージョンの glibc でビルドした
static link なコマンドが一部動作しないようで、
その結果、installpkg/updatepkg/removepkg が動作不能になるようです。
この問題、glibc のビルド時に --enable-static-nss を指定しないと、
バイナリを static link していても実行時に libnss_files.so 等を探しに行く、
という仕様が原因だったようです。
従来、glibc のビルド時にこのオプションは指定していなかったため、
その環境で作った static link のバイナリは "ls -l"で uid と username の
変換が必要になる際、/lib/libnss_files.so を参照していたものの、
通常、このファイルは存在しているし、存在していなくても uid をそのまま返すだけで
エラーにはならなかったのに対し、glibc-2.32 では libnss_XXX.so 回りのコードが
整理され、__nss_readline() みたいな関数が追加された結果、
SegFault するようになった模様。
と、つい最近 glibc に追加されたコードなようで、このあたりが原因かなぁ、、
と想像しているものの、具体的な対策は思いついていません。
一応、glibc-2.32 を --enable-static-nss でビルドした環境で
作り直した static binary は、/lib/libnss_files.so の有無に関わらず
動作することが確認できたので、この環境で作り直した busybox-1.32 ベースの
パッケージ管理ツールを pkgtools7 という名前でパッケージ化しました。
現状、Plamo-test ディレクトリに置いているので、興味ある人はテストしてみてください。
ftp://plamo.linet.gr.jp/pub/Plamo-test/for-7.x/x86_64/pkgtools7-1.0-x86_64-B1.txz
従来、パッケージツールのパッケージ名は pkgtools だったけど、
/sbin/installer/ を安全に更新するために、パッケージ名を pkgtools7
に変更しています。
このパッケージを installpkg すれば、古い pkgtools パッケージは自動的に
削除されます。
パッケージツールを pkgtools7 に更新すれば、同じディレクトリにある
glibc-2.32/libc-2.32 も updatepkg でインストールできるようになります。
パッケージの更新順が影響するのはよろしくないものの、
glibc-2.32 以降に更新するにはこういう形が必要になりそうなので、
よろしくお願いします。
# このあたりの詳細は玩式草子の記事にしようと思っているので、
# 興味ある人はご期待ください :-)
-------
こじま
- Follow-Ups
-
- [plamo:33413] Re: [FYI] glibc-2.32 breaks install tools, KATOH Yasufumi
[検索ページ]
[メール一覧]
Plamo ML 公開システム