কীভাবে স্থানীয় এপিটি সংগ্রহস্থল তৈরি করবেন?


103

আমি আমার ল্যানে আমার নিজস্ব স্থানীয় ভাণ্ডার তৈরি করতে চাই, যাতে ল্যানের মেশিনগুলি এটিকে আপডেট এবং আপগ্রেড করতে পারে। আমি প্যাকেজগুলি ডাউনলোড করতে এবং সেগুলি আমার স্থানীয় সার্ভারে সঞ্চয় করতে চাই যাতে ইন্টারনেটটি ব্যবহার না করেই আমি এটি থেকে আপডেট, আপগ্রেড, ইনস্টল ইত্যাদি করতে পারি।


2
সম্ভাব্য সদৃশ: Askubuntu.com/questions/974/…
স্টেফেনমাইল

3
আমি এটি একটি সদৃশ মনে করি না। মেথাক্স যা অর্জন করতে চায় তা হ'ল যথাযথতার সাথে ব্যবহারের জন্য তার নিজস্ব সংগ্রহশালা সার্ভার তৈরি করা। কেরিক্স যা করে তা হ'ল প্যাকেজ ম্যানেজার হিসাবে প্রবণতা প্রতিস্থাপন এবং প্যাকেজগুলির জন্য বাহ্যিক উত্স তৈরি করা।
কন-এফ-ব্যবহার করুন

1
সম্ভাব্য সদৃশ? - জিজ্ঞাসাবাবু / প্রশ্ন
প্রশ্ন /

উত্তর:


80

থেকে উবুন্টু সাহায্য উইকি :

নিজের জন্য একটি সাধারণ সংগ্রহস্থল স্থাপনের জন্য 4 টি পদক্ষেপ রয়েছে

1. dpkg-dev
ইনস্টল করুন 2. ডিরেক্টরিতে প্যাকেজগুলি রাখুন
3. একটি স্ক্রিপ্ট তৈরি করুন যা প্যাকেজগুলি স্ক্যান করবে এবং একটি ফাইল তৈরি করবে অ্যাপটি-গেট আপডেট পড়তে পারে
4.. আপনার উত্সগুলিতে একটি লাইন যুক্ত করুন list তালিকা আপনার সংগ্রহস্থলের দিকে নির্দেশ করছে

Dpkg-dev ইনস্টল করুন

একটি টার্মিনাল টাইপ করুন

sudo apt-get install dpkg-dev

ডিরেক্টরি

একটি ডিরেক্টরি তৈরি করুন যেখানে আপনি আপনার প্যাকেজগুলি রাখবেন। এই উদাহরণস্বরূপ, আমরা ব্যবহার করব/usr/local/mydebs.

sudo mkdir -p /usr/local/mydebs

এখন আপনার প্যাকেজগুলি সবেমাত্র তৈরি করা ডিরেক্টরিতে সরান।

পূর্বে ডাউনলোড করা প্যাকেজগুলি সাধারণত আপনার সিস্টেমে /var/cache/apt/archivesডিরেক্টরিতে সঞ্চিত থাকে । আপনি যদি অ্যাপট-ক্যাচার ইনস্টল করে থাকেন তবে এর / প্যাকেজ ডিরেক্টরিতে আপনার অতিরিক্ত প্যাকেজ সঞ্চিত থাকবে।

স্ক্রিপ্ট আপডেট-মাইদেবস

এটি একটি সহজ তিনটি লাইনার:

#! /bin/bash
 cd /usr/local/mydebs
 dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

উপরের অংশটি কেটে পেস্ট করে জিডিট করুন এবং এটিকে ~ / বিনে আপডেট-মাইডেব হিসাবে সংরক্ষণ করুন। (টিল্ড '~' এর অর্থ আপনার হোম ডিরেক্টরি। যদি ~ / বিনের অস্তিত্ব না থাকে তবে এটি তৈরি করুন: উবুন্টু সেই ডিরেক্টরিটি আপনার রাস্তায় রাখবে personal ব্যক্তিগত স্ক্রিপ্টগুলি রাখার জন্য এটি ভাল জায়গা)। এরপরে, স্ক্রিপ্টটি সম্পাদনযোগ্য করুন:

chmod u+x ~/bin/update-mydebs

