SSD Nodes Learn 🎉 VPS $5.50/నెల నుండి
మార్గదర్శకాలు Matt Connorద్వారా Matt Connor · అప్‌డేట్ చేయబడింది 2026-08-13

duplicate apt sources మరియు deb822 files సమస్య పరిష్కారం

apt update లో "configured multiple times" error వస్తే, legacy .list మరియు deb822 .sources files ను కనుగొని ఒక్కదాన్ని ఉంచండి. Ubuntu 24.04+ లో ఇది సాధారణంగా జరుగుతుంది.

డూప్లికేట్ apt sources లోపం అర్థం

డూప్లికేట్ apt sources అంటే ఒక repository రెండు వేర్వేరు files లో రెండుసార్లు ప్రకటించబడిందని అర్థం. APT (advanced package tool) రెండు కాపీలను గుర్తించింది. Ubuntu 24.04 మరియు ఆ తర్వాతి versions లో ఇది దాదాపు ఎల్లప్పుడూ ఈ కారణంగానే జరుగుతుంది: third-party install script పాత one line .list file ను రాసింది, అయితే అదే repository కోసం deb822 .sources file ఇప్పటికే disk పై ఉంది. ఏదీ పాడవలేదు. ఏ package కూడా ప్రమాదంలో లేదు. రెండు declarations లో ఒకదాన్ని తొలగిస్తే ఆ message కనిపించదు.

ప్రజలు search box లో paste చేసే line ఇది:

W: Target Packages (stable/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list.d/docker.list:1 and /etc/apt/sources.list.d/docker.sources:1

దీనిని చివరి భాగం నుంచి చదవండి. ఒక్కో file లో line number తో ఉన్న రెండు files ఒకే విషయాన్ని declare చేస్తున్నాయి. Target Packages అనేది repository అందించే packages తెలుసుకోవడానికి apt download చేసే index. stable/binary-amd64/Packages ఆ index వర్తించే component (stable) మరియు architecture (amd64) ను సూచిస్తుంది. అందువల్ల stable component కోసం amd64 index, docker.list లో line 1 వద్ద ఒకసారి, docker.sources లో line 1 వద్ద మరోసారి configured అయిందని apt చెబుతోంది.

apt 3.0 మరియు ఆ తర్వాతి versions లో, అంటే Ubuntu 25.04 నుంచి మరియు Debian 13 లో, ఇదే message W: బదులుగా Warning: తో ప్రారంభమవుతుంది. Prefix తర్వాతి text అదే ఉంటుంది.

ఆ warning తేలికపాటి పరిస్థితిని సూచిస్తుంది. apt రెండు declarations ను merge చేస్తుంది, మరియు update కొనసాగుతుంది, ఎందుకంటే రెండూ ఒకే key తో ఉన్న అదే archive ను వివరిస్తాయి. కఠినమైన పరిస్థితిలో మాత్రం మొత్తం ప్రక్రియ ఆగిపోతుంది:

E: Conflicting values set for option Signed-By regarding source https://download.docker.com/linux/ubuntu/ noble: /usr/share/keyrings/docker-archive-keyring.gpg != /etc/apt/keyrings/docker.asc
E: The list of sources could not be read.

ఇక్కడ రెండు declarations ఒకే archive కోసం వేర్వేరు signing keys ను సూచిస్తున్నందున apt నిరాకరిస్తుంది. ఒకేలా ఉన్న రెండు declarations ను apt merge చేస్తుంది. కానీ రెండు Signed-By values లో ఏదో ఒకదాన్ని ఎంచుకోదు. తప్పు value ను ఎంచుకుంటే package signatures ను archive owner ఉపయోగించని key తో verify చేయాల్సి వస్తుంది. అందువల్ల apt ఏ sources ను చదవదు. Files ను చేతితో edit చేసే వరకు apt update మరియు apt install రెండూ అదే రెండు lines తో fail అవుతాయి.

ఈ duplicate ఎలా ఏర్పడుతుంది

రెండు formats వేర్వేరు extensions ఉన్న ప్రత్యేక files లో ఉంటాయి. అందువల్ల రెండూ disk పై ఉండకుండా ఆపేది ఏదీ లేదు. ప్రతి source file ను fetch చేయాల్సిన index targets జాబితాగా apt విస్తరించినప్పుడు మాత్రమే ఈ overlap గుర్తిస్తుంది. అప్పటివరకు docker.list మరియు docker.sources పరస్పరం సంబంధం లేని రెండు files.

ఈ duplicate ఏర్పడటానికి సాధారణంగా నాలుగు సంఘటనలు కారణమవుతాయి:

  • ఒక vendor install script లేదా పాత post నుంచి copy చేసిన command, tee line తో /etc/apt/sources.list.d/vendor.list ను రాస్తుంది.
  • తరువాత vendor యొక్క స్వంత package /etc/apt/sources.list.d/vendor.sources ను release చేసి, దాన్ని మీ కోసం install చేస్తుంది.
  • Ubuntu 24.04 మరియు తదుపరి versions లోని add-apt-repository deb822 .sources files ను రాస్తుంది. అందువల్ల మీరు గతంలో .list గా manually జోడించిన PPA (personal package archive), .sources గా తిరిగి వస్తుంది.
  • Release upgrade distribution యొక్క స్వంత sources ను deb822 గా తిరిగి రాసి, మీరు manually రాసిన .list file ను వాటి పక్కనే అలాగే ఉంచుతుంది.

ప్రతి మార్గం విడిగా చూస్తే సమంజసమే. ఒకే system పై వీటిలో రెండు మార్గాలు, తరచుగా నెలల వ్యవధిలో, సంభవించినప్పుడు duplicate ఏర్పడుతుంది.

రెండు formats ను పక్కపక్కన

పాత format లో ప్రతి repository కి ఒక line ఉంటుంది. అందులోని ప్రతి భాగం తన స్థానంపై ఆధారపడి ఉంటుంది.

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable

క్రమం స్థిరంగా ఉంటుంది: binary packages కోసం type (deb), source packages కోసం type (deb-src), తరువాత square brackets లో options, తరువాత archive యొక్క URI (uniform resource identifier), ఆపై suite, చివరగా ఒకటి లేదా అంతకంటే ఎక్కువ components. అర్థం స్థానంపై ఆధారపడి ఉంటుంది కాబట్టి, తప్పు స్థానంలో ఉన్న ఒక space apt చదివే అర్థాన్ని మార్చుతుంది.

deb822 అదే సమాచారాన్ని పేర్లు ఉన్న fields గల stanza గా పేర్కొంటుంది. ఈ పేరు RFC 822 నుంచి వచ్చింది. Debian package control files కోసం ఇదే mail header శైలిని ఇప్పటికే ఉపయోగిస్తుంది.

Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: noble
Components: stable
Architectures: amd64
Signed-By: /etc/apt/keyrings/docker.asc

అదే repository, అదే key, అదనంగా ఏమీ లేదు. Mapping నేరుగా ఉంటుంది: deb, Types గా మారుతుంది; archive address, URIs గా మారుతుంది; suite, Suites గా మారుతుంది; components, Components గా మారతాయి. ప్రతి bracket option తన స్వంత field గా మారుతుంది. అందువల్ల signed-by=, Signed-By: గా, arch=, Architectures: గా మారుతుంది.

ప్రతి field name plural లో ఉంటుంది, ఎందుకంటే ప్రతి field space తో వేరు చేసిన list ను స్వీకరిస్తుంది. ఒక stanza లోని Suites: noble noble-updates noble-backports, మూడు వేర్వేరు deb lines స్థానాన్ని భర్తీ చేస్తుంది. Blank line ఒక stanza ను ముగిస్తుంది. అందువల్ల ఒకే .sources file లో అనేక repositories ఉండవచ్చు. ఒక line format సరిగా నిర్వహించలేని settings ను కూడా deb822 కలిగి ఉంటుంది: repository ను నిలిపివేయడానికి Enabled: no, Trusted, Check-Valid-Until, అలాగే ప్రతి line ను ఒక space తో indent చేసి, blank lines ను ఒకే dot గా రాసి Signed-By లోకి నేరుగా paste చేసే inline key.

ఏ ఫైల్ ఎక్కడ ఉంటుంది

  • /etc/apt/sources.list: అసలు single file. Ubuntu 24.04 మరియు తరువాతి versionsలో ఇది సాధారణంగా ఖాళీగా ఉంటుంది లేదా కొత్త స్థానాన్ని సూచించే comment మాత్రమే కలిగి ఉంటుంది.
  • /etc/apt/sources.list.d/*.list: ఒక్కో repositoryకి సాధారణంగా ఒక్కో file ఉండే one-line entries.
  • /etc/apt/sources.list.d/*.sources: deb822 stanzas. Ubuntu 24.04 మరియు తరువాతి versionsలో distributionకు చెందిన repositories ఇవి ఇక్కడ, ubuntu.sources లో ఉంచుతాయి.
  • /etc/apt/keyrings/: మీరు జోడించే keys ఉండాల్సిన స్థానం. ప్యాకేజీ నుంచి వచ్చిన keys /usr/share/keyrings/ లో ఉంటాయి.

apt, .list లేదా .sources తో ముగిసే filesను మాత్రమే చదువుతుంది. filenameలో letters, digits, underscore, hyphen మరియు period ఉండవచ్చు. ఇతర extension ఉన్న fileను noticeతో skip చేస్తుంది. దిగువ పరిష్కారానికి ఇది ముఖ్యమైన విషయం.

నకలు జంటను కనుగొనండి

డైరెక్టరీ జాబితాతో ప్రారంభించండి:

ls -l /etc/apt/sources.list.d/
-rw-r--r-- 1 root root  195 Aug  3 09:12 docker.list
-rw-r--r-- 1 root root  254 Aug  9 14:40 docker.sources
-rw-r--r-- 1 root root 2683 Jun 11 08:02 ubuntu.sources

ఒకే stem మరియు వేర్వేరు extensions ఉన్న రెండు files సాధారణంగా జంటగా ఉంటాయి. అయితే పేర్లను నమ్మవద్దు. Contents ను చదవండి, ఎందుకంటే నకలు ఏ పేరున్న file లోనైనా దాగి ఉండవచ్చు:

grep -rn -E '^(deb |deb-src |Types:|URIs:|Suites:|Signed-By:)' /etc/apt/sources.list /etc/apt/sources.list.d/
/etc/apt/sources.list.d/docker.list:1:deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu noble stable
/etc/apt/sources.list.d/docker.sources:1:Types: deb
/etc/apt/sources.list.d/docker.sources:2:URIs: https://download.docker.com/linux/ubuntu
/etc/apt/sources.list.d/docker.sources:3:Suites: noble
/etc/apt/sources.list.d/docker.sources:6:Signed-By: /etc/apt/keyrings/docker.asc

ఒకే host మరియు ఒకే suite ఉన్న రెండు entries ఆ జంట. రెండూ https://download.docker.com/linux/ubuntu మరియు suite noble ను సూచిస్తున్నాయి. అందువల్ల అవి ఒకే repository ను రెండుసార్లు నమోదు చేస్తున్నాయి. వాటి Signed-By paths కూడా భిన్నంగా ఉన్నాయి. ఇదే ఇంతకు ముందు చూపిన Conflicting values error కు కారణం.

ఈ దశలో apt command కు బదులుగా grep ను ఉపయోగించండి. apt ఇప్పటికే conflict కారణంగా ఆగిపోయినప్పుడు అది మీ sources ను కూడా list చేయలేడు. అందువల్ల apt-cache policy మీకు కావాల్సిన సమాధానం కాకుండా అదే error ను ముద్రిస్తుంది.

పరిష్కరించండి: deb822 ఫైల్‌ను ఉంచి, legacy ఫైల్‌ను తొలగించండి

.sources ఫైల్‌ను ఉంచండి. apt tooling ప్రస్తుతం రాసే format ఇదే, అలాగే Debian మరియు Ubuntu రెండూ దీనివైపే మారుతున్నాయి. ఏదైనా తొలగించే ముందు, ఈ రెండు ముఖ్యమైన paths లో disk పై ఏది ఉందో పరిశీలించండి:

ls -l /etc/apt/keyrings/ /usr/share/keyrings/ | grep -i docker
-rw-r--r-- 1 root root 4813 Aug  9 14:40 docker.asc

/etc/apt/keyrings/docker.asc మాత్రమే ఉంది. కాబట్టి deb822 ఫైల్‌లోని సమాచారం సరైనది. .list ఫైల్ తొలగించబడిన key ను సూచిస్తోంది. మీరు ఉంచాలని అనుకుంటున్న ఫైల్‌లో missing key పేరు ఉంటే, ముందుగా పనిచేస్తున్న path ను దానిలోకి copy చేయండి. తరువాత మరో ఫైల్‌ను తొలగించండి.

legacy ఫైల్‌ను వెంటనే తొలగించకుండా directory వెలుపలకు move చేయండి:

sudo mkdir -p /root/apt-sources-backup
sudo mv /etc/apt/sources.list.d/docker.list /root/apt-sources-backup/
sudo apt update

దానికి docker.list.bak అని పేరు మార్చి అదే directory లో ఉంచినా పనిచేస్తుంది. apt తెలియని extensions ను విస్మరిస్తుంది. అయితే ప్రతి apt run సమయంలో ఇది కనిపిస్తుంది:

N: Ignoring file 'docker.list.bak' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension

ఫైల్‌ను వేరే చోటికి move చేస్తే ఆ notice కనిపించదు. Backup కూడా అలాగే ఉంటుంది. తరువాత ఆరోగ్యకరమైన apt update ఇలా కనిపిస్తుంది. ఇందులో రెండు ఫైళ్లను సూచించే line ఉండదు:

Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Get:2 https://download.docker.com/linux/ubuntu noble InRelease [48.8 kB]
Get:3 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Fetched 175 kB in 1s (146 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

ఇప్పుడు edit తర్వాత repository సరిగ్గా పనిచేస్తోందో నిర్ధారించండి:

apt-cache policy | grep download.docker.com
 500 https://download.docker.com/linux/ubuntu noble/stable amd64 Packages
     origin download.docker.com

ఏదైనా vendor documentation ఇప్పటికీ one line file ను ఆశిస్తే, ఆ ఫైల్‌ను ఉంచి బదులుగా .sources ఫైల్‌ను తొలగించవచ్చు. ఏ సందర్భంలోనైనా ఒకే నియమం వర్తిస్తుంది: ఇచ్చిన archive మరియు suite ను declare చేసే ఫైల్ ఖచ్చితంగా ఒకటే ఉండాలి.

ఒక పనిచేయని third-party source apt update ను ఎందుకు అడ్డుకుంటుంది

పక్కనే కనిపించే వైఫల్యం భిన్నంగా ఉన్నట్లు కనిపించినా, దాని మూల కారణం ఇదే: apt ఉపయోగించలేని third-party source. మొదటి రూపం missing key:

Err:5 https://download.docker.com/linux/ubuntu noble InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8
E: The repository 'https://download.docker.com/linux/ubuntu noble InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.

Signed-By field కనిపించకపోవచ్చు లేదా usable key కాని file ను చూపవచ్చు. అందువల్ల archive లోని InRelease file పై ఉన్న signature ను apt verify చేయలేను. పరిశీలించలేని package lists ను నమ్మడం కంటే, అది మొత్తం repository ను విస్మరిస్తుంది. ముందుగా key file ను పరిశీలించండి:

ls -l /etc/apt/keyrings/docker.asc
gpg --show-keys /etc/apt/keyrings/docker.asc

పనిచేసే key, key id తో కూడిన pub line ను మరియు vendor పేరును చూపించే uid line ను print చేస్తుంది. gpg: no valid OpenPGP data found. అంటే ఆ file అసలు key కాదు. సాధారణంగా key URL మారిపోయినందున download error page ను save చేసినప్పుడు ఇది జరుగుతుంది. Key ను మళ్లీ fetch చేసి, file ను తనిఖీ చేసి, తరువాత apt update ను run చేయండి.

రెండవ రూపం release upgrade తర్వాత కనిపిస్తుంది:

Err:6 https://ppa.launchpadcontent.net/ondrej/php/ubuntu plucky InRelease
  404  Not Found [IP: 10.0.0.80 443]
E: The repository 'https://ppa.launchpadcontent.net/ondrej/php/ubuntu plucky Release' does not have a Release file.

ఆ suite కోసం PPA ఏదీ publish చేయలేదు. అందువల్ల server లో ఆ path ఉండదు మరియు request 404 ను return చేస్తుంది. మీ ఇతర repositories మాత్రం update అవుతాయి. ఇప్పటికే install చేసిన packages కు ఎలాంటి మార్పు ఉండదు. అయితే run non-zero తో exit అవుతుంది. అందువల్ల apt update exit status ను తనిఖీ చేసే ఏ script అయినా ప్రతిసారీ failure ను report చేస్తుంది. unattended security upgrades configure చేసిన server లో పనిచేయని source ను తొలగించడం ఎందుకు ముఖ్యమో ఇదే కారణం: రోజువారీగా వచ్చే ఈ noise లో నిజమైన failure కనిపించకుండా పోతుంది.

మిగిలిన source లను ప్రభావితం చేయకుండా ఒక source ను నిలిపివేయడం

deb822 ఫైల్ కోసం stanza కు ఒక field జోడించి, దాన్ని save చేయండి:

Types: deb
URIs: https://ppa.launchpadcontent.net/ondrej/php/ubuntu
Suites: plucky
Components: main
Signed-By: /etc/apt/keyrings/ondrej-php.asc
Enabled: no

stanza లోని ప్రతి line ను comment చేయడం కంటే ఈ పద్ధతిని ఉపయోగించాలని apt manual సిఫార్సు చేస్తుంది. దీన్ని తిరిగి మార్చడం కూడా సులభం. ఒక line ఉన్న ఫైల్ కోసం line ప్రారంభంలో # ఉంచండి. ఏ format అయినా, ఫైల్‌ను /etc/apt/sources.list.d/ నుంచి బయటకు తరలించడం కూడా పనిచేస్తుంది. Repository శాశ్వతంగా తొలగించబడినప్పుడు ఎంచుకోవాల్సిన పద్ధతి ఇదే.

మళ్లీ sudo apt update ను run చేయండి. ఆ repository కి సంబంధించిన Err: block కనిపించదు. Exit status 0 కి తిరిగి వస్తుంది. తరువాతి line లో echo $? తో దీన్ని తనిఖీ చేయవచ్చు.

విరిగిన source ను ఎప్పుడూ sudo rm /etc/apt/sources.list.d/* తో పరిష్కరించవద్దు. Ubuntu 24.04 మరియు తదుపరి versions లో అది distribution సొంత repositories ఉన్న ubuntu.sources ను delete చేస్తుంది. దాంతో apt వద్ద package lists ఏవీ మిగలవు. స్పష్టంగా ఉన్న software కోసం కూడా అది E: Unable to locate package curl ను report చేస్తుంది. మీరు ఇప్పటికే దాన్ని run చేసి ఉంటే, ఆ ఫైల్‌ను మళ్లీ రాయండి:

Types: deb
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Types: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

దాన్ని /etc/apt/sources.list.d/ubuntu.sources గా save చేయండి. ఇందులో noble స్థానంలో lsb_release -cs నుంచి మీ స్వంత release name ఉంచండి. తరువాత sudo apt update ను run చేయండి.

పాత .list ఫైళ్లను deb822 కు మార్చండి

August 2026 నాటికి, apt 3.0 మరియు ఆ తర్వాతి వెర్షన్లలో దీని కోసం converter అందుబాటులో ఉంటుంది. Debian 13 లో ఇది ఉంది. Ubuntu 25.04 మరియు దాని తర్వాతి ప్రతి release లో, 26.04 సహా, ఇది అందుబాటులో ఉంటుంది. వెర్షన్‌ను తనిఖీ చేసి, తరువాత దీన్ని అమలు చేయండి:

apt --version
sudo apt modernize-sources

ఇది /etc/apt/sources.list.d/ కింద ఉన్న ఒక-లైన్ ఫైళ్లను deb822 .sources ఫైళ్లుగా తిరిగి రాస్తుంది. కమాండ్ చూపించే output ను చదవండి. తరువాత directory ను మీరే జాబితా చేసి, ఫలితాన్ని నమ్మే ముందు apt update అమలు చేయండి. Ubuntu 24.04 లో ఇలాంటి subcommand లేని పాత apt ఉంటుంది. అక్కడ కమాండ్ E: Invalid operation modernize-sources సమాధానం ఇస్తుంది. ఆ release లో, పైన ఇచ్చిన field mapping ను ఉపయోగించి చేతితో మార్చండి.

ప్రస్తుతం conversion తప్పనిసరి కాదు, ఎందుకంటే apt ఇప్పటికీ రెండు formats ను చదువుతుంది. మీరు కొనసాగించాలనుకుంటున్న server లో దీన్ని చేయడం ప్రయోజనకరం. ప్రస్తుతం sources రాసే ప్రతి tool deb822 ను రాస్తుంది. .sources ఫైళ్లు మాత్రమే ఉన్న box లో ఈ రకమైన duplicate ఏర్పడదు.

సర్వర్‌లో third-party sources ను క్రమబద్ధంగా ఉంచండి

Third-party repositories సర్వర్‌లో అత్యంత వేగంగా పాతబడే భాగం. మీ Ubuntu release కోసం అవి నిరంతరం ప్రచురణలు చేస్తామని ఇతరులు ఇచ్చిన హామీపై ప్రతి repository ఆధారపడి ఉంటుంది. Release upgrade సమయంలో ఆ హామీలన్నింటినీ ఒకేసారి పరీక్షించాల్సి వస్తుంది.

  • Distribution package పని చేయనప్పుడు మాత్రమే third-party repositoryని జోడించండి. సాధారణ Ubuntu 24.04లో LAMP stack కు ఇవి అవసరం లేదు. Ubuntu archiveలో అది ఉపయోగించే ప్రతి package ఉంటుంది. Release lifetime మొత్తం వాటికి security updates కూడా అందుతాయి.
  • Keys ను /etc/apt/keyrings/ లో ఉంచండి. ప్రతి vendorకు ఒక file ఉండాలి. దాని mode 644 గా ఉండాలి. Downloading ను unprivileged _apt user చేస్తుంది. ఆ user keyని చదవాలి. అందువల్ల root మాత్రమే చదవగలిగే key file ఉంటే, ఆ repository నుంచి ప్రతి fetch సమయంలో permission error వస్తుంది.
  • ప్రతి stanzaలో Signed-By ను అదే ఖచ్చితమైన fileకు point చేయండి. /etc/apt/trusted.gpg లేదా /etc/apt/trusted.gpg.d/ లో ఉన్న key ఆ serverలోని ప్రతి repositoryకి trusted అవుతుంది. అంటే, సంవత్సరాల క్రితం జోడించిన vendor key ఎక్కడి నుంచైనా వచ్చే packagesను validate చేయగలదు.
  • Release upgradeకు ముందు sourcesను చదవండి. మీరు మారబోయే suite కోసం ప్రతి vendor ఇప్పటికే packages ప్రచురిస్తున్నాడో లేదో తనిఖీ చేయండి.

పాత global keyringలో ఉన్న key ప్రతి update సమయంలో తన ఉనికిని తెలియజేస్తుంది:

W: https://download.docker.com/linux/ubuntu/dists/noble/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

ఆ ఒక్క keyను దాని స్వంత fileలోకి export చేయండి. తరువాత stanzaను ఆ fileకు point చేయండి:

gpg --no-default-keyring --keyring /etc/apt/trusted.gpg --export 7EA0A9C3F273FCD8 | sudo tee /etc/apt/keyrings/docker.gpg > /dev/null
sudo chmod 644 /etc/apt/keyrings/docker.gpg

Repository stanzaకు Signed-By: /etc/apt/keyrings/docker.gpg ను జోడించి, sudo apt update ను అమలు చేయండి. ఏ repository కూడా పాత keyringపై ఆధారపడకుండా ఉన్నప్పుడు warning ఆగిపోతుంది. తరువాత sudo gpg --no-default-keyring --keyring /etc/apt/trusted.gpg --delete-key 7EA0A9C3F273FCD8 తో ఆ entryని తొలగించవచ్చు.

మరో అలవాటు ఎక్కువ సమస్యలను నివారిస్తుంది. Upgrade సమయంలో do-release-upgrade third-party sourcesను disable చేస్తుంది. Upgrade పూర్తయిన తరువాత కూడా అవి offలోనే ఉంటాయి. వాటిని ఒక్కొక్కటిగా చేతితో మళ్లీ enable చేయడం వల్ల duplicate declarations ఏర్పడే అవకాశం ఎక్కువ. ప్రారంభించే ముందు Ubuntu 24.04 నుంచి 26.04కు upgrade guide చదవండి. ఇంకా అవసరమైన repositories ఏవో రాసి పెట్టుకోండి. ఇప్పుడే నిర్మించిన machineలో sourcesను సరిగ్గా అమర్చడానికి అత్యంత తక్కువ ఖర్చయ్యే సమయం కొత్త VPSలో మొదటి పది నిమిషాలు. ఆ సమయంలో serverలో Ubuntu అందించిన entries మాత్రమే ఉంటాయి.

FAQ

apt ఒక target అనేకసార్లు configured అయిందని ఎందుకు చెబుతుంది?

ఎందుకంటే /etc/apt/sources.list.d/ కింద ఉన్న రెండు files ఒకే repository, suite మరియు component ను declare చేస్తున్నాయి. ఈ message line numbers తో రెండు files పేర్లను చూపిస్తుంది; ఉదాహరణకు docker.list:1 మరియు docker.sources:1. apt వాటిని merge చేసి కొనసాగుతుంది, కాబట్టి update స్వయంగా పనిచేస్తుంది. అయినప్పటికీ duplicate ను తొలగించడం మంచిది: రెండు files వేర్వేరు signing keys ను పేర్కొన్న వెంటనే, apt E: Conflicting values set for option Signed-By వద్ద ఆగి ఏ source ను చదవదు. దాంతో apt install కూడా పనిచేయదు.

.list file ను ఉంచాలా, లేక .sources file ను ఉంచాలా?

.sources file ను ఉంచండి. Ubuntu 24.04 మరియు తరువాతి versions లో add-apt-repository రాసేది deb822 format. ఇందులో square brackets లోని positional text బదులుగా ప్రతి setting కు ఒక named field ఉంటుంది. భవిష్యత్తులో distributions ఉపయోగించబోయే format కూడా ఇదే. .list file ను తొలగించే ముందు, .sources file లోని Signed-By path ప్రస్తుతం ఉన్న key ను సూచిస్తోందో లేదో ls -l /etc/apt/keyrings/ తో నిర్ధారించండి. పాత file ను /etc/apt/sources.list.d/ బయటకు move చేయండి; directory లోపలే దాని పేరు మార్చవద్దు. మిగిలిపోయిన .bak పేరు ఉంటే ప్రతి run లో apt ignored-file notice చూపిస్తుంది.

ఒక apt repository ని తొలగించకుండా ఎలా నిలిపివేయాలి?

deb822 .sources file లో stanza కు Enabled: no ను జోడించండి. ఒక-line .list file లో line ప్రారంభంలో # ను ఉంచండి. రెండు సందర్భాల్లోనూ తరువాత sudo apt update ను run చేయండి. అప్పుడు ఆ repository కి సంబంధించిన Err: block కనిపించదు. ఒక third-party repository కి మీ Ubuntu release కోసం ఇంకా packages లేకపోవడం వల్ల దాని 404 error apt update ను non-zero తో exit చేయిస్తే, ఇదే సరైన చర్య.

ఒక-line sources.list format తొలగించబడబోతోందా?

అది deprecated అయింది, కానీ తొలగించబడలేదు. apt ఇప్పటికీ .list files ను చదువుతుంది. ఇంకా చాలాకాలం చదువుతుంది, కాబట్టి రేపే మీ server లో ఏదీ విఫలం కాదు. కొత్త tooling deb822 ను రాస్తుంది: Ubuntu 24.04 మరియు తరువాతి versions distribution repositories ను /etc/apt/sources.list.d/ubuntu.sources లో ఉంచుతాయి, అలాగే add-apt-repository .sources files ను రాస్తుంది. apt 3.0 మరియు తరువాతి versions లో, మీ వద్ద ఇంకా ఉన్న files ను sudo apt modernize-sources convert చేస్తుంది.

#apt#ubuntu#deb822#package-management#troubleshooting