ল্যান এপট ডাউনলোডগুলি ক্যাশে করার সেরা উপায়?


152

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

আমার কাছে কেবল একটি মেশিনকেই প্যাকেজগুলি ডাউনলোড করার দরকার আছে এমন একটি উপায় আছে এবং অন্যান্য মেশিনগুলি ডেবগুলি পাওয়ার জন্য প্রথম মেশিনটি ব্যবহার করতে পারে? এটিতে কি আমার নিজস্ব স্থানীয় আয়না স্থাপন করা জড়িত? বা একটি প্রক্সি সার্ভার? নাকি এটাকে সহজ করা যায়?

উত্তর:


129

আমি একগুচ্ছ সমাধানের জন্য কিছু গবেষণা করেছি এবং কিছু উবুন্টু বিকাশকারীগণ 10.04 এবং তার পরে একটি প্রক্সি কনফিগারেশন (স্কুইড ভিত্তিক) নিয়ে এসেছিলেন। এটি বলা হয় squid-deb-proxy। সার্ভার হিসাবে কাজ করার জন্য এটির জন্য কেবল একটি মেশিন প্রয়োজন। বড় সংস্থাগুলি সাধারণত তাদের নিজস্ব আয়নাগুলি চালায় তবে বেশিরভাগ মানুষের জন্য চাহিদা মিররিং যথেষ্ট।

স্কুইড-ডেব-প্রক্সি কেন?

  • ক্লায়েন্টের পক্ষে ফাইলগুলির কোনও সম্পাদনা নেই।
  • জেরোকনফ ব্যবহার করুন যাতে ক্লায়েন্টগুলি "শূন্য কনফিগারেশন" ছিল
  • নতুন সরঞ্জাম লেখার পরিবর্তে একটি বিদ্যমান, শক্ত প্রক্সি সমাধান ব্যবহার করুন।
  • একটি সাধারণ লিনাক্স প্রশাসকের জন্য সেট আপ করা সহজ।

সার্ভার কনফিগারেশন

আপনি যে মেশিনে সার্ভার হিসাবে কাজ করতে চান তা দিয়ে এই সরঞ্জামটি ইনস্টল করুন:

sudo apt-get install squid-deb-proxy avahi-utils

এখন পরিষেবা বিট শুরু করুন:

 sudo start squid-deb-proxy

এবং অবাহি বিটস (আপনার যদি 12.04+ তে থাকে তবে আপনার এটির দরকার নেই):

 sudo start squid-deb-proxy-avahi

এটি প্রক্সি সার্ভার ইনস্টল করবে (যা ডিফল্টরূপে 8000 পোর্ট শোনায়) এবং সার্ভারের জন্য জেরোকনফের মাধ্যমে আপনার নেটওয়ার্কে নিজেকে বিজ্ঞাপন দেওয়ার জন্য প্রয়োজনীয় অ্যাভিহি সরঞ্জামগুলি ইনস্টল করবে।

ক্লায়েন্ট কনফিগারেশন

উপর কম্পিউটারের প্রতিটি যে আপনি (তাই এটা খুব ক্যাশে ব্যবহার করতে পারেন ক্লায়েন্ট, এবং সার্ভার নিজেই) ক্যাশে ব্যবহার করতে চান, আপনি এখানে ক্লিক করে দিন স্বয়ংক্রিয়ভাবে সার্ভারের জন্য এর কার্যক্ষম বর্ণন ক্লায়েন্ট সাইড টুল ইনস্টল করতে হবে, তাদের আছে :

সফ্টওয়্যার কেন্দ্রের মাধ্যমে ইনস্টল করুন

বা কমান্ড লাইনের মাধ্যমে:

sudo apt-get install squid-deb-proxy-client

Alচ্ছিক : সর্বাধিক দক্ষতার জন্য আপনার স্বয়ংক্রিয়ভাবে আপডেটগুলি ডাউনলোড করার জন্য একটি মেশিন সেট করা উচিত, যাতে আপনার অন্যান্য মেশিনগুলির এটির প্রয়োজন হলে এটি ইতিমধ্যে ক্যাশে রয়েছে। আপনি সিস্টেম-> প্রশাসন-> আপডেট ম্যানেজারে গিয়ে এটি করতে পারেন, তারপরে আপডেট ট্যাবটিতে "সেটিংস ..." বোতামটিতে ক্লিক করুন এটি সমস্ত আপডেট স্বয়ংক্রিয়ভাবে ডাউনলোড করতে সেট করে।