How the script works:

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

Sources.list

লাইন যোগ করুন

deb file:/usr/local/mydebs ./

আপনার /etc/apt/sources.list- এ, এবং আপনার কাজ শেষ।

সিডি অপশন

আপনি একটি সিডি-তে ডেবসযুক্ত ডিরেক্টরিটি বার্ন করতে পারেন এবং এটি একটি সংগ্রহস্থল হিসাবেও (কম্পিউটারের মধ্যে ভাগ করার জন্য ভাল) ব্যবহার করতে পারেন। সংগ্রহস্থল হিসাবে সিডি ব্যবহার করতে, কেবল চালান

sudo apt-cdrom add

সংগ্রহস্থল ব্যবহার করে

আপনি যখনই মাইডেবস ডিরেক্টরিতে একটি নতুন ডেব রাখেন, চালান

sudo update-mydebs
sudo apt-get update

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

খারাপভাবে তৈরি প্যাকেজগুলি সম্ভবত ব্যর্থ হবে, তবে আপনি dpkg নরক সহ্য করবেন না।


3
আপনি কি লাইনের বাক্য গঠন ব্যাখ্যা করতে পারেন dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz? কি /dev/nullকরছে সেখানে। আমি ম্যান পৃষ্ঠাটি পড়েছি, তবে এটি খুব পরিষ্কার ছিল না।
sayantankhan

@ ব্লেড ১৯৮৯৯ দয়া করে আমার কিছুটা ব্যাখ্যা দরকার। আমি এটিতে কয়েকটি কয়েকটি নির্বাচিত প্যাকেজ সহ একটি সংগ্রহস্থল চাই, আমি যে প্যাকেজটি স্পর্শ করি তা নয়। আমি কি সঠিক যে এই কৌশলটি আমাকে সেই ক্ষমতা দেবে? এখানে লক্ষ্যটি হ'ল এমন একটি ভান্ডার রয়েছে যা কোনও সফ্টওয়্যার ইনস্টলেশন গ্রুপটি বিচ্ছিন্ন ল্যানে ব্যবহার করতে পারে, প্রলোভন থেকে দূরে বিনা শোধ করার জন্য।
ওয়েজ মিলার

@ ওয়েস মিলার আমার মনে হয় আপনার প্রয়োজন আমি কেবল তার পোস্ট সম্পাদনা করেছি!
ব্লেড 19899

@ blade19899 আমি দুঃখিত, আমি আপনার উত্তর বুঝতে পারি না।
ওয়েস মিলার

@ ওয়েজমিলার আপনার দরকার বিগস্যাকের আমি ব্যাকরণ সংক্রান্ত সমস্যার জন্য তার পোস্টটি সম্পাদনা করেছি (আমি মনে করি এটি কিছুক্ষণের জন্য) এটি আমার উত্তর নয়, বিগস্যাকের
ব্লেড ১৯৮৯

41

* ল্যানের ওপরে একটি অফলাইন সংগ্রহশালা তৈরি করতে *

একটি স্থানীয় অ্যাপাচি ওয়েব সার্ভার ইনস্টল করুন

# apt-get install apache2

ডিফল্টরূপে, ডিবিয়ান এর অ্যাপাচি প্যাকেজটি /var/wwwআপনার সিস্টেমে একটি ওয়েবসাইট সেট আপ করবে । আমাদের উদ্দেশ্যে, এটি ঠিক আছে, সুতরাং এর বেশি কিছু করার কোনও কারণ নেই। আপনি নিজের পছন্দসই ব্রাউজারটিতে এটি ইঙ্গিত করে সহজেই এটি পরীক্ষা করতে পারেন আপনার http://localhostডিফল্ট-পরবর্তী ইনস্টলেশন ওয়েব পৃষ্ঠাটি দেখা উচিত যা /var/www/index.html


একটি ডেবিয়ান প্যাকেজ সংগ্রহস্থল ডিরেক্টরি

