Debian - 欠落しているマニュアルページをインストールしますか?

Debian - 欠落しているマニュアルページをインストールしますか?

私は走るラズベリーBMC- 以下に基づく分布ラズベリーパイ、これはカスタマイズされた最小Debianです。ラズベリーパイ

私の記憶が正しい場合、manこのユーティリティはデフォルトでRaspBMCと一緒にインストールされません(間違っている可能性があります)。

問題は、man実際のユーティリティがインストールされる前にインストールされたパッケージにはマニュアルページがインストールされていないことです。これには、システムにプリインストールされたパッケージが含まれます。

例:udisks-glue(プレインストール)を試してみました。

$ man udisks-glue
No manual entry for udisks-glue

パッケージを再インストールすると、マンページが表示されます。

$ apt-get remove udisks-glue
$ apt-get install udisks-glue
$ man udisks-glue
[Man page gets displayed]

問題は何とかインストールできるかということです。みんなマニュアルページを紛失するのは簡単ですか?

私が知っている限り、マニュアルページをインストールすることはapt-get install各コマンドを実行するためのステップです。

Unpacking udisks-glue (from .../udisks-glue_1.3.4-1_armhf.deb) ...
Processing triggers for man-db ...
[...]

分割と征服を使用すると、次のように取得できると思います。

  1. インストールされているすべてのパッケージのリストを取得する(dpkg -l | grep ??? | cut ??? | ???
  2. 設定を台無しにせずにapt-getにパッケージを再インストールするように指示する方法を見つけます(一種のremove + install請求書には適していますが、依存関係とうまく機能しないようです)。
    編集:これはトリックを行う必要があります:
    sudo apt-get install --reinstall packagename
  3. 1の各項目に対して2を実行します。

これは(最も簡単な)方法ですか?

修正する

これを一度やったことがあるので、再インストールしたときにパッケージが最新バージョンにアップグレードされていないことを確認したいと思いました(apt-get upgrade基本的にはそうです)。apt-get install --reinstall

答え1

@derobertの答えから始めて、すべてのパッケージの最新バージョンを正確に再インストールしようとしました。

簡潔なバージョン:

sudo dpkg -l | grep '^ii ' | sed 's/  */\t/g' |cut -f 2,3 | sed 's/\t/=/' | xargs apt-get install --reinstall -y --ignore-missing

説明する:

実際に重要なのは、各パッケージに必要なバージョンを指定することです。

一般的なコマンドは次のとおりです。

apt-get install --reinstall <package>=<version>

長いコマンドラインを分割します。

$ dpkg -l

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                                        Version                            Architecture Description
+++-===========================================================-==================================-============-========================================================================
ii  adduser                                                     3.113+nmu3                         all          add and remove users and groups
ii  apt                                                         0.9.7.8+rpi1                       armhf        commandline package manager
ii  apt-utils                                                   0.9.7.8+rpi1                       armhf        package managment related utility programs
ii  aptitude-common                                             0.6.8.2-1                          all          architecture indepedent files for the aptitude package manager
ii  atmel-firmware                                              1.3-4                              all          Firmware for Atmel at76c50x wireless networking chips.

$ dpkg -l | grep '^ii '

...ヘッダ行とステータスが" hold"の一部のパッケージを削除します(代わりhiにマークされていますii)。

$ dpkg -l | grep '^ii ' | sed 's/  */\t/g'

...複数のスペースを単一のタブ文字に変換しますcut。シミュレーションするには、「x」が0回以上続く)
sedx+xx*

出力は次のとおりです。

ii      adduser 3.113+nmu3      all     add     and     remove  users   and     groups
ii      apt     0.9.7.8+rpi1    armhf   commandline     package manager
ii      apt-utils       0.9.7.8+rpi1    armhf   package managment       related utility programs
ii      aptitude-common 0.6.8.2-1       all     architecture    indepedent      files   for     the     aptitude        package manager
ii      atmel-firmware  1.3-4   all     Firmware        for     Atmel   at76c50x        wireless        networking      chips.

次:

$ dpkg -l | grep '^ii ' | sed 's/  */\t/g' | cut -f 2,3 | sed 's/\t/=/'

...名前を調べるとバージョン各パッケージの(2番目と3番目のフィールド)を区切るタブ文字を「=」に置き換えます。

adduser=3.113+nmu3
apt=0.9.7.8+rpi1
apt-utils=0.9.7.8+rpi1
aptitude-common=0.6.8.2-1
atmel-firmware=1.3-4

最後に、上記の各項目をxargs

パラメータに注意してください--ignore-missing。このコマンドは「ベストエフォート」として実行されます。一部のパッケージを再インストールできないため、アップデートを停止したくありません(これらのパッケージは変更されていません)。

$ dpkg -l | grep '^ii ' | sed 's/  */\t/g' |cut -f 2,3 | sed 's/\t/=/' | xargs apt-get install --reinstall --ignore-missing

テスト中に--dry-runapt-getにパラメータも追加しました。

答え2

かなり簡単な方法のようです。パッケージのリストとステータスを取得するコマンドはdpkg --get-selections次のとおりです。

dpkg --get-selections | grep '\<install$' | cut -f1 | xargs apt-get install --reinstall

関連情報