web-dev-qa-db-ja.com

「W:Duplicate sources.list entry」の修正方法

Sudo apt-get updateを実行しようとすると、常にこの警告が表示されます。

W: Duplicate sources.list entry http://archive.ubuntu.com/ubuntu/ precise-updates/main i386 Packages (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_precise-updates_main_binary-i386_Packages)
W: You may want to run apt-get update to correct these problems

以下は、/etc/apt/sources.listファイルからの出力です。

deb http://archive.ubuntu.com/ubuntu precise main restricted
deb-src http://archive.ubuntu.com/ubuntu precise main restricted

deb http://archive.ubuntu.com/ubuntu precise-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu precise-updates main restricted

deb http://archive.ubuntu.com/ubuntu precise universe
deb-src http://archive.ubuntu.com/ubuntu precise universe
deb http://archive.ubuntu.com/ubuntu precise-updates universe
deb-src http://archive.ubuntu.com/ubuntu precise-updates universe

deb http://archive.ubuntu.com/ubuntu precise multiverse
deb-src http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-updates multiverse

deb http://archive.ubuntu.com/ubuntu precise-security main restricted
deb-src http://archive.ubuntu.com/ubuntu precise-security main restricted
deb http://archive.ubuntu.com/ubuntu precise-security universe
deb-src http://archive.ubuntu.com/ubuntu precise-security universe
deb http://archive.ubuntu.com/ubuntu precise-security multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-security multiverse

どうすれば修正できますか?

190
hsinxh

sources.listには実際に重複したエントリがあります。

最初に、リポジトリ行またはソース行の正しい形式を見てみましょう。

リポジトリのソース行の正しい形式は

<type of repository>  <location>  <dist-name> <components> 

たとえば、レポ行は次のようになります

  deb http://archive.ubuntu.com/ubuntu precise main

ここでは、リポジトリは http://archive.ubuntu.com/ubunt でホストされているバイナリパッケージ用であり、このリポジトリはUbuntu正確(12.04)用であり、このリポジトリにはメインが含まれています(Canonicalによって公式にサポートされているソフトウェア)コンポーネント。

  • タイプ:タイプには、debおよびdeb-srcを指定できます。 debはバイナリリポジトリを意味し、deb-srcはソースリポジトリを意味します

  • 場所:http://archive.ubuntu.com/ubuntuリポジトリの場所。

  • Dist-name: Ubuntuリリースのディストリビューション名。 Ubuntu 12.04の場合はprecise、11.10の場合はoneiricです。
    Ubuntu Wikiにアクセスして、更新された buntuリリースとそのコード名のリスト を確認できます。

  • コンポーネント:mainuniversemultiverse、およびrestrictedのいずれかです。これらの単語は、パッケージのサポートレベルとライセンスステータスを示します。

詳細については、 このページ を参照してください。

行に1つ以上のコンポーネントを追加できるため、「main」、「universe」、「restricted」、および「multiverse」を1行で入力できることに注意してください。 また、1行に複数のコンポーネントを追加しますが、APTシステムは、それらを1つのコンポーネントのみを含む個別の行と見なします。

したがって、sources.listに次のような行がある場合

deb http://archive.ubuntu.com/ubuntu precise universe

次に、以下のような別の行を含めることはできません(ファイルにあります)

deb http://archive.ubuntu.com/ubuntu precise main universe

これはこれらの2行に相当します

deb http://archive.ubuntu.com/ubuntu precise main
deb http://archive.ubuntu.com/ubuntu precise universe

なぜなら、universeを2回複製しているため、その複製にはエラーが発生するからです。見つかった重複ごとにエラーが表示されます。

解決:

sources.listファイルを分析したところ、デフォルトでUbuntuによって提供される基本的なものであることがわかりました。手順に従ってデフォルトのファイルを作成できます。

  1. ターミナルを開き、最初に既存のsources.listファイルの名前をsources.list.bakファイルに変更します。 (これは安全に削除できますが、注意が必要です)。

     Sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
    
  2. 次に、software-properties-gtkを開いて新しいものを作成します。ターミナルまたはダッシュコマンドで次のコマンドを入力します Alt+F2

    software-properties-gtk
    

    Ubuntuバージョン11.10以前では、software-properties-gtkコマンドの前にgksuを使用する必要があります。

  3. ウィンドウが開いたら、

    • buntu Softwareタブで4つのカテゴリすべてを選択します
    • precise-securityprecise-updates、およびprecise-backportsカテゴリを選択します更新タブ。
    • その他のソフトウェアタブから標準パートナーおよび独立カテゴリを選択します。

それでおしまい。これで、デフォルトのsources.listファイルがエラーなしで作成されました。必要に応じて、このファイルを前のファイルと比較します。