তৈরি করতে চান যা ডিরেক্টরি তৈরি করতে বেছে নিয়েছে/var/www/debsএই জন্য এর অধীনে, আপনার "আর্কিটেকচার" ডিরেক্টরিগুলি তৈরি করা উচিত, প্রতিটি আর্কিটেকচারের জন্য আপনাকে সমর্থন করার দরকার। যদি আপনি কেবল একটি কম্পিউটার (বা কম্পিউটারের ধরণ) ব্যবহার করেন তবে আপনার কেবল একটির প্রয়োজন হবে - সাধারণত 32-বিট সিস্টেমের জন্য "i386" বা 64 বিটের জন্য "amd64"। আপনি যদি অন্য কোনও আর্কিটেকচার ব্যবহার করে থাকেন তবে আমি ধরে নেব যে আপনি সম্ভবত এটি সম্পর্কে ইতিমধ্যে জানেন। এখন কেবল প্রদত্ত আর্কিটেকচারের জন্য ".deb" প্যাকেজ ফাইলগুলি উপযুক্ত ডিরেক্টরিগুলিতে অনুলিপি করুন। আপনি যদি এখন আপনার প্রিয় ওয়েব ব্রাউজারটিকে http://localhost/debs/amd64(উদাহরণস্বরূপ) নির্দেশ করেন তবে আপনি 64 বিট সিস্টেমের জন্য প্যাকেজগুলির একটি তালিকা দেখতে পাবেন।


একটি Packages.gz ফাইল তৈরি করুন

এখন আমাদের APT ব্যবহারের জন্য একটি ক্যাটালগ ফাইল তৈরি করতে হবে। এটি "ডিপি কেজি-স্ক্যানপ্যাকেজ" নামে একটি ইউটিলিটি দিয়ে সম্পন্ন হয়। এখানে'

# cd /var/www/debs/

# dpkg-scanpackages amd64 | gzip -9c > amd64/Packages.gz




এপিটি-তে সংগ্রহস্থলটিকে পরিচিত করে তোলেন

এখন এপিটি আপনার সংগ্রহস্থল সম্পর্কে জানানো। আপনি আপনার /etc/apt/sources.list ফাইল আপডেট করে এটি করেন। আপনার এই জাতীয় প্রবেশের মতো দরকার:

deb http://localhost/debs/ amd64/

আমি লোকালহোস্টের পরিবর্তে আমার সিস্টেমের প্রকৃত হোস্টনামটি ব্যবহার করেছি - এইভাবে আমার ল্যানের সমস্ত কম্পিউটারের জন্য কোডটি একই, তবে আপনি যদি কেবল একটি কম্পিউটার চালাচ্ছেন তবে লোকালহোস্ট ঠিক ঠিক করবে।
এখন, এপিটি আপডেট করুন:

# apt-get update

2
সেই লাইনটি /etc/apt/sources.list এ যুক্ত করা ল্যানে না থাকলে আপডেটগুলি ভেঙে দেবে, তাই না?
ফেলিক্স

2
উবুন্টু ১.0.০৪ এর জন্য আপনাকে /var/www/debsএই উত্তরের সাথে প্রতিস্থাপনের প্রয়োজন হতে পারে /var/www/html/debs। অথবা আপনার অ্যাপাচি কনফিগারেশনটি ম্যানুয়ালি সম্পাদনা করার জন্য আপনার অতিরিক্ত পদক্ষেপের প্রয়োজন হবে/etc/apache2
এরিক

18

একটি প্রমাণীকৃত সংগ্রহশালা তৈরি করা হচ্ছে

আমি এখানে এবং অন্যান্য সাইটগুলিতে উত্তরগুলি একবার দেখেছি এবং বেশিরভাগেরই (আইএমএইচও বড়) অসুবিধা রয়েছে যা আপনি একটি অমান্যকৃত সংগ্রহস্থল স্থাপন করছেন। এই আপনি চালানোর প্রয়োজন মানে apt-getসঙ্গে --allow-unauthenticatedতা থেকে প্যাকেজগুলি ইনস্টল করতে। এটি সুরক্ষা ঝুঁকিপূর্ণ হতে পারে, বিশেষত স্ক্রিপ্টগুলিতে যেখানে আপনি যে প্যাকেজগুলি ইনস্টল করছেন সেগুলি আপনার স্থানীয় সংগ্রহস্থল থেকে নাও থাকতে পারে।

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

রেপো ডিরেক্টরি সেটআপ করুন

mkdir /home/srv/packages/local-xenial
cd /home/srv/packages/local-xenial

