কেন প্যাকেজ-লক.জসন অখণ্ডতা হ্যাশকে sha1 থেকে sha512 এ পরিবর্তন করেছে?


120

আমি আমার আদর্শ কর্মপ্রবাহের অংশ হিসাবে একটি নতুন এনপিএম লকফিল, প্যাকেজ-লক.জসন তৈরি করেছি। তবে আমি লক্ষ্য করেছি যে এই সময়ের সমস্ত সততা হ্যাশগুলি sha1 থেকে sha512 এ পরিবর্তিত হয়েছে। এখানে কি হচ্ছে?

এখানে চিত্র বর্ণনা লিখুন

"chalk": {
    "version": "2.0.1",
    "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
-   "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=",
+   "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
    […]
}

1
এটি এনপিএম নিয়ে একটি সমস্যা: github.com/npm/npm/issues/17749
ভ্লাদ মিনায়েভ

1
উপরে উল্লিখিত সমস্যাটি বন্ধ করে দেওয়া হয়েছে এবং এখন এই সমস্যাটি কীভাবে সমাধান করা যায় তার নির্দেশ দেওয়ার জন্য একটি নিবন্ধ তৈরি করা হয়েছে: npm.commune
কাইল বারকেট

উত্তর:


105

আমি যা দেখতে পাচ্ছি তা থেকে, এনএমপি সততা চেকসামকে sha1 থেকে sha512 এ পরিবর্তন করেছে।

যদি আপনার গিট পরিবর্তনগুলি sha1 থেকে sha512 এ চলেছে, আপনার একবার আপডেটটি করা উচিত এবং এটি পরে ভাল হবে।

যদি অন্য কেউ কোডবেস নিয়ে কাজ করে এবং sha512 থেকে sha1 এ গিট পরিবর্তন দেখতে পান (যা আমি সমস্যা হচ্ছিলাম) আপনি নিম্নলিখিতটি চালিয়ে এটি ঠিক করতে পারেন:

প্যাকেজ-লক.জসনের জন্য গিটের পরিবর্তনগুলি বাতিল করুন

npm i -g npm
rm -rf node_modules/
npm i

এটি এনপিএম আপডেট করবে এবং আপনার সমস্ত প্যাকেজ পুনরায় ইনস্টল করবে যাতে নতুন চেকসাম (sha512) উপস্থিত থাকে।


1
Sha1 এর ওপরে sha512 ব্যবহার করার কোনও কারণ আছে কি? আমার কম্পিউটার বর্তমানে আমাদের পরিবেশের জন্য sha1 এ পরিবর্তিত।
এলিজাহ 1210

@ এলিজা 1210 আমি সংঘর্ষের সাথে হ্যাশটিকে 'নকল' করার কম সম্ভাবনা অনুমান করতে যাচ্ছি?
পিওরফেরেট

20
এটি আমার ক্ষেত্রে যথেষ্ট ছিল না। node_modulesফোল্ডারটি মোছার পাশাপাশি আমারও দরকার npm cache clear --forceছিল।
লরেঞ্জ মেয়ার

37

ডেভ কী উত্তর দিয়েছিল তা নিয়ে বিল্ডিং। আমি যে ফিক্সটি পেয়েছি তা হ'ল নিম্নলিখিতটি করা:

npm i -g npm

cd {working directory}
rm -rf node_modules/
rm package-lock.json
npm cache clear --force
npm i

আমরা একইসাথে আমাদের সকল বিকাশকারীদের জন্য এটি করেছি এবং এটি শা -512 বনাম শ -1 ইস্যুটি বন্ধ করে দিয়েছিল যা হতাশাজনক মার্জ সংঘাত সৃষ্টি করেছিল।


6

এছাড়াও দেখুন https://github.com/npm/npm/issues/17749 যা দাবি করে যে সমস্যাটি 'স্থির' হয়েছে, তা নয়। অপসারণ node_modulesএকটি কাজ।

অপারেটিং সিস্টেমের সাথে একটি সম্পর্ক থাকতে পারে। লিনাক্স এবং উইন্ডোজ প্ল্যাটফর্মের বিকাশকারীদের সাথে আমরা এখনই এটি হিট করছি।


3
এটি পোস্ট হওয়ার পরে কয়েক মাস হয়ে গেছে, এবং আমি এখনও এটিতে ভুগছি। এটি আমাকে হত্যা করছে
চাদ রুপার্ট

2
আমরা শেষে সুতা সরানো।

1
প্রতিটি এনপিএম সমস্যা আপাতদৃষ্টিতে
ইয়ার্নে

2

@ ড্যানিয়েল কমিংস হিসাবে আমাকেও শ package-lock.json1 হ্যাশগুলি থেকে মুক্তি পাওয়ার জন্য অপসারণ করতে হয়েছিল। এখানে রেফারেন্সের জন্য উইন্ডোজ সি এল এল কমান্ড রয়েছে , যা ড্যানিয়েলের স্ক্রিপ্টের মতো করে:

npm i -g npm
rd /s /q "node_modules"
del package-lock.json
npm cache clear --force
npm i

1

আমি বড় দলে কাজ করছি। প্রতিটি বিকাশকারীকে পরিষ্কার npmক্যাশে জোর করতে বাধ্য করা কঠিন এবং নির্ভরযোগ্য নয়। এছাড়াও, এটি প্রতিবার সাহায্য করে না। সুতরাং, যে কেউ এখনও এই এনপিএম ইস্যুটির মুখোমুখি হন (আমার মতো একই) এবং অন্য কোনও কিছুই সহায়তা করে না - আমি সম্প্রতি নির্মিত এই গিট ভিত্তিক সরঞ্জামটি ব্যবহার করে দেখুন: https://github.com/kopach/lockfix । এটি sha512 -> sha1এনপিএমের লক ফাইলগুলির অখণ্ডতা পরিবর্তনগুলিকে ফিরিয়ে দেয়। আপনি যদি এটির postshrinkwrapস্ক্রিপ্টে এটি যুক্ত করেন package.json- অবশেষে আপনার সমস্ত অখণ্ডতা বৈশিষ্ট্য সেট করা উচিত sha512এবং লক ফাইলের ধারাবাহিকতা থাকা উচিত।

npm install --save-dev lockfix
"scripts": {
    "postshrinkwrap": "lockfix",
},

0

পূর্ববর্তী মন্তব্য এবং পরামর্শগুলির উপর আরও বিল্ডিংয়ের জন্য, আমার জন্য আমার বিদ্যমান নোড_মডিউলগুলি ফোল্ডার, ক্যাশে মুছতে হবে এবং তারপরে গিট (যা অন্য কম্পিউটার থেকে প্রতিশ্রুতিবদ্ধ হয়েছিল) থেকে sha512 প্যাকেজ-লক.জসন ফাইলটি ধরেছিল এবং শেষ পর্যন্ত একটি এনপিএম করব । এটার মতো কিছু:

npm i -g npm
rm -rf node_modules/
npm cache clear --force
git reset --hard
npm i

এই প্যাকেজটির পরে-લોક.জসন sha512 ব্যবহার করেছে এবং অন্যান্য পরিবর্তনগুলি স্থিতিশীল।

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