বিকল্প পাঠ

তৃতীয় পক্ষের উত্স ক্যাচিং

ডিফল্টরূপে ক্যাশে কেবলমাত্র অফিসিয়াল উবুন্টু সংগ্রহস্থলগুলিতে সেট আপ করা হয়। আরও যুক্ত করতে আপনাকে সেগুলিকে উত্সের তালিকায় যুক্ত করতে হবে /etc/squid-deb-proxy/mirror-dstdomain.acl। এটিই আপনি ppa.launchpad.net, বা আপনি যে পরিষেবাগুলি ব্যবহার করতে পারেন সেগুলি যোগ করতে পারেন। এই ফাইলে পরিবর্তন করার পরে, sudo restart squid-deb-proxyপরিবর্তনগুলি কার্যকর হওয়ার জন্য আপনাকে অবশ্যই চলতে হবে।

ম্যানুয়াল কনফিগারেশন

যদি কোনও কারণে আপনি জেরোকনফ ব্যবহার করতে না চান (নেটওয়ার্কের কারণে বা যাই হোক না কেন), আপনি /etc/apt/apt.confনিম্নোক্ত স্তবটি সম্পাদনা করে যুক্ত করে নিজেই একটি ক্লায়েন্টকে প্রক্সি ব্যবহার করতে পারেন , (সার্ভারের আইপি ঠিকানার সাথে 0.0.0.0 প্রতিস্থাপন করুন) ):

 Acquire { 
   Retries "0"; 
   HTTP { Proxy "http://0.0.0.0:8000"; };
 };

ফায়ারওয়াল

আপনি যদি ফায়ারওয়াল ব্যবহার করছেন তবে আভাহী 224.0.0.0/4 ঠিকানার উপরে 5353 ব্যবহার করে এবং এর মতো দেখতে একটি বিধি প্রয়োজন:

# Specifically port 5353 which avahi uses
-A INPUT -i eth2 -d 224.0.0.0/4 --dport 5353 -j ACCEPT

# OR

# Wide open so all local broadcasting works
-A INPUT -i eth2 -d 224.0.0.0/4 -j ACCEPT

এরপরে প্রক্সিটির মাধ্যমে প্রকৃত যোগাযোগের জন্য আপনাকে টিসিপি পোর্ট 8000 খোলার দরকার। এর থেকে কম বা কম কিছু:

-A INPUT -i eth2 -p tcp -m tcp --dport 8000 -d 192.168.0.1 -s 192.168.0.0/24 --syn -j ACCEPT

এই নিয়মগুলি কেবল আপনাকে সহায়তা করার জন্য। তারা সম্ভবত আপনার সেটআপের সাথে একের সাথে মিলবে না। (যেমন ভুল ইন্টারফেস, ভুল প্রাইভেট নেটওয়ার্ক আইপি ঠিকানা ইত্যাদি)

এটি নিশ্চিত হয়ে কাজ করে

সার্ভারে লগটি প্রথমে লেজ করুন যাতে আপনি এটি দেখতে পারেন: tail -F /var/log/squid-deb-proxy/access.logএবং তারপরে ক্লায়েন্ট ইনস্টল থাকা যে কোনও মেশিনে একটি আপডেট চালান; লগটি এই জাতীয় প্রবেশের সাথে স্ক্রোল করা শুরু করা উচিত:

1307310795.647     32 192.168.1.106 TCP_MISS/302 768 GET http://us.archive.ubuntu.com/ubuntu/dists/natty-proposed/universe/i18n/Translation-en.xz - DIRECT/141.210.26.10 text/html
1307310795.683     34 192.168.1.106 TCP_MISS/302 752 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/main/i18n/Translation-en_US.lzma - DIRECT/141.210.26.10 text/html
1307310795.716     32 192.168.1.106 TCP_MISS/302 746 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/main/i18n/Translation-en.lzma - DIRECT/141.210.26.10 text/html
1307310795.750     32 192.168.1.106 TCP_MISS/302 764 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/multiverse/i18n/Translation-en_US.lzma - DIRECT/141.210.26.10 text/html
1307310795.784     32 192.168.1.106 TCP_MISS/302 758 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/multiverse/i18n/Translation-en.lzma - DIRECT/141.210.26.10 text/html
1307310795.817     32 192.168.1.106 TCP_MISS/404 657 GET http://us.archive.ubuntu.com/dists/natty-proposed/multiverse/i18n/Translation-en_US.xz - DIRECT/141.210.26.10 text/html

যার অর্থ ক্লায়েন্টরা ক্যাশেটি দেখে তবে এটি অনুপস্থিত, যা এখনও কিছু ক্যাশে না করায় এটি প্রত্যাশিত। পরবর্তী প্রতিটি রান টিসিপি_হাইট হিসাবে দেখা উচিত। আপনি স্কুইড ক্যাশে ফাইলগুলি এগুলিতে সন্ধান করতে পারেন /var/cache/squid-deb-proxy

এটি ব্যবহার করছি

তারপরে আপনার নেটওয়ার্কের সমস্ত মেশিন প্যাকেজ আনতে বাইরের নেটওয়ার্কে আঘাত করার আগে ক্যাশেটি পরীক্ষা করবে। যদি নতুন প্যাকেজ উপলব্ধ থাকে তবে প্রথম মেশিনটি নেট থেকে এটি ডাউনলোড করবে, তারপরে সেই প্যাকেজের জন্য অনুরোধগুলি সার্ভার থেকে ক্লায়েন্টদের কাছে আসবে।

করতে

বাক্সের বাইরে এবং ডিফল্ট হিসাবে নেটওয়ার্কে কেবলমাত্র একটি বিজ্ঞাপনযুক্ত ক্যাশে ব্যবহার করতে আমাদের এপিকে সক্ষম করতে হবে যাতে আপনার ক্লায়েন্ট টুকরা ইনস্টল করার প্রয়োজন হয় না। আমরা ঠিক করতে প্রয়োজন বাগ যে 403 ডেব আয়না তালিকায় নয়।


2014/01/21 14: 56: 31 | ত্রুটি: / ভেরি / ক্যাশে / স্কুইড-ডেব-প্রক্সি / 03: (2) এ জাতীয় কোনও ফাইল বা ডিরেক্টরি ফ্যাটাল: স্বাপ ডিরেক্টরিগুলির মধ্যে একটি যাচাই করতে ব্যর্থ হয়েছে, বিশদ জন্য ক্যাশে.লগ চেক করুন। প্রয়োজনে অদলবদল ডিরেক্টরি তৈরি করতে 'স্কুইড-জেড' চালনা করুন বা যদি প্রথমবার স্কুইড চালাচ্ছেন। স্কুইড ক্যাশে (সংস্করণ 3.3.8): অস্বাভাবিকভাবে শেষ করা হয়েছে।
থম্পার

1
আপনাকে স্কুইডও ইনস্টল করতে হবে।
বড় বস্তু

দেখে মনে হচ্ছে ম্যানুয়াল কনফিগারেশন আর বৈধ নয়। এর apt.confঅধীনে কোনও ফাইল নেই /etc/apt। তবে সেটিংস সহ ফাইলগুলির আধিক্য রয়েছে /etc/apt/apt.conf.d। আমি ভাবব যে এখন আমাদের পরিবর্তে সেখানে একটি ফাইল তৈরি করা উচিত?
অ্যালেক্সিস উইল্ক

এছাড়াও, দেখে মনে হচ্ছে টোডো সমাধান হয়েছে। এটি হ'ল, আমাকে কিছু করতে হয়নি এবং ক্যাশেটি প্রথমে ব্যবহার করা হয়েছিল। তবুও এটি ঠিক হিসাবে চিহ্নিত হিসাবে চিহ্নিত করা হয়নি বলে মনে হচ্ছে।
অ্যালেক্সিস উইলকে

অবশ্যই, এখন যদি এটি হয় তবে এটি এই উত্তরটির জন্য একটি সম্পাদনা জমা দিন, চিয়ার্স!
হোর্হে কাস্ত্রো

37

apt-cacher-ngআমার জন্য উত্তর - আমি ছোট পরিবেশে (প্রায় 20 ক্লায়েন্ট) কোনও সমস্যার মুখোমুখি হই নি, সুতরাং আমি মনে করি @ ম্যাজিকফ্যাবের উল্লেখ করা সমস্যাগুলি বর্তমান সংস্করণে সমাধান করা হয়েছে (উবুন্টু 10.04 এবং 10.10 এ ইনস্টল করা)। সার্ভারের জন্য কোনও কনফিগার প্রয়োজন নেই এবং আপনার ক্লায়েন্টদের কেবল তাদের প্যাকেজ ম্যানেজার প্রক্সি হিসাবে সার্ভারটি ব্যবহার করার নির্দেশ দেওয়া দরকার।

প্যাকেজ ইনস্টল করে সার্ভারটি সম্পূর্ণরূপে ইনস্টল ও কনফিগার করা আছে apt-cacher-ng

ক্লায়েন্টদের এপিটি প্রক্সি স্থাপনের মাধ্যমে কনফিগার করা দরকার - এই ফাইলটি যুক্ত করে /etc/apt/apt.conf.d/01proxy(যেখানে "আপনার-অ্যাপট সার্ভার" আপনার সার্ভারের নাম বা আইপি ঠিকানা):

Acquire::http { Proxy "http://your-apt-server:3142"; };

সম্পন্ন - এখন প্যাকেজগুলি সার্ভার দ্বারা ক্যাশে হবে, আপনি কোন উত্স ব্যবহার করেন না বা আপনার কোন সিস্টেম সংস্করণ রয়েছে (যেমন একটি 10.04 সার্ভার 9.10,10.04 এবং 11.04 ক্লায়েন্ট কোনও সমস্যা বা বিবাদ ছাড়াই ব্যবহার করতে পারবেন)।


আপনার যদি ক্লায়েন্ট ল্যাপটপ (গুলি) থাকে যা নেটওয়ার্কগুলির মধ্যে ঘোরাফেরা করে তবে এটি কিছুটা জটিল হয়ে যায় - আমি একটি স্ক্রিপ্ট তৈরি করেছি যা নেটওয়ার্ক ঠিকানার উপর নির্ভর করে সঠিক প্রক্সি সেট করে; স্ক্রিপ্ট এক্সিকিউটেবল এবং ইন /etc/network/if-up.d/apt-proxy। কোনও ডিএইচসিপি সার্ভারের থেকে আইপিভি 4 ঠিকানা পাওয়ার পরে, স্ক্রিপ্টটি সংশ্লিষ্ট নেটওয়ার্কের জন্য সঠিক এ্যাপ-ক্যাচার সার্ভার সেট করবে:

#!/bin/sh

set -e
# Don't bother when lo is configured.
if [ "$IFACE" = lo ]; then
    exit 0
fi
# Only run from ifup.
if [ "$MODE" != start ]; then
    exit 0
fi
# currently only cares about IPv4
if [ "$ADDRFAM" != inet ] && [ "$ADDRFAM" != NetworkManager ]; then
    exit 0
fi
# only run for DHCP-assigned addresses
if [ "$DHCP4_IP_ADDRESS" = "" ]; then
    exit 0
fi

# we're matching on network *broadcast* address,
#  not the specific IP address we were assigned
case "$DHCP4_BROADCAST_ADDRESS" in
    10.3.141.255)
        PROXY='Acquire::http::Proxy "http://my-home-server:3142";';
        ;;
    192.168.154.255)
        PROXY='Acquire::http::Proxy "http://work-server.foo.bar.example.com:3142";';
        ;;
    # add as needed
    *)
        # unknown, no proxying
        PROXY=""
        ;;
esac

# set the proxy
FNAME="/etc/apt/apt.conf.d/01proxy"
echo -n "$PROXY">$FNAME

exit 0

apt-cacher-ng এছাড়াও IPv6 সমর্থন করে (আমি মনে করি অন্যান্য সমাধানগুলির মধ্যে কিছু হয়নি)।
আজেন্ডালে

11
এক বছর পরে, আমি গিয়েছিলাম squid-deb-proxyএবং squid-deb-proxy-client: জেরোকনফের প্রকৃত অর্থ ক্লায়েন্টদের উপর শূন্য কনফিগারেশন, যা যাযাবর ব্যবহারকারীদের জন্য অত্যন্ত দরকারী - এবং যদি কোনও সার্ভার সাড়া না দেয় তবে ক্লায়েন্ট সরাসরি ডাউনলোডে ডিফল্ট হয়।
পিসকভোর

apt-cacher-ng স্তন্যপান করে, এটি ভারি বগি, প্যাকেজগুলি ডাউনলোড করার জন্য স্থির থাকে। উদাহরণস্বরূপ আমি দেখেছি এটি কেবলমাত্র
30MB

apt-cacher-ng পুরোপুরি কাজ করে। আপনার সিস্টেমে আপনার খুব খারাপ কিছু আছে। যথার্থ স্কুইড-ডেব-প্রক্সি স্কুইড ইনস্টল করতে চায়। এটির উপর জোর দেয়
কেন শার্প

এখন ক্যাশে কাজ করার জন্য এটিই সেরা সমাধান pbuilder। এটি বাক্সের বাইরে কাজ করেছে। এছাড়াও এটি দেখে মনে হচ্ছে zeroconf(২০১ in সালে) এর জন্য সমর্থন রয়েছে তবে আমি আমার (এখনও) এটি আমার শেষের দিকে কাজ করতে পারি নি।
অ্যালেক্সিস উইল্ক


6

আমি অনেকটা debmirrorইউটিলিটি ব্যবহার করে একটি স্থানীয় আয়না স্থাপন করতে পছন্দ করি ।

এখানে একটি উদাহরণ জ্বলন।

debmirror --progress --verbose --nosource --method=ftp --passive \
 --host=ftp.osuosl.org --root=pub/ubuntu \
 --dist=lucid,lucid-updates,lucid-security,lucid-backports \
 --section=main,restricted,universe,multiverse --arch=amd64 \
 /d2/ftp/mirror/ubuntu-lucid

আমি এটি সপ্তাহে প্রায় একবার চালনা করি এবং এক বা একাধিক "প্যাচলেভেল" প্রতিষ্ঠার ভিত্তি হিসাবে এটি ব্যবহার করি। উদাহরণ স্বরূপ...

 cd /d2/ftp/mirror/
 cp -al ubuntu-lucid ubuntu-lucid-20100908

এটি গাছের একটি লিঙ্কযুক্ত অনুলিপি তৈরি করে (প্রায় শূন্য ডিস্ক স্পেস ব্যবহার করে) যা আমি আমার স্থানীয় সার্ভারগুলির প্রত্যেককে অ্যাপস উত্সগুলিতে নির্দেশ করতে পারি list তালিকাতে


5
আপনার উমুবায়রআরটি পরীক্ষা করা উচিত, এটি সংরক্ষণাগারে একটি সুবিধা প্যাকেজ যা আপনার জন্য ইতিমধ্যে সেট আপ আছে। এটি সরকারী আয়না ব্যবহার করে।
জর্জি কাস্ত্রো

2

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

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


1

apt-cacher সেটআপ করা সবচেয়ে সহজ ছিল না এবং এটি কোনও ডিস্ট-আপগ্রেড থেকে বাঁচবে না।

ক্লায়েন্টগুলিতে squid-deb-proxyসার্ভারে ইনস্টল করুন squid-deb-proxy-client। এটি জেরোকনফ আভাহি ব্যবহার করে, তাই কোনও কনফিগারেশন প্রয়োজন।

আপনি যদি কেবল দেবুদের চেয়ে বেশি ক্যাশে খুঁজছেন তবে আমি স্কুইডের সাথে বিরক্ত করব না। অ্যাপাচি ট্র্যাফিক সার্ভার পরবর্তী বড় জিনিস। http://trafficserver.readthedocs.org


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