価値が低下しましたapt-key
。たとえば、ここでは gpg キーに移行する方法について説明します。大丈夫です。しかし、sources.list
ファイルを上書きするまで1ヶ月ほどは機能します。なぜ、どのように上書きされたのかは分からないが、ある時点で上書きされてこの過程を再度実行しなければならなかったというだけです。これを行う外部リポジトリの一般的な例:geogebraまたはgoogle Earth。どちらの場合も、次deb [signed-by=/usr/share/keyrings/geogebra.gpg] http://www.geogebra.net/linux/ stable main
のように行を上書きします
deb http://www.geogebra.net/linux/ stable main
。
この問題の経験がある人や、やや迷惑な「新機能」の解決策を持っている人はいますか?
答え1
バオはそうだった
…Debianではありません。
梱包内容によると地理代数学(ここで検索可能http://www.geogebra.net/linux/pool/main/g/geogebra/
:)とそのメタデータ(例:すべて抽出し/tmp/geogebra
て確認できます)
dpkg-deb --raw-extract geogebra_4.2.60.0-30762_all.deb /tmp/geogebra
cd /tmp/geogebra
DEBIAN/postinst
文書:
[...] DEFAULTS_FILE=/etc/default/geogebra ## MAIN ## if [ ! -e "$DEFAULTS_FILE" ]; then echo 'repo_add_once="true"' > "$DEFAULTS_FILE" echo 'repo_reenable_on_distupgrade="true"' >> "$DEFAULTS_FILE" fi # Run the cron job immediately to perform repository configuration. nohup sh /etc/cron.daily/geogebra > /dev/null 2>&1 &
これは最初は次のように書かれます/etc/default/geogebra
。
repo_add_once="true"
repo_reenable_on_distupgrade="true"
etc/cron.daily/geogebra
(一日一回実行):
#!/bin/sh [...] # System-wide package configuration. DEFAULTS_FILE="/etc/default/geogebra" # sources.list setting for GeoGebra updates. REPOCONFIG="deb http://www.geogebra.net/linux/ stable main" [...] update_bad_sources() { [...] # Don't do anything if the file isn't there, since that probably means the # user disabled it. if [ ! -r "$SOURCELIST" ]; then return 0 fi [...] # Detect if the repo config was disabled by distro upgrade and enable if # necessary. handle_distro_upgrade() { [...] SOURCELIST="$APT_SOURCESDIR/geogebra.list" if [ -r "$SOURCELIST" ]; then [...] fi ## MAIN ## DEFAULTS_FILE="/etc/default/geogebra" if [ -r "$DEFAULTS_FILE" ]; then . "$DEFAULTS_FILE" fi if [ "$repo_add_once" = "true" ]; then install_key create_sources_lists RES=$? # Sources creation succeeded, so stop trying. if [ $RES -ne 2 ]; then sed -i -e 's/[[:space:]]*repo_add_once=.*/repo_add_once="false"/' "$DEFAULTS_FILE" fi else update_bad_sources fi if [ "$repo_reenable_on_distupgrade" = "true" ]; then handle_distro_upgrade fi
/etc/default/geogebra
初めて会った後、変更が発生します。
repo_add_once="false"
repo_reenable_on_distupgrade="true"
したがって、この機能は毎日またはアップグレードするたびに引き続き実行されますupdate_bad_sources()
。handle_distro_upgrade()
パッケージが自分の方法で自分のリポジトリを再度アクティブにしようとする2つの場所です。
geogebra
パッケージが独自のリポジトリを(再)追加するのを防ぎます。
内容に応じてこれを避けることができます。いいえすべてのファイルがあります/etc/apt/sources.d/geogebra
。しかし、それが将来どのように機能するかについての保証はありません。
だから現在の名前は/etc/apt/sources.d/geogebra
次のように変更されました。/etc/apt/sources.d/local-geogebra
しなければならないパッケージが独自のリポジトリソースを管理できないようにします(初期インストールを除く)。
あるいは、後でパッケージの動作が変更されても、パッケージの内容を変更できないように空のファイルを作成し、変更できないようにすることもできます。アップグレードスクリプトはこれらのアップグレードの戻りコード()を確認しないため、nohup ... &
アップグレード中に失敗しません。
だから:
mv /etc/apt/sources.d/geogebra /etc/apt/sources.d/local-geogebra
以下を選択することもできます。
touch /etc/apt/sources.d/geogebra
chattr +i /etc/apt/sources.d/geogebra
もう一つの方法は予防することです。予約されたことパッケージレベルでファイル名を無視する名前に変更してファイルを実行します。cronのDebian固有の無視リスト(そして見つかりません後ろ):
例えば、ドットを含むすべてのファイルは無視されます。。これは、cronが/etc/cron.d/のファイルを設定ファイル(つまり、.dpkg-dist、.dpkg-orig、.dpkg-old、および.dpkg-new)として処理するのを防ぐために行われます。
したがって、上記の内容に加えて、次の事項も適用されます。
dpkg-divert --local --rename --divert /etc/cron.daily/geogebra.disabled --add /etc/cron.daily/geogebra
/etc/cron.daily/geogebra
パッケージを実行し、パッケージが最初にインストールされる前または後に独自のリポジトリを管理しようとすることは避けてください。
追加されたキーは、apt-key
初期設定後に自動的に再追加されないようです。それでも存在する場合は、次のように確認できます。
# apt-key list [email protected]
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
pub rsa2048 2013-03-22 [SC]
9827 2894 F647 8AA4 434B 41D3 C072 A329 83A7 36CF
uid [ unknown] International GeoGebra Institute <[email protected]>
次のように削除できます。
# apt-key del [email protected]
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK