অপ্ট-গেইন কেন একটি প্যাকেজ ইনস্টল করবে তা আমি কীভাবে নির্ধারণ করতে পারি?


18

এই প্রশ্নটির অনুরূপ, কীভাবে প্যাকেজ ইনস্টল করা হয়েছিল তা আমি কীভাবে জানতে পারি? , তবে আমার ক্ষেত্রে আমি আসলে কোনও প্যাকেজ ইনস্টল করার আগে জানতে চাই , কেন এটি একটি নির্দিষ্ট নির্ভরতা ইনস্টল করবে।

উদাহরণস্বরূপ আমি চালাতে পারে

sudo apt-get install superfoo

এবং আউটপুট যেমন কিছু বলতে হবে:

The following extra packages will be installed:
  foo bar baz ... libderp libjunk

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

উপরের উদাহরণে বলা যাক আমি কেন libderpইনস্টল হবে তা বুঝতে চাই । আমি জানি যে কোনওরকমের মধ্যে নির্ভরতার একটি শৃঙ্খলা রয়েছে superfooএবং libderpপ্যাকেজগুলির বিশাল তালিকা ইনস্টল করার জন্য এই চেইনটি কী তা দেখতে অসুবিধা হয়।

একবার নির্ভরতা শৃঙ্খলাটি সম্পর্কে জানার পরে আমি সিদ্ধান্ত নিতে পারি যে আমি সত্যই আসল প্যাকেজটি ইনস্টল করতে চাই কিনা এবং / অথবা সেই প্যাকেজটির রক্ষণাবেক্ষণকারীর সাথে আমার যোগাযোগ করা উচিত কিনা তা দেখার জন্য সেখানে তাদের সেই নির্ভরতাগুলির সত্যই প্রয়োজন।


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

উত্তর:


14

আপনি যা সত্যিই জিজ্ঞাসা করছেন বলে মনে হচ্ছে তা হল "আমি কীভাবে চিত্রের নির্ভরতা করব?" যাতে আপনি দেখতে পারেন কোন প্যাকেজগুলি কোন নির্ভরতাগুলিতে টানছে।

আপনি apt-cacheকমান্ড থেকে পাঠ্য এবং ডায়াগ্রামযুক্ত নির্ভরতা উভয়ই পাবেন ( অ্যাপটি প্যাকেজের অন্তর্ভুক্ত, ডিফল্ট ইনস্টলের অংশ)।

পাঠ্য বিন্যাসে 'হ্যালো' প্যাকেজের নির্ভরতা তালিকাভুক্ত করার জন্য এপ-ক্যাশের একটি উদাহরণ এখানে। পাঠ্য আউটপুট সর্বদা এক মাত্রা থাকবে।

$ apt-cache depends hello
hello
  Depends: libc6
 |Depends: dpkg
  Depends: install-info

আপনি যে কোনও ডটফাইল ভিউয়ার ব্যবহার করে ডায়াগ্রামটি পড়তে পারেন, যেমন dotty(গ্রাফভিজ প্যাকেজের অন্তর্ভুক্ত, ডিফল্ট ইনস্টলের অংশ)

গ্রাফিকাল ফর্ম্যাটে পূর্ণ নির্ভরতা গাছ পাওয়ার উদাহরণ রয়েছে, তারপরে এটি প্রদর্শিত হবে। গ্রাফিকাল আউটপুট সর্বদা পূর্ণ ট্রি হবে।

$ apt-cache dotty hello > dotfile
$ dotty dotfile

এটি সন্ধান করে আপনি দেখতে পাবেন যে 'হ্যালো' প্যাকেজটি এক টন পার্ল প্যাকেজগুলিতে টানছে ... এবং এটি নির্ভরতা কোনটি করে।


যদিও এটি কাজ করবে, কোনও প্যাকেজ নির্ভরতার নির্ভরতা যদি কোনও নির্দিষ্ট প্যাকেজে কী টানছিল তা দেখার জন্য এটি এইভাবে কাজ করা কিছু গুরুতর কাজ হবে।
tgm4883

একেবারেই না. নিছক ডটফিল ছবিটি দেখুন।
ব্যবহারকারীর 3535733

1
apt-cache depends --recurseআপনাকে পুরো ছবি দেবে, তবে নীচে অ্যাপটি-নির্ভরতা আরও ভাল কারণ এটি কেবল আসল নির্ভরতা অনুসরণ করে, প্রস্তাবিত বা প্রস্তাবিত নয়।
মহিষ্মিত

যদিও এপট-গেটটি আপনি --no-install-recommendsপতাকা ব্যবহার না করে প্রস্তাবিত নির্ভরতাগুলি ইনস্টল করবেন ।
মহিষ্মিত

2
এই বার মানে কি? |
সিএমসিডিগ্রাগনকাই

9

apt-rdepends50+ লাইব্রেরি ক্রুফ্টের মতো ইনস্টল না করে এটি করেubuntu-dev-tools