sources.list.d dirのファイルを処理するための更新

APTでも使用される/etc/apt/sources.list.dディレクトリ内のファイルに重複エントリが存在する場合があります。そのため、そのディレクトリを見て、それらのファイルに重複があるかどうかを確認する必要があります。重複が同じファイルにある必要はありません。

事例:

ユーザーは、Sudo apt-get updateの実行中にこのエラーメッセージを表示しました。

W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main AMD64 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-AMD64_Packages)
W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main i386 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-i386_Packages)
W: You may want to run apt-get update to correct these problems

ただし、メインhttp://dl.google.comファイルに/etc/apt/sources.listのエントリがありませんでした。 /etc/apt/sources.list.d/ディレクトリを見ると、次のファイルが見つかりました。

ls /etc/apt/sources.list.d/の出力:

aims-sagemath-precise.list
aims-sagemath-precise.list.save
dropbox.list
dropbox.list.save
fossfreedom-packagefixes-precise.list
fossfreedom-packagefixes-precise.list.save
google-chrome.list
google-chrome.list.save
google.list
google.list.save
sagemath-monolithic-precise.list
sagemath-monolithic-precise.list.save

ファイルgoogle-chrome.listおよびgoogle.listは、重複を含めるのに適した候補です。そのため、両方のファイルの内容を確認する必要がありました。

cat /etc/apt/sources.list.d/google-chrome.listの出力:

deb http://dl.google.com/linux/chrome/deb/ stable main  

およびcat /etc/apt/sources.list.d/google.list

deb http://dl.google.com/linux/chrome/deb/ stable main

そのため、Aptのソースに重複したエントリがありました。 google-chrome.listには1つのapt行しか含まれておらず、google.listファイルにもリストされているため、コマンドでこのファイルを安全に削除できます。

Sudo rm /etc/apt/sources.list.d/google-chrome.list

その後、問題は解決しました。

228
Anwar

buntu 12.04の場合

グラフィカルに:

押す Alt + F2 software-properties-gtkを貼り付けます(または[ソフトウェアセンター]を開いて[編集]> [ソフトウェアソース]に移動します)。 [その他のソフトウェア]タブに移動し、重複するエントリを選択して[削除]ボタンを押します。

enter image description here


コマンドラインオプションが必要な場合は、次のとおりです。

cat /etc/apt/sources.list | Perl -ne '$H{$_}++ or print' > /tmp/sources.list && Sudo mv /tmp/sources.list /etc/apt/sources.list  

コマンドはこれを行います:

catはファイルを読み取り、その内容をPerlに渡します。これにより、重複する行が削除されます。その後、結果は一時ファイルに>保存され、元の/etc/apt/sources.listファイルを置き換えるために移動されます。

80
desgua

Sources.listの重複エントリはどれくらい悪いですか?

どれほど悪いのかわかりませんが、Sudo apt-get update重複したエントリを表示するのは好きではありません。

ちなみに、それほど悪くはなく、重複したエントリがあることを示しています。

SourcesList

Sources.listファイルは、Ubuntuインストールにアプリケーションを追加またはアップグレードする際の重要な要素です。これは、システムの更新のためにシステムでも使用されます。このファイルは、基本的にシステムがインストールまたはアップグレードのためにプログラムをダウンロードする場所を知るためのロードマップです。

まさにWindowsアップデート

Y PPA Managerを使用すると、いくつかの簡単な手順で重複したエントリを削除できます。

 Sudo add-apt-repository ppa:webupd8team/y-ppa-manager -y
 Sudo apt-get update
 Sudo apt-get install y-ppa-manager -y

開くy-ppa-managerフォームダッシュ

管理者パスワードを入力してください

enter image description here

高度なダブルクリック

enter image description here

重複したPPAをスキャンして削除し、[OK]をクリックします

enter image description here

重複したPPAをスキャンして削除するには、しばらく時間がかかります(1または2分)

24
Qasim

パートナーリポジトリは、/etc/apt/sources.listおよび/etc/apt/sources.list.d/precise-partner.list内で複製されます。

パートナーリポジトリがsources.listに既に存在するため、これらの「正確なパートナー」ファイルを削除してください。

Sudo rm /etc/apt/sources.list.d/precise-partner.*
16
Eric Carvalho

Sources.listのバックアップコピーを作成します。

Sudo cp /etc/apt/sources.list{,.backup}

元のファイルを削除して更新します。

Sudo rm /etc/apt/sources.list && Sudo apt-get update
10
wojox

私は同じ問題を抱えていました、オープンソース。 「標準パートナー」のチェックを外しました。競合は「正規のパートナー」と「ソフトウェアセンターによって追加された正規のパートナー」の間にあります

8
Amjed

source.listでそれを理解できなかった場合は、次を実行します。

  1. (画面の一番上にある)設定アイコンを左クリックして、[システム設定]を選択します。
  2. ソフトウェアソースをクリックして、他のソフトウェアに移動します。
  3. 「Canonical Partners(ソースコード)-Canonicalがパートナー向けにパッケージ化したソフトウェア」ファイルの1つと「Canonical Partners-Canonicalがパートナー向けにパッケージ化したソフトウェア」ファイルの1つもチェックを外し、閉じるをクリックして終了します。
  4. 同時に押す CTRL + ALT + T 端末を開いてSudo apt-get updateと入力するキー。
7
all4naija

10.10以前

アプリケーション> Ubuntuソフトウェアセンター>編集>ソフトウェアソース>その他のソフトウェア

OR

システム>管理> Synaptic Packet Manager>設定>リポジトリ

Software Sources config window

重複するエントリを選択して削除します。

6
Sid

Ubuntu 9.10-12.04の場合

Y-PPA-Managerと呼ばれるアプリがあり、これを行うことができます。

ターミナルからそのようにインストールできます:

Sudo add-apt-repository ppa:webupd8team/y-ppa-manager
Sudo apt-get upgrade
Sudo apt-get install y-ppa-manager

その後、アプリケーションを起動して、[詳細設定]メニューに移動します。

enter image description here

次に、「重複するPPAをスキャンして削除」を選択して、「OK」をクリックします。

enter image description here

5
rearlight

/etc/apt/sources.listファイルに2つの同じ行があるように聞こえます。

ターミナルに移動してSudo editor /etc/apt/sources.listと入力し、そのファイルで同一の行を探し、見つかった場合は削除します。完了したら、保存して終了し、Sudo apt-get updateを実行して問題を解決します。

それでも問題が解決しない場合は、試行錯誤のアプローチを使用する必要があります。最初にsources.listファイルのバックアップを作成し、次に実際のファイルで各行をコメントアウトまたは削除し、各行をコメントアウトまたは削除した後にapt-get update- ingを保存します。このファイルを1行ずつコメントアウトして、異なる行をコメントアウトすると、最終的にどの行が余分な行かがわかります。 apt-get updateが引き続き同じプロンプトを表示する場合は、コメントした行のコメントを外すことを忘れないでください。そうしないと、sources.listファイルにソースが残りません。

4
Jeff Welling

そのようなツールを検索しましたが、見つかりませんでした...
それで、私はPHPで自分でコーディングすることになりました。

汚い未整理のソースコードでごめんなさい。

chkdup-スクリーンショット:

enter image description here

著者

ムバラク・アラシディ(DeaDSouL)

要件:

  1. PHP。
  2. 須藤。

インストール:

  1. ターミナルを開きます。
  2. PHPがない場合にインストールするには、Sudo apt-get install php5 php5-cliと入力します。
  3. chkdup をダウンロードします。
  4. 任意の場所にファイルを抽出します。
  5. タイプ:Sudo sh install.sh

アンインストール:

  1. ターミナルを開きます。
  2. ツールを抽出したパスに移動します。
  3. タイプ:Sudo sh uninstall.sh

それを使用する方法:

ターミナルを開いてSudo chkdupと入力するだけです。

よくある質問:

install.shは何をしますか?

  • インストーラーはchkdup.php/opt/に移動し、/usr/bin/にシンボリックリンクを作成します。

uninstall.shはどうですか?

  • アンインストーラーは、次のファイルを削除します。

    1. install.sh
    2. /opt/chkdup.php
    3. /usr/bin/chkdup
    4. それ自体uninstall.sh

chkdupを使用しても安全ですか?

  • はい、それは何でもしようとする前に現在のsources.listのバックアップを取るからです。しかし、何かが起こった場合、私は責任を負いません。完全な責任はあなた次第です。

ライセンス

GNU General Public License

4
DeaDSouL

ls /etc/apt/sources.list.d/を確認しましたか?たぶん、あなたはそこにいくつかの「余分な」リポジトリを持っていますか?

3
koni_raid

Ubuntu-Tweakをインストールして、そこから重複したエントリを削除します。

Sudo add-apt-repository ppa:tualatrix/ppa
Sudo apt-get update
Sudo apt-get install ubuntu-Tweak

alt text

2
karthick87

buntu Sources List Generator を使用します。

  • ターミナルでSudo -H nautilusを実行します
  • /etc/apt/sources.listを検索
  • テキストエディターでファイルを右クリックして開きます(クリックすると、ソフトウェアソースGUIが開きます)
  • sources.listにコピーして貼り付けて保存します。
  • ターミナルを終了すると完了です。

Googleには問題があるようですので、それを省くことをお勧めします。これをUbuntu 12.10(Ubuntuデスクトップが追加されたスタジオバージョンと別のデスクトップサインイン用のUnityバージョン)で行いました。

1
studiofreak

ターミナルを使用して他のユーザーから提供された可能性を完了しようとします。それは主にあなたが尋ねたことだからです

テキストベースのインストールを使用している場合、または押す場合はログインします Alt+F2 GUIを使用している場合はgnome-terminalと入力します

次に入力

Sudo nano /etc/apt/sources.list

(理解を深めるために:/etcディレクトリには(ほぼ)コンピュータのすべての構成ファイルがあり、aptディレクトリにはsouces.listファイルがあり、APTソフトウェアの更新またはインストールおよびアップグレードに使用)

ファイルを編集して、重複する行の行の先頭で#を削除またはコメント化します。

押す Ctrl+X 終了して押す y ファイルを保存する(または n 保存せずに終了します)。

次に、更新して修正したかどうかを確認します。

Sudo apt-get update

楽しんで!

1
Pitto

いいえ、/etc/apt/sources.listファイル内の重複したエントリを見つけて削除するための単一のコマンドラインはありません。

これは、はるかに単純な組み込みuniqコマンドの機能を単に複製する推奨コマンドラインがSORTEDファイルでのみ機能し、ADJACENTラインのみを削除するためです。さらに、これらのコマンドは、同一の文字列で構成される行のみを削除します。

apt-get updateによって報告される重複エントリは、そのi386およびAMD64バリアントの両方に含まれるリポジトリなど、重複したfunctionエントリで構成されます。これらを削除する簡単で効果的な方法は、apt-get updateによって重複として報告されるリポジトリをメモし、Software Centerを使用して削除することです。開いて、編集-> ソフトウェアソース-> その他のソフトウェアタブを選択します。重複するエントリを探して、チェックを外してください。 (これは、パッケージをコンパイルしていない場合にsource-codeリポジトリーを削除する機会でもあります)。

ただし、apt-get updatesources.listを介して重複するエントリを検出するだけでなく、/var/lib/apt/lists/にあるリポジトリファイルも含むことに注意してください。そこから重複したエントリを削除しても、ファイルが自動的に再インストールされるため、Ubuntuが必要と判断した場合にapt-get updateエラーメッセージを一時的に削除するだけです。 apt-get updateが一部のリポジトリを重複として報告し、apt-get update自体を実行してそれらを修復することを提案するという事実は、そのエラーメッセージを心配する必要がないという手がかりです。

1
Smarteralec

/etc/apt/sources.listを手動でSudo nano /etc/apt/sources.list経由して、重複を削除しました。 apt-get updateの後、問題は解決しました。

1
Anderverhaal

まあ、私は/etc/apt/sources.d(rootとして)の名前を別の名前に変更し、Sudo apt-get updateを実行してディレクトリとその内容を再確立することで、重複エントリの問題を自分で解決しました。

1
Seann

私の場合、重複はprerequists-sources.listファイルにありました。ターミナルで次のコマンドを実行して、アップグレードを続行できました。

Sudo mv /etc/apt/sources.list.d/prerequists-sources.list /tmp
Sudo apt-get update

次に、Update Managerに移動して、更新をインストールします。

1
Mathijs Sterk

/etc/apt/sources.listで、重複するリポジトリエントリにコメントを付け(行の先頭に#を追加)、変更を保存する必要があります。その後、Sudo apt-get updateを繰り返します。

1
Snorri

ファイル/etc/apt/sources.listを編集して(たとえば、Sudo -H gedit /etc/apt/sources.listを使用)、重複行を削除するか、行の先頭に#を挿入します。

1
Micha

重複する行を省略して一意のエントリのみを出力するuniqに適したジョブです。したがって、uniqの出力を取得し、古いファイルをuniqの出力に置き換えることができます。

 sort /etc/apt/sources.list | uniq > /tmp/sources && Sudo mv /tmp/sources  /etc/apt/sources.list
0
S="/etc/apt/sources.list" ;
S2="$S ${S}.d/*.list" ;
grep -b "^deb\`cat $S2 |
    grep -i "^deb[[:space:]]http" |
    sort |
    uniq -dc |
    sed -e 's;[[:space:]]\\+[[:digit:]]\\+[[:space:]]\\+deb\\(.\\+$\\);\\1;g'\`$" $S2

*読みやすくするために改行が挿入されています。

0
Tony Saratonev

以下を実行して重複を削除します

cat /etc/apt/sources.list | Perl -ne '$H{$_}++ or print' > /tmp/sources.list && Sudo mv /tmp/sources.list /etc/apt/sources.list  
0
Stormvirux

W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main AMD64 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-AMD64_Packages)の場合

開く:sources.list.d

rm google.list

google-chrome.listのみが残ります

0
Stevie G