তারপরে এর মতো একটি লাইন যুক্ত করুন sources.list:

deb file:/home/srv/packages/local-xenial/ ./

প্যাকেজ যুক্ত এবং সরানো হচ্ছে

প্যাকেজ অপসারণ

rm /home/srv/packages/local-xenial/some_package_idont_like

প্যাকেজ যুক্ত করুন

cp /some/dir/apackage.deb /home/srv/packages/local-xenial

এখন নীচের স্ক্রিপ্টটি চালান যা প্যাকেজগুলি প্রকাশ করে, ইনরিলিজ ফাইলগুলি জেনারেট করে এবং আপনার জিপিজি প্রাইভেট কী দিয়ে তাদের স্বাক্ষর করে:

#!/bin/bash

if [ -z "$1" ]; then
       echo -e "usage: `basename $0` DISTRO
where DISTRO is the Ubuntu version codename (e.g. 14.04 is trusty)\n
The way to use this script is to do the changes to the repo first, i.e. delete or copy in the .deb file to /srv/packages/local-DISTRO, and then run this script\n
This script can be run as an unprivileged user - root is not needed so long as your user can write to the local repository directory"
else
    cd /srv/packages/local-"$1"

    # Generate the Packages file
    dpkg-scanpackages . /dev/null > Packages
    gzip --keep --force -9 Packages

    # Generate the Release file
    cat conf/distributions > Release
    # The Date: field has the same format as the Debian package changelog entries,
    # that is, RFC 2822 with time zone +0000
    echo -e "Date: `LANG=C date -Ru`" >> Release
    # Release must contain MD5 sums of all repository files (in a simple repo just the Packages and Packages.gz files)
    echo -e 'MD5Sum:' >> Release
    printf ' '$(md5sum Packages.gz | cut --delimiter=' ' --fields=1)' %16d Packages.gz' $(wc --bytes Packages.gz | cut --delimiter=' ' --fields=1) >> Release
    printf '\n '$(md5sum Packages | cut --delimiter=' ' --fields=1)' %16d Packages' $(wc --bytes Packages | cut --delimiter=' ' --fields=1) >> Release
    # Release must contain SHA256 sums of all repository files (in a simple repo just the Packages and Packages.gz files)
    echo -e '\nSHA256:' >> Release
    printf ' '$(sha256sum Packages.gz | cut --delimiter=' ' --fields=1)' %16d Packages.gz' $(wc --bytes Packages.gz | cut --delimiter=' ' --fields=1) >> Release
    printf '\n '$(sha256sum Packages | cut --delimiter=' ' --fields=1)' %16d Packages' $(wc --bytes Packages | cut --delimiter=' ' --fields=1) >> Release

    # Clearsign the Release file (that is, sign it without encrypting it)
    gpg --clearsign --digest-algo SHA512 --local-user $USER -o InRelease Release
    # Release.gpg only need for older apt versions
    # gpg -abs --digest-algo SHA512 --local-user $USER -o Release.gpg Release

    # Get apt to see the changes
    sudo apt-get update
fi

কনফিড / ডিস্ট্রিবিউশন ফাইলের সামগ্রীসমূহের উদাহরণ

Origin: My_Local_Repo Label: My_Local_Repo Codename: xenial Architectures: i386 amd64 Components: main Description: My local APT repository SignWith: 12345ABC

লিংক

https://wiki.debian.org/RepositoryFormat

http://ubuntuforums.org/showthread.php?t=1090731

https://help.ubuntu.com/community/CreateAuthenticatedRepository


@Phillip আপনার সম্পাদনার ব্যবহৃত date -Rc, আমি এটা সংশোধন করা date -Ruকি আপনি থেকে সম্পাদন করা বর্ণনা বোঝানো যে অভিমানী
muru

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

1
@ কেভিন জোনসন আমি আমার স্থানীয়
অ্যাপটি

8

আপনি স্থানীয় উত্স সার্ভারটি এনজিনেক্স এবং ডিপিজপ্রো দ্বারা সেটআপ করতে পারেন:

  1. ডিবিয়ান প্যাকেজ ইনস্টল করুন

    sudo apt-get install reprepro nginx 
    
  2. ডিরেক্টপোর জন্য ডিরেক্টরি তৈরি করুন এবং এটি সম্পাদনা করুন

    sudo mkdir -p /srv/reprepro/ubuntu/{conf,dists,incoming,indices,logs,pool,project,tmp}
    
    $ cd /srv/reprepro/ubuntu/
    $ sudo chown -R `whoami` . # changes the repository owner to the current user
    

    / SRV / reprepro / Ubuntu / সার্ভার / ডিস্ট্রিবিউশন

    Origin: Your Name
    Label: Your repository name
    Codename: karmic
    Architectures: i386 amd64 source
    Components: main
    Description: Description of repository you are creating
    SignWith: YOUR-KEY-ID
    

    / SRV / reprepro / Ubuntu / সার্ভার / অপশন

    ask-passphrase
    basedir .
    
  3. এটি ডিপপ্রোতে অন্তর্ভুক্ত করুন, এটি তৈরি করুন

    $ reprepro includedeb karmic /path/to/my-package_0.1-1.deb \
    # change /path/to/my-package_0.1-1.deb to the path to your package
    
  4. কনফিগার করুন:

    /etc/nginx/sites-available/vhost-packages.conf

    server {
      listen 80;
      server_name packages.internal;
    
      access_log /var/log/nginx/packages-access.log;
      error_log /var/log/nginx/packages-error.log;
    
      location / {
        root /srv/reprepro;
        index index.html;
      }
    
      location ~ /(.*)/conf {
        deny all;
      }
    
      location ~ /(.*)/db {
        deny all;
      }
    }
    
  5. বালতি আকার অনুকূল করুন:

    /etc/nginx/conf.d/server_names_hash_bucket_size.conf

    server_names_hash_bucket_size 64;
    

গাইড লিঙ্কটি ইনস্টল করার উল্লেখ


4
যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
জার্মটভিডিজক

@ ইলাপ্রপ: আপনি অবশ্যই উত্তরটি আপডেট করতে ভুলে গিয়েছেন :)
0xC0000022L

উপপাপক একই প্যাকেজের একাধিক সংস্করণ সমর্থন করে না। এটি অদ্ভুত শোনায়, তবে এইভাবেই ডিপ্রপো কাজ করে
ম্যাক্সডামো

6

আপনি একবার apt-mirrorএবং একবার দেখতে চাইবেন apt-cacher

এটি কীভাবে ইনস্টল ও ব্যবহার করতে হয় তার জন্য এখানে একটি গাইড রয়েছে ।


আপনার একটি 5 বছরের পুরানো উত্তর এলকিউ হিসাবে চিহ্নিত করা হচ্ছে। যদি এটি মুছে ফেলা হয়, মেটাতে যান এবং একটি মুছে ফেলার জন্য জিজ্ঞাসা করুন। আমি উন্মুক্ত রাখতে ভোট দিয়েছি , তবে এটির সম্পাদনা দরকার! ;-)
ফাব্বী

5

@ বিগস্যাকের উত্তর এবং উবুন্টুর অফিসিয়াল উইকি পোস্টের নির্দেশাবলী উবুন্টু 18.04-এ আমার পক্ষে কার্যকর হয়নি, যতক্ষণ না আমি এই দুটি পরিবর্তন না করি:

  1. একটি সরল, সঙ্কুচিত Packagesফাইল তৈরি করুন (এটি কার্যকর করার সময়, কার্য ডিরেক্টরিটি সমস্ত প্যাকেজগুলি যেখানে অবস্থিত সেখানে থাকতে হবে)

    cd /usr/local/mydebs
    dpkg-scanpackages -m . > Packages
    
  2. নিম্নলিখিত এন্ট্রি প্রবেশ করুন /etc/apt/sources.list

    deb [trusted=yes] file:/usr/local/mydebs ./
    

4

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

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

অনেক প্রতিষ্ঠানের গেটওয়েতে এখনও 10MB বা 100MB সীমা সহ রাউটার রয়েছে তবে অভ্যন্তরীণভাবে 1 জিবি নেটওয়ার্ক সংযোগ রয়েছে যাতে ব্যান্ডউইথটি অভ্যন্তরীণভাবে আরও ভালভাবে ব্যবহার করা যায়। আপনার নিজের সংগ্রহস্থল তৈরির দ্বিতীয় কারণ হ'ল আপনি অভ্যন্তরীণ উবুন্টু মেশিনগুলিতে কি অ্যাপ্লিকেশনগুলি লোড করা হয় তা আপনি নিয়ন্ত্রণ করতে পারেন।

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