durr@scraper:~$ apt-rdepends mercurial
Reading package lists... Done
Building dependency tree
Reading state information... Done
mercurial
  Depends: libc6 (>= 2.14)
  Depends: mercurial-common (= 2.8.2-1ubuntu1)
  Depends: python (<< 2.8)
  Depends: ucf (>= 2.0020)
libc6
  Depends: libgcc1
libgcc1
  Depends: gcc-4.9-base (= 4.9-20140406-0ubuntu1)
  Depends: libc6 (>= 2.14)
  PreDepends: multiarch-support
gcc-4.9-base
multiarch-support
  Depends: libc6 (>= 2.3.6-2)
mercurial-common
  Depends: python (<< 2.8)
  Depends: python:any (>= 2.7.1-0ubuntu2)
python
  Depends: libpython-stdlib (= 2.7.5-5ubuntu3)
  Depends: python-minimal (= 2.7.5-5ubuntu3)
  Depends: python2.7 (>= 2.7.5-1~)
libpython-stdlib
  Depends: libpython2.7-stdlib (>= 2.7.5-1~)
libpython2.7-stdlib
  Depends: libbz2-1.0
  Depends: libc6 (>= 2.15)
  Depends: libdb5.3
  Depends: libexpat1 (>= 2.1~beta3)
  Depends: libffi6 (>= 3.0.4)
  Depends: libncursesw5 (>= 5.6+20070908)
  Depends: libpython2.7-minimal (= 2.7.6-8)
  Depends: libreadline6 (>= 6.0)
  Depends: libsqlite3-0 (>= 3.5.9)
  Depends: libssl1.0.0 (>= 1.0.0)
  Depends: libtinfo5
  Depends: mime-support
libbz2-1.0
  Depends: libc6 (>= 2.4)
  PreDepends: multiarch-support
libdb5.3
  Depends: libc6 (>= 2.17)
  PreDepends: multiarch-support
libexpat1
  Depends: libc6 (>= 2.14)
  PreDepends: multiarch-support
libffi6
  Depends: libc6 (>= 2.14)
  PreDepends: multiarch-support
libncursesw5
  Depends: libc6 (>= 2.15)
  Depends: libtinfo5 (= 5.9+20140118-1ubuntu1)
  PreDepends: multiarch-support
libtinfo5
  Depends: libc6 (>= 2.15)
  PreDepends: multiarch-support
libpython2.7-minimal
libreadline6
  Depends: libc6 (>= 2.15)
  Depends: libtinfo5
  Depends: readline-common
  PreDepends: multiarch-support
readline-common
  Depends: dpkg (>= 1.15.4)
  Depends: install-info
dpkg
  PreDepends: libbz2-1.0
  PreDepends: libc6 (>= 2.14)
  PreDepends: liblzma5 (>= 5.1.1alpha+20120614)
  PreDepends: libselinux1 (>= 2.1.0)
  PreDepends: tar (>= 1.23)
  PreDepends: zlib1g (>= 1:1.1.4)
liblzma5
  Depends: libc6 (>= 2.14)
  PreDepends: multiarch-support
libselinux1
  Depends: libc6 (>= 2.14)
  Depends: libpcre3
  PreDepends: multiarch-support
libpcre3
  Depends: libc6 (>= 2.14)
  PreDepends: multiarch-support
tar
  PreDepends: libacl1 (>= 2.2.51-8)
  PreDepends: libc6 (>= 2.17)
  PreDepends: libselinux1 (>= 1.32)
libacl1
  Depends: libattr1 (>= 1:2.4.46-8)
  Depends: libc6 (>= 2.14)
  PreDepends: multiarch-support
libattr1
  Depends: libc6 (>= 2.4)
  PreDepends: multiarch-support
zlib1g
  Depends: libc6 (>= 2.14)
  PreDepends: multiarch-support
install-info
  Depends: libc6 (>= 2.14)
  PreDepends: dpkg (>= 1.16.1)
libsqlite3-0
  Depends: libc6 (>= 2.14)
  PreDepends: multiarch-support
libssl1.0.0
  Depends: debconf (>= 0.5)
  Depends: debconf-2.0
  Depends: libc6 (>= 2.14)
  PreDepends: multiarch-support
debconf
  PreDepends: perl-base (>= 5.6.1-4)
perl-base
  PreDepends: dpkg (>= 1.14.20)
  PreDepends: libc6 (>= 2.14)
debconf-2.0
mime-support
python-minimal
  Depends: dpkg (>= 1.13.20)
  Depends: python2.7-minimal (>= 2.7.5-1~)
python2.7-minimal
  Depends: libpython2.7-minimal (= 2.7.6-8)
  Depends: zlib1g (>= 1:1.2.0)
  PreDepends: libc6 (>= 2.15)
python2.7
  Depends: libpython2.7-stdlib (= 2.7.6-8)
  Depends: mime-support
  Depends: python2.7-minimal (= 2.7.6-8)
python:any
ucf
  Depends: coreutils (>= 5.91)
  Depends: debconf (>= 1.5.19)
coreutils
  PreDepends: libacl1 (>= 2.2.51-8)
  PreDepends: libattr1 (>= 1:2.4.46-8)
  PreDepends: libc6 (>= 2.17)
  PreDepends: libselinux1 (>= 1.32)

আমার ক্লিন উবুন্টু সার্ভারে apt-rdependsকেবল ইনস্টলের প্রয়োজন libapt-pkg-perl। এটি তখন বেশ হালকা ubuntu-dev-toolsএবং তবুও পুনরাবৃত্তিযোগ্য, সুতরাং আপনি সমস্ত নির্ভরতা পান, তারপরে ঠিক প্রথম অর্ডার নির্ভরতা, যেমন apt-cache dependsফেরতের মতো ।


আমি যদি ভুল বুঝি তবে দুঃখিত, তবে আমি মনে করি অপ্ট-ডিপেন্ডেডগুলি বিপরীত-নির্ভর হিসাবে একই নয়। apt-rd depends প্যাকেজের পুনরাবৃত্ত নির্ভরতা তালিকাভুক্ত করে, যখন বিপরীত-নির্ভর প্যাকেজ প্রদত্ত প্যাকেজের উপর নির্ভর করে lists
rsuarez

apt-rd depends -r বিপরীত নির্ভরতা তালিকাভুক্ত করে।
কীথ

8

এটি করার সহজ উপায় হতে পারে তবে আপনি যদি বিপরীত-নির্ভর ব্যবহার করেন তবে এটি করা যেতে পারে। আপনাকে উবুন্টু-ডিভ-টুলস প্যাকেজটি ইনস্টল করতে হবে

apt-get install ubuntu-dev-tools

বা এই বোতামটি ক্লিক করে:

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

একবার ইনস্টল হয়ে গেলে, আপনি নির্দিষ্ট প্যাকেজের উপর কী নির্ভর করে তা দেখতে বিপরীত-নির্ভর ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি যদি এমন কিছু ইনস্টল করার চেষ্টা করেন যা অতিরিক্ত প্যাকেজগুলির একটি গুচ্ছ ইনস্টল করতে চায় এবং আপনি দেখতে চান যে "লিবস্পেপ0" কেন ইনস্টল করা হচ্ছে, আপনি চালনা করুন

reverse-depends libsmpeg0

যা নিম্নলিখিত আউটপুট হবে।

Reverse-Recommends
==================
* sandboxgamemaker

Reverse-Depends
===============
* btanks
* fenix-plugin-mpeg [armel armhf i386 powerpc]
* fillets-ng
* gltron [amd64 armel i386 powerpc]
* libalien-sdl-perl
* libsdl-perl [i386]
* libsmpeg-dev
* libtaoframework-sdl1.2-cil
* python-pygame
* ruby-sdl
* sdlbrt
* smpeg-gtv
* smpeg-plaympeg
* tdfsb

Packages without architectures listed are reverse-dependencies in: amd64, armel, armhf, i386, powerpc

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

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


2
যদিও আমি নিশ্চিত যে এই উত্তরটি কার্যকর করবে, এটি ওপি এড়াতে চাইছে এমন সমস্যাটি প্রকাশ করে। ubuntu-dev-toolsনিম্নলিখিত প্যাকেজ ইনস্টল হচ্ছে ফলাফল। bzr bzr-builddeb dctrl-tools debian-archive-keyring debian-keyring debootstrap devscripts diffstat distro-info distro-info-data dput genisoimage gettext hardening-includes intltool-debian libapt-pkg-perl libarchive-zip-perl libasprintf-dev libassuan0 libauthen-sasl-perl libautodie-perl libclone-perl libcommon-sense-perl libcroco3 libdigest-hmac-perl libdistro-info-perl libemail-valid-perl libencode-locale-perl liberror-perl
ভুয়া নাম

2
[অব্যাহত] python-launchpadlib python-lazr.restfulclient python-lazr.uri python-oauth python-paramiko python-reportbug python-secretstorage python-simplejson python-soappy python-support python-wadllib python3-debian python3-magic quilt reportbug t1utils unzip wdiff xdelta (দ্রষ্টব্য: উপরে ছিল মাত্র থেকে প্রয়োজনীয় প্যাকেজ sudo apt-get install ubuntu-dev-toolsমোটামুটি পরিষ্কার উবুন্টু সার্ভার উদাহরণস্বরূপ তে) খুলুন। আপনি করার চেষ্টা করছেন তবে এড়াতে cruft বিপুল পরিমাণে ইনস্টল এটি সম্ভবত সবচেয়ে খারাপ সমাধান সম্ভব।
ভুয়া নাম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.