パッケージをインストールする前にdselect選択をリセット

パッケージをインストールする前にdselect選択をリセット

パッケージリストをさらに行きdselectReturn誤ってダブルクリックして[S]electオプションを確認して終了します。

そのオプションに進むと、[I]nstall私が望んでいないいくつかの新しいパッケージをインストールするように提案されます(元々探していたパッケージとは関係ありません)。

インストール自体を続けていないので、リストを一つずつ見て、各-パッケージを押さずに新しいパッケージを選択する前の選択項目をリセットする方法はありますか? (dselectこの操作が他の関連コマンドを介して実行されるかどうかは重要ではありません。)

編集:(例を追加)

dselectインストールされている別のコンピュータで試してみました。パッケージがインストールされていないとしますgnugo(これは単なる例です)。

  • 実行しdelect[S]electリストのインポートを選択します。
  • gnugoこのリストから検索してください(/慣れていない場合はこのリストを使用してくださいdselect)。
  • それを選択してください+
  • Return[提案の確認]をクリックしてReturnもう一度確認してメインメニューに戻ります(私の間違いです)。
  • 行く[I]nstall。それでは、次のように言います。

    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following NEW packages will be installed
      gnugo:i386 libgpm2:i386 libncurses5:i386 libreadline6:i386 libtinfo5:i386
    0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
    Need to get 1,926 kB of archives.
    After this operation, 9,634 kB of additional disk space will be used.
    Do you want to continue [Y/n]? 
    
  • ここ(n)で続行したくない場合は選択してください。

  • 辞職するdselect
  • dpkg --get-selections | grep gnugo何も生産されません。
  • 再起動してdselect再入力すると、インストール用[I]nstallにソフトウェアパッケージが選択され続けます。

もちろん、リストに戻って[S]elect検索してgnugoタップして_選択を解除することもできますが、より複雑な場合は、新しいパッケージのリストを1つずつ確認する必要があります。

[I]nstallinはdselect明らかにのフロントエンドですが、apt-get install選択項目がどこから出てくるのかよくわかりません。そうでないようですdpkg --get-selectiondselectMadeを使用して作成したすべての***方法でリセットしたいのですが、メニューから提案リストを手動でナビゲートすることなく、専用**(まだインストールされていない)とマークされたコンテンツが返されます。__[I]nstall

編集2:

/var/lib/dpkg/statusこれは明らかに次の項目を含むの内容に関連しています。

Package: gnugo
Status: install ok not-installed
Priority: optional
Section: games

手動でに変更すると、Status: deinstall ok not-installed選択項目から消えますdselect

私が望むのは、言ったことを(パッケージをそのままにすること)に変えるStatus: install ok not-installed一般的な方法です。Status: deinstall ok not-installedStatus: install ok installed

答え1

--set-selections*パラメータを使用してくださいdpkg

echo "<package-name> purge" | dpkg --set-selections

apt-get dselect-upgradeその後、を使用してパッケージ選択を適用できます。


インストール用に選択したがまだインストールされていないパッケージを見つける必要がある場合(選択をキャンセルできるように)、次のコマンドを使用します。

dpkg --get-selections | awk '{ if ($2=="install") print $1}' | grep -vF "$(dpkg -l | awk '/^ii/ {print $2}')"

もう少しカラフルにパイプを再接続して、まだインストールされていない--set-selections項目を自動的に選択解除できます。

dpkg --get-selections | awk '{ if ($2=="install") print $1,"deinstall"}' | grep -vF "$(dpkg -l | awk '/^ii/ {print $2}')" | dpkg --set-selections

*また、それを使用してすべての明示的な選択dpkg --get-selectionsを一覧表示することもできます。これはまたあなたに必要な形式を示しています--set-selections

答え2

dpkg --get-selectionsインストール済みとしてマークされたアイテムとまだインストールされていないdpkg -l '*'アイテムをリストするのではなくin

したがって、次の行はこれらの選択をリセットします。

dpkg -l '*' | grep '^in ' | awk '{ print $2 " deinstall" }' | dpkg --set-selections

答え3

使用資格~の検索機能リストを入手してください。

aptitude -F '%p' search '~ainstall !~i'

リストを渡してdpkg --set-selections削除マークを付けます。

aptitude -F '%p deinstall' search '~ainstall !~i' | dpkg --set-selections

ナレーター:21世紀にようこそ。 Dselectの代わりにAptitudeを使用することをお勧めします。

関連情報