টার্মিনাল খোলার জন্য আপনাকে প্রথমে একটি আয়না সেটআপ করতে হবে , আপনার কীবোর্ডে কেবল Ctrl+ Alt+ টিপুন T। এটি খুললে নীচের কমান্ডটি চালান।

apt-get install apt-mirror 

আপনার সেট আপ্ট-মিরর তৈরি হয়ে গেলে আপনি এই কমান্ডটি দিয়ে আপনার সংগ্রহের ডাউনলোড শুরু করতে পারেন।

apt- আয়না /etc/apt/mirror.list 1

পড়তে

1 উত্স: একটি উবুন্টু সংগ্রহশালা তৈরি করুন


দুঃখিত, লিঙ্কটি মারা গেছে
xamiro

3

একটি অফলাইন স্থানীয় সংগ্রহস্থল
তৈরি করতে 1. একটি dir অ্যাক্সেসযোগ্য (মূল দ্বারা অন্তত অন্তত) করুন

sudo mkdir / var / আমার-স্থানীয়-রেপো

  1. সমস্ত ডাব ফাইলগুলি এই ডিরেক্টরিতে অনুলিপি করুন।
  2. ডিরেক্টরি স্ক্যান

sudo dpkg-scanpackages / var / my-local-repo / dev / null> / var / আমার-স্থানীয়-রেপো / প্যাকেজ

  1. উত্সগুলিতে স্থানীয় সংগ্রহস্থল যুক্ত করুন

প্রতিধ্বনি "দেব ফাইল: / var / আমার-স্থানীয়-রেপো </"> /tmp/my-local.list

sudo mv /tmp/my-local.list /etc/apt/sources.list.d/my-local.list

sudo অ্যাপ্লিকেশন - আপডেট


কম-বেশি একই জিনিসটি সরকারী উইকিতেও রয়েছে:
সংগ্রহশালা

1

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

apt-rdependsআমার প্যাকেজের জন্য কিছু নির্ভরতা তালিকাভুক্ত করা হয়নি। আমার সন্দেহ হয় যে এটির সত্যিকারের সাথে কিছু করার আছে যা apt-cache showএটির জন্য একাধিক রেকর্ড দেখায়।

পরিবর্তে আমি ব্যবহার করেছি apt-cache depends, এবং এটি কৌশলটি করেছে:

নির্ভরতার একটি পুনরাবৃত্তির তালিকা পাওয়া

apt-cache depends <packagename> -i --recurse

-i: কেবলমাত্র নির্ভরশীলতা --recurse: পুনরাবৃত্তিযোগ্য

এটি হজমযোগ্য তালিকায় পরিণত করুন

  • প্রতীক এবং স্পেসগুলি সরানো হচ্ছে: | tr -d "|,<,>, "
  • অপসারণ নির্ভর করে: & পূর্বনির্ভর: | sed -e 's/^Depends://g' | sed -e 's/^PreDepends://g'
  • তালিকা বাছাই করা হচ্ছে: | sort
  • শুধুমাত্র অনন্য মান: | uniq > list.txt

সম্পূর্ণ আদেশ:

apt-cache depends <packagename> -i --recurse | tr -d "|,<,>, " | sed -e \
's/^Depends://g' | sed -e 's/^PreDepends://g' | sort | uniq > list.txt

প্যাকেজগুলি ডাউনলোড করুন

for i in $( cat list.txt ); do apt-get download $i; done;

প্যাকেজগুলির জন্য স্ক্যান করুন এবং এটিকে Packages.gz এ রূপান্তর করুন

dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

1
আপনি যে উত্তরটির বিষয়ে কথা বলছেন তা উল্লেখ করার পক্ষে একটি ভাল ধারণা হতে পারে ...
বেনামে 2

-1

আমি অ্যাপ্লিকেশন ব্যবহার করেছি।

এটি ভাল তবে আপনার আরও হার্ড ড্রাইভের স্থান থাকা দরকার কারণ এটি रिपো সার্ভারের সাথে সিঙ্ক হবে।

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