"হ্যাশ যোগ মিল" ত্রুটির কারণে প্যাকেজ তালিকা ডাউনলোড করতে সমস্যা


387

আমি আপডেটগুলির জন্য যখন যাচাই করি, তখন আমি একটি "সংগ্রহের তথ্য ডাউনলোড করতে ব্যর্থ" ত্রুটি পাই।

বিশদে এটিই উঠে আসে:

W: Failed to fetch gzip:/var/lib/apt/lists/partial/us.archive.ubuntu.com_ubuntu_dists_natty_main_source_Sources  Hash Sum mismatch, 
E: Some index files failed to download. They have been ignored, or old ones used instead.

উত্তর:


459

কেবল /var/lib/apt/listsডিরেক্টরিগুলির সমস্ত সামগ্রী অপসারণ করুন :

sudo rm -rf /var/lib/apt/lists/*

তারপরে চালান:

sudo apt-get update

69
আপনি যদি সমস্ত ফাইল অপসারণ করেন তবে আপনাকে সেগুলি আবার ডাউনলোড করতে হবে। এই প্রক্রিয়াটি দ্রুত করার জন্য আপনি কেবল অবৈধ ফাইলটি সরাতে পারেন।
বেহরং

9
আমি ডেবিয়ান এর সাথেও এরকম ঘটনা মনে পড়ে। সমাধানটি হ'ল সংগ্রহস্থলগুলি স্যুইচ করা ছিল (যেমন, us.ubuntu.com থেকে XX.ubuntu.com এ যেখানে XX আপনার দেশের কোড) বা অপেক্ষা করা। সবচেয়ে ভাল ধারণাটি কিছুটা অপেক্ষা করা এবং পরে আবার চেষ্টা করা উচিত ry তালিকাগুলি সরিয়ে ফেলা ভাঙা তালিকাগুলি ঠিক করতে পারে তবে এটি খুব কমই ঘটে।
f.ardelian

4
পুরানো প্রশ্ন, তবে কিছু ডিস্ট্রোজে (এমডিবিয়ানদের মতো), এটি করার পরে আপনাকে " mkdir /var/lib/apt/lists/partial" (মূল হিসাবে, স্পষ্টতই) প্রয়োজন হবে, অন্যথায় আপনি " apt-get update" ব্যবহার করতে পারবেন না বা অন্যথায় অ্যাপ্লিকেশনটি ব্যবহার করতে পারবেন না ।
আর্চেনথ

7
@ অ্যালিসাগনো যদি এটি কোনও ফোল্ডার হয় তবে আপনার পুনরুক্তিযুক্ত পতাকাটি দিয়ে এমএম চালানো দরকার: sudo rm -R /var/lib/apt/lists/*তবে এটি করা আমার পক্ষে কার্যকর হয়নি।
মিচিড

2
আমাদের উপসর্গ -rf প্রয়োজন , সুতরাং এটির মতো দেখাবেsudo rm -rf /var/lib/apt/lists/*
আসকার

127

এটি একটি জ্ঞাত সমস্যা এবং প্রক্সি ক্যাশের পিছনে থাকা ক্লায়েন্টদের জন্য এটি আরও বাড়িয়ে তুলেছে। কিছু বড় সংস্থা এবং আইএসপিগুলিতে (বিশেষত বিশ্বের প্রত্যন্ত অঞ্চলে) স্বচ্ছ ক্যাশে থাকে যার বিষয়ে আপনি সচেতন নাও হতে পারেন।

মৌলিক সমস্যাটি হ'ল ফলক সংগ্রহস্থল বিন্যাসটি যখন আয়না আপডেট করা হয় তখন রেসের শর্ত সাপেক্ষে। এই সমস্যাটি বিশেষত রিপোজিটরিগুলিকে প্রভাবিত করে যা দ্রুত পরিবর্তন হয়, যেমন উন্নয়ন রিলিজ।

আপনি এই বাগটিতে ঠিক করার জন্য অগ্রগতি ট্র্যাক করতে পারেন (দয়া করে নিজেকে বাগের মধ্যে "আমাকেও প্রভাবিত করে" হিসাবে চিহ্নিত করুন) এবং এই ব্লুপ্রিন্ট । তবে সচেতন থাকুন যে এটি একটি জটিল সমস্যা এবং সমাধানের জন্য একাধিক প্রকাশ নিতে পারে।



16
এই বাগটি
ওবুন্টুতেও

1
বাগটিকে "ফিক্স রিলিজ করা" হিসাবে চিহ্নিত করা হয়েছে।

আমি কেবল আমার আয়নার ডিফল্টটিকে সেরা সার্ভারে এবং আমার জন্য এটির কাজটি পরিবর্তন করি।
হবিবুন

99

এটির সমাধানের সবচেয়ে সহজ উপায় হ'ল:

sudo apt-get clean
sudo apt-get update

12
গৃহীত উত্তরের চেষ্টা করার পরেও আমার একই ত্রুটি ছিল, তত্ক্ষণাত চেষ্টা করে বিষয়টি ঠিক করা হয়েছে
অ্যালেক্স

17
এরকম sudo rm -rf /var/lib/apt/lists/*তারপর sudo apto-get cleanআমার জন্য সমস্যা সংশোধন। দুজনেই বিচ্ছিন্নতায় কাজ করেননি।
ক্যাম

3
উবুন্টুতে 16.04-তে সহায়তা করে না ... উপরের মন্তব্যটিও কোনও
উপকার করে

3
sudo apt-get clean16.04 দিয়ে সাহায্য করেনি, তবে sudo rm -rf /var/lib/apt/lists/*এটি স্থির করে দিয়েছেন
sdaffa23fdsf

2
আমার জন্য, গৃহীত উত্তর কার্যকর হয়নি, তবে এটি একটি (উবুন্টু ১.0.০৪) কাজ করেছে।
জে ক্যাসো

52

আমার জন্য একমাত্র সমাধানটি হ'ল ইউনিক্স.স্ট্যাকেক্সচেঞ্জ থেকে ।

এটি ঘটেছিল কারণ এটি পরিচিত একটি ত্রুটিযুক্ত ত্রুটিযুক্ত রয়েছে, এবং সমাধানটি হ'ল ভিন্ন সংক্ষেপণ পদ্ধতির সাহায্যে আপডেট করা যায়, সুতরাং ফাইলগুলি সঠিকভাবে লোড হয় এবং চেকসাম সফল হয়।

একবার চেষ্টা করে দেখুন:

sudo rm -rf /var/lib/apt/lists/partial
sudo apt-get update -o Acquire::CompressionTypes::Order::=gz

(আরএম অংশের জন্য মন্তব্যগুলি থেকে @ ব্রুক_হং ধন্যবাদ)


9
এটিই এখানে একমাত্র সমাধান যা আমার পক্ষে কাজ করেছিল। ধন্যবাদ।
সেরিন

3
এটা খুবই আমার জন্য কাজ করেন। মনে রাখবেন যে আপনাকে এই আদেশটি সর্বদা চালাতে হবে না। এটি একবার চালান এবং তারপরে আপনি ত্রুটি ছাড়াই "অ্যাপট-গেট আপডেট" চালাতে পারেন।
ডাল্ফ

2
আমি বিভিন্ন ফোরাম থেকে জেনেরিক সমাধানটি ব্যবহার করার চেষ্টা করেছি তবে এটি বাক্সের বাইরে চলে যায়। ধন্যবাদ.
wkhwilo

2
উবুন্টু 16.04 / লিনাক্স
পুদিনায়

3
এটি আমার জন্য একমাত্র সমাধান কাজ করেছে, আমি উবুন্টু 16.04 ব্যবহার করছি
সানি শুক্লা

44

ডিরেক্টরিগুলি সরিয়ে এবং করার পরেও আমার সমস্যা ছিল sudo apt-get update
কেবলমাত্র নিম্নলিখিত পদক্ষেপটি আমার সমস্যার সমাধান করেছে:

sudo sed -i -re 's/\w+\.archive\.ubuntu\.com/archive.ubuntu.com/g' /etc/apt/sources.list

আমি জানি না এটি ঠিক করার সঠিক উপায় কিনা ...
আমি সমাধানটি এখানে পেয়েছি ।


13
একটিকে লক্ষ্য করা উচিত যে- deপার্টটি জার্মানির জন্য একটি সার্ভারকে ইঙ্গিত করে এবং এই স্ক্রিপ্টটি মূল সার্ভারের সাথে স্থানীয় সার্ভারে প্রতিস্থাপন করে। যাওয়া সফটওয়্যার সোর্স গুই-ওয়ে এবং সুইচিং সেটিং সেখানে নিরাপদ এবং ব্যবহারকারীদের অনেক জন্য উলটাকর হবে। নিম্নলিখিত প্রায় প্রতিটি দেশের জন্য কাজ করা উচিত:sudo sed -i 's/[a-z][a-z].archive.ubuntu.com/archive.ubuntu.com/g' /etc/apt/sources.list
LiveWireBT

23

এটি ঘটতে পারে যখন আপনার আয়না আপ টু ডেট না থাকে বা অতিরিক্ত লোড হওয়া থেকে ত্রুটিগুলি সরবরাহ করে। আপনি হয় কিছুক্ষণ অপেক্ষা করুন এবং আবার চেষ্টা করতে পারেন, বা অন্য একটি আয়নাতে স্যুইচ করতে পারেন:


2
কোনও সার্ভার কেন আপ টু ডেট না হয়ে, বা অতিরিক্ত লোড হচ্ছে, সঠিক নাম সহ একটি ফাইলকে সফলভাবে ডাউনলোড করার কারণ হিসাবে (এই অর্থে যে সমস্ত বাইট প্রেরণ এবং প্রাপ্ত না হওয়া পর্যন্ত সংযোগটি শেষ হয় না), তবে দুর্নীতিগ্রস্থ হবে? (আমি বলছি না যে এটি হবে না, আমি কেবল আশা করছি আপনি এটি কেন করছেন তা ব্যাখ্যা করতে সক্ষম হবেন))
এলিয়াহ কাগন

3
@ এলিয়াকাগান সমস্যাটি সাধারণতঃ ফাইলটি নিজেই দুর্নীতিগ্রস্থ না হয়ে থাকে না, তবে একটি (আমি সরলীকরণ করছি তবে খুব বেশি নয়) ডেটা ফাইল এবং ডেটা ফাইলের হ্যাশ (আঙুলের ছাপ) সম্বলিত একটি সূচক ফাইল রয়েছে। যখন সার্ভারে সংগ্রহস্থলগুলি আপডেট হয় (প্রতি ঘন্টা হয়) তখন অন্য একটি ফাইলের আপডেট হওয়ার পরে একটি ফাইল। এখন এটি ঘটতে পারে যে ডেটা ফাইল আপডেট হওয়ার পরে আপনার ক্লায়েন্ট (অ্যাপট-গেট বা অনুরূপ) সার্ভারটিতে অ্যাক্সেস করে তবে সূচি ফাইলটি আপডেট করা হয়নি (বা বিপরীতে), এখনও। তারপরে হ্যাশ ডেটা ফাইলের সাথে মেলে না এবং ক্লায়েন্ট (মিথ্যা) ধরে নেয় যে ফাইল ফাইলটি দূষিত হয়েছে is
প্যাট্রিক হিকার

1
আয়না পরিবর্তন করা আমার পক্ষে কাজ করেছিল যখন উপরের উত্তরগুলির কোনও উত্তর না দেয়।
আমের

10

যদি আপনি কোনও প্রক্সিটির পিছনে থাকেন তবে এর 99fixbadproxyমধ্যে একটি ফাইল তৈরি করুন /etc/apt/apt.conf.d/:

sudo gedit /etc/apt/apt.conf.d/99fixbadproxy

99fixbadproxyএটিতে আটকান এবং এটি সংরক্ষণ করুন:

Acquire::http::Pipeline-Depth 0;
Acquire::http::No-Cache true;
Acquire::BrokenProxy    true;

এখন আপডেট কমান্ড চালান:

sudo apt-get update

1
বাহ, আমি প্রতিটি উত্তর চেষ্টা করে যাচ্ছিলাম, এটি কতটা পৃথক ইস্যু একই উপসর্গের ফলে দেখা যাচ্ছে বলে আশ্চর্যজনক।
ডুয়াল

1
আমি এই উত্তরটির জন্য অনেক
tedণী

5

নিম্নলিখিত কমান্ডগুলি আপনার সমস্যা সমাধান করতে পারে।

sudo rm -R /var/lib/apt/lists/partial/*

এবং তারপর

sudo apt-get update && sudo apt-get upgrade

এটি আপনার সমস্যার সমাধান করবে। আমিও একই সমস্যার মুখোমুখি হয়েছি তবে উপরের কমান্ডগুলি আমার জন্য সমস্যাটি সমাধান করেছে। সুতরাং তাদের চেষ্টা করুন।

সমাধান রেফারেন্স


4
আমি কেবল চেষ্টা করেছি, এবং এটি কার্যকর হয়নি; apt-get updateসেই ডিরেক্টরিতে আবার একই জায়গায় প্রথম তৈরি করা ফাইল।
ভোলকার সিগেল

3

আমার ঠিক একই সমস্যা ছিল এবং টার্মিনালটি ব্যবহার করে প্রদত্ত সমস্ত সমাধানগুলি সাহায্য করে না।

আমার জন্য, এটি প্রবেশ করে ছিল:

সেটিংস → সফটওয়্যার & আপডেটগুলি → উবুন্টু সফটওয়্যার থেকে ডাউনলোড করুন: Change Localথেকে Main Server

এটি পুনরায় লোড করা এবং আপডেট করা শুরু করে। আমি যখন প্রবেশ করি:

sudo apt-get update

এরপরেও মোটেই কোনও সমস্যা হয়নি। আমি উবুন্টু 14.04.4 এলটিএস ব্যবহার করছি।


1

আমি জানি না যে এটির সঠিক সমাধান আছে কি না তবে আমি নিম্নলিখিতটি করেছি এবং ত্রুটি বার্তাটি গেছে:

sudo apt-get updateটার্মিনালে টাইপ করার পরে এটি আমাকে কিছু প্যাকেজগুলির নাম দেয় যা ত্রুটির কারণ হয়ে থাকে আমি নিম্নলিখিতটি করলাম:

আপডেট ম্যানেজার (সফ্টওয়্যার আপডেট) ting সেটিং Software সফ্টওয়্যার সোর্স কনফিগার করুন software অন্যান্য সফ্টওয়্যার [ট্যাব] the প্যাকেজগুলি আনচেক করুন

"বন্ধ" নীচে টিপে দেওয়ার পরে আপডেট ম্যানেজার আবার স্বয়ংক্রিয়ভাবে আপডেটের জন্য পরীক্ষা করা শুরু করে এবং আমি এই বার্তাটি দেখেছি: "এই কম্পিউটারের সফ্টওয়্যারটি আপ টু ডেট Last

কুবুন্টু 12.04


এটি আমার পক্ষে কাজ করেছে এবং এখানে পোস্ট করা অন্য কোনও সমাধান কাজ করে না। আমার উবুন্টু ইউআই না থাকলে (কেবলমাত্র ডাব্লুএসএল এর অধীনে কমান্ড-লাইন চলছে), সুতরাং পরিবর্তে, প্রতিটি প্যাকেজ <pkg>যেখানে ত্রুটি ঘটেছে, সেখানে আমি ছুটে এসেছি `sudo apt-get ইনস্টল <pkg> '। আমি উবুন্টু 16.04 এ আছি।
ইয়েজ

1

আমার ঠিক একই সমস্যা ছিল এবং টার্মিনালটি ব্যবহার করে প্রদত্ত সমস্ত সমাধানগুলি সাহায্য করে না।

আমার জন্য, এটি প্রবেশ করে ছিল:

সেটিংস → সফ্টওয়্যার ও আপডেট → অন্যান্য সফ্টওয়্যার: সমস্ত বাক্সটি আনচেক করুন এবং বন্ধ টিপুন।

এটি পুনরায় লোড করা এবং আপডেট করা শুরু করে। আমি যখন প্রবেশ করি:

sudo apt-get update

এরপরেও মোটেই কোনও সমস্যা হয়নি। আমি উবুন্টু 13.10 ব্যবহার করছি।


এটি এখনও কাজ করে না এটি মূল বিল্ডের অংশ না হয়ে প্যাকেজগুলি ইনস্টল করতে সক্ষম হয়ে মেশিনকে কার্যকরভাবে অন্ধ করে দেয় (যতক্ষণ না সেই চেকবক্সগুলি পরে পুনরায় সক্রিয় করা হয়) ... তবুও প্রয়োজনীয় সময়ে একটি ত্রুটি মুক্ত অ্যাপ্লিকেশন আপডেট অর্জন করতে সক্ষম করে যা সক্ষম করে লক্ষ্যযুক্ত প্যাকেজগুলি ইনস্টল করুন
স্কট স্টেনসল্যান্ড 15

1

আমার অনুরূপ সমস্যা হয়েছিল এবং এটি "সফ্টওয়্যার ও আপডেটস" অ্যাপ্লিকেশনটি এবং "উবুন্টু সফ্টওয়্যার" ট্যাবে খোলার মাধ্যমে, "ডাউনলোড থেকে" ডাউনলোড করার মান পরিবর্তন করে (সেই ড্রপ-ডাউন তালিকার মধ্যে, নির্বাচন করার চেষ্টা করুন, উদাহরণস্বরূপ, প্রধান সার্ভারটি এটির মতো না হলে)।


হ্যাঁ, কেবলমাত্র আমার জন্য এটি কাজ করেছিল। সুইজারল্যান্ডের সার্ভারটি নষ্ট হয়ে গেছে বলে মনে হচ্ছে।
এরিক মোড়ন্ড

1

@ Robie-বাসাক অনুসরণ করুন, আমি apt-cacher-ngমিরর ক্যাচিং হিসাবে ব্যবহার করেছি । তাই আমি প্রক্সি এবং সমস্যার সমাধান করেছি Remove

আমি ফাইলটিতে প্রক্সিটি সরিয়েছি /etc/apt/apt.conf.d/01proxy:

#Acquire::http::Proxy "http://xxx.xx.xx.xx:4321";

তারপরে দরকার:

sudo rm -rf /var/lib/apt/lists/*
sudo aptitude update
sudo aptitude upgrade

1

আমি সম্প্রতি উবুন্টু 17.10 ইনস্টল করেছি এবং কিছু সংগ্রহস্থলের জন্য হ্যাশ সুম মিসম্যাচের একই ত্রুটিটি পেয়েছিলাম below আমি নীচের মত সফ্টওয়্যার এবং পরীক্ষিত উত্সে গিয়েছিলাম এবং টার্মিনাল থেকে সংগ্রহগুলি ডাউনলোড করার জন্য আর কোনও সমস্যা ছিল না।

আমার সফ্টওয়্যার এবং আপডেট বিভাগ


0

এটি ঘটতে পারে যদি আপনি পিতামাতার নিয়ন্ত্রণগুলি নিয়ে রাউটার চালাচ্ছেন এবং আপনার রাস্পবেরি পাইকে "পরিচালনা না করা" তালিকায় রাখেন নি। আমার জন্য, আমি দেখতে পেলাম ইউআরএলটি একটি বৃত্ত ডোমেনে পুনঃনির্দেশ করছিল, রাউটার দ্বারা পরিচালিত।

সুতরাং আমি মাত্র আমার পাইটিকে পরিচালনাবিহীন তালিকায় যুক্ত করেছি এবং এটি দুর্দান্ত কাজ করেছে।


0

আমি এই কমান্ডটি চালিয়ে সমস্ত প্যাকেজ ইনস্টল না করে সমাধান করেছি:

sudo apt-get install PACKAGENAME

প্রতিটি প্যাকেজ জন্য। সেগুলি এখন ইনস্টল করা হয়েছে এবং "হ্যাশ সুমের অমিল" ত্রুটি চলে গেছে।


0

আমার পক্ষে কিছুই কাজ করেনি। চেষ্টা করার এবং প্রস্তাবিত সমাধানের পরে, অবশেষে, আমি ভাঙ্গা প্যাকেজগুলি ম্যানুয়ালি ডাউনলোড করেছি, সেগুলিকে / var / cache / apt / সংরক্ষণাগুলিতে অনুলিপি করেছি এবং ভাঙা প্যাকেজগুলি / var / cache / apt / সংরক্ষণাগার / আংশিক থেকে সরিয়েছি।


0

আমি আমার উবুন্টু 18.04 এ একই সমস্যার মুখোমুখি হয়েছি, নীচে আমার বাস্তব অভিজ্ঞতা:

  1. প্রক্সিটি সরিয়ে ফেলুন /etc/apt/apt.conf
  2. অফিসিয়াল অ্যাপটি সোর্স.লিস্টে পরিবর্তন করুন /etc/apt/sources.list
  3. চালান sudo rm -rf /var/lib/apt/lists/*
  4. পরিষ্কার প্যাকেজ sudo apt autoremove -y && sudo apt autoclean -y
  5. আপডেট এবং আপগ্রেড। sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y

সম্পন্ন!


0

এটি আমার জন্য উবুন্টু ১.0.০৪-তে হয়েছিল এবং শীর্ষ ভোটের সমাধানগুলির মধ্যে কোনওটিই কার্যকর হয়নি। সমাধানটি প্যাকেজগুলি আপগ্রেড করছিল:

sudo apt-get update    # this will fail
sudo apt-get upgrade
sudo apt-get update    # this will succeed

পুরানো তালিকাগুলি পরিষ্কার করা ( sudo rm -rf /var/lib/apt/lists/*এবং / অথবা sudo apt-get clean) সাহায্য করেছে কিনা তা নিশ্চিত নয়! প্রয়োজনে সেগুলি ব্যবহার করুন।


0

20190112 # ত্রুটিগুলি # অ্যাপ # ফিক্স # আপডেটগুলি আনতে ব্যর্থ হয়েছে ... হ্যাশ সামের মিল নেই

  1. অ্যাপটি-গেট চালান এবং কী কী শব্দগুলিতে অনুসন্ধান করতে হবে তা সন্ধান করুন /etc/apt:
    • do sudo apt-get -y আপডেট
    • ...
    • ত্রুটি: 77 http://au.archive.ubuntu.com/ubuntu জেনিয়াল-আপডেটস / মাল্টিয়ার্স ডিইপি -11 64x64 আইকন
    • হ্যাশ সুম মিলছে না
    • ...
    • এই ক্ষেত্রে, কীওয়ার্ডটি "ডিইপি -11"
  2. /etc/aptকীওয়ার্ড (গুলি) এর জন্য গাছটি অনুসন্ধান করুন :
    • $ sudo / etc / apt -type f -exec egrep -in "DEP-11" "{}" / dev / null ";"
    • /apt.conf.d/50appstreamimar:## এই ফাইলটি ডিইপি -11 ডাউনলোড করতে অ্যাপস্ট্রিম্লি (1) সরবরাহ করেছে
    • /apt.conf.d/50appstream:6: দেব :: ডিইপি -11 {
    • /apt.conf.d/50appstream:9: বর্ণনা "$ (প্রকাশ) / $ (সংযোজন) $ (NATIVE_ARCHITECTURE) ডিইপি -11 মেটাডেটা";
    • /apt.conf.d/50appstream15: # ডিইপি -11-এ বর্ণিত জিইউআই উপাদানগুলির জন্য সাধারণ আকারের আইকনগুলি
    • /apt.conf.d/50appstream 17: দেব :: ডিইপি -11-আইকন {
    • /apt.conf.d/50appstream:20: বর্ণনা "$ (প্রকাশ) / $ (সংযোজন) ডিইপি -11 64x64 আইকন";
    • /apt.conf.d/50appstream:27: # DEP-11 YAML মেটাডেটা ata
    • /apt.conf.d/50appstream 28: deb :: DEP-11-icons-hidpi {
    • /apt.conf.d/50appstream31: বিবরণ "$ (প্রকাশ) / $ (সংযোজন) ডিইপি -11 128x128 আইকন";
  3. আপত্তিজনক তালিকাটি সন্ধানের পরে, যদি এটি কাজ না করে তবে এটিকে অন্য কোথাও সরান:

    sudo mv -f /apt.conf.d/50appstream /tmp  
    
  4. পরিষ্কার করুন /var/lib/apt:

    sudo apt-get -y clean  
    sudo rm -rf /var/lib/apt/lists/*  
    sudo find /var/lib/apt -type d -name "partial" -exec rm -rf "{}" ";"  
    
  5. এখনই আপডেট করার চেষ্টা করুন, এটি এখনই কাজ করা উচিত:

    sudo apt-get -y update  
    
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.