হোমব্রিউ: কেবলমাত্র ইনস্টল করা শীর্ষ স্তরের সূত্রগুলি তালিকাবদ্ধ করুন


102

আমি ইনস্টল করা নির্ভরতা ছাড়াই কেবলমাত্র সূত্রগুলি ইনস্টল করার জন্য একটি উপায় অনুসন্ধান করছি। নির্ভরতাগুলির সমস্ত গোলমাল ছাড়াই আমি প্রকৃতপক্ষে ইনস্টল করা সমস্ত প্রোগ্রামের একটি তালিকা পেতে চাই।

আমি brew listইনস্টল করা সমস্ত সূত্র তালিকাভুক্ত সম্পর্কে জানি না । আমি জানি যে brew graphএটি আমাকে একটি নির্ভরতা গ্রাফ দেয়graphviz

বা অন্য কথায়: আমি আমার সিস্টেমটি পুনরায় ইনস্টল করতে সূত্রগুলির সর্বনিম্ন সেট রাখতে চাই।


brew graph??? আমি পেতে Error: Unknown command: graph। এরকম কোনও আদেশ নেই।
আইকনোক্লাস্ট

brew graphএকটি প্যাকেজ আপনি এই জন্য ইনস্টল করতে পারেন বলে মনে হচ্ছে github.com/martido/brew-graph , দেখুন blog.jpalardy.com/posts/untangling-your-homebrew-dependencies
netweb

উত্তর:


179

ব্যবহার brew leaves: ইনস্টল করা সূত্রগুলি দেখান যা অন্য ইনস্টল করা সূত্রের নির্ভরতা নয়।


1
ধন্যবাদ! তবে এটি এটি দেখায় mysqlযে এটির কোনও প্রয়োজন হয় না যখন এটি আসলে আমার সিস্টেমে দ্বারা প্রয়োজন mysql-connector-c++। আপনি কি জানেন যে এটি ইচ্ছাকৃত কিনা (যেমন কোনও brewসূত্রগুলি অবক্ষয়হীনতা না থাকলেই সরাসরি কোন সূত্রগুলি সরাসরি ইনস্টল করা থাকে তা রাখে)?
হারালান ডবরেভ

2
ওহ, এটি বিদ্যমান! এফডাব্লুআইডাব্লু এটি পাওয়া যায় Library/Homebrew/cmd/leaves.rbএবং মূলত solutionচ্ছিক / প্রস্তাবিত নির্ভরতাগুলি হ্যান্ডলিং ব্যতীত আমার সমাধান যা করে তা করে deps << dep.name if tab.with?(dep.name)। @ হারালানডোব্রেভ এটি অবশ্যই mysqlআপনার সিস্টেমে এবং আউটপুট কেন আমার সমাধান থেকে আলাদা তার সাথে সম্পর্কিত আচরণের ব্যাখ্যা দেয় তবে আপনি সহজেই leaves.rbআপনার পছন্দ অনুসারে মানিয়ে নিতে পারেন ।
অ্যাড্রিয়ান ফ্রেহওয়ার্থ

1
দুর্দান্ত খুঁজে। আমি brew ls --versions $( brew leaves )brew ls --versions $( brew leaves )সংস্করণগুলি ডাম্প করতে ব্যবহার করি ।
মাইক ডি

21
$ brew deps --installed
tmux: pkg-config libevent
q:
gdbm:
libxml2:
asciidoc: docbook
libevent:
pkg-config:
pcre:
docbook:
zsh: gdbm pcre
readline:
emacs: pkg-config

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

$ cat brew-root-formulae.sh
#!/bin/sh

brew deps --installed | \
    awk -F'[: ]+' \
    '{
        packages[$1]++
        for (i = 2; i <= NF; i++)
            dependencies[$i]++
    }
    END {
        for (package in packages)
            if (!(package in dependencies))
                print package
    }'

$ ./brew-root-formulae.sh
zsh
asciidoc
libxml2
readline
tmux
q
emacs

আপনি কি পরে এই আউটপুট হয়?


1
ধন্যবাদ, এই কাজ করে!
হারালান ডবরেভ

আপনার স্ক্রিপ্টের জন্য আপনাকে ধন্যবাদ, তবে আমি ডেনিসের কাছ থেকে উত্তরটি আরও ভালভাবে খুঁজে পেয়েছি। 1) এটি অন্তর্নির্মিত। brewএরকম কমান্ড না থাকলেও এখন অন্তর্নির্মিতটি ব্যবহার করা ভাল। 2) আপনি স্ক্রিপ্ট হ্যান্ডেল dupes ভাল দেখায় না। উদাহরণস্বরূপ, যদি আমি ইনস্টল করে থাকে তবে php55কোনটি ইনস্টল করে homebrew/dupes/zlibএটি দেখায় zlibযে এটি নির্ভরতা নয় যা সত্য নয়। চিয়ার্স!
হারালান ডবরেভ

শুধু cutআউটপুট ব্যবহার করবেন না কেন ? এখানে একটি লাইনার রয়েছে:brew deps --installed | cut -d: -f1
mattmc3

@ mattmc3 কারন এটি একই কাজ করে না এবং ওপি জিজ্ঞাসা করে যে আউটপুট দেয় তার উত্তর দেয় না।
অ্যাড্রিয়ান ফ্রহ্বর্থম 22'19

1
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। আমি brew leavesদরকারী হতে পারে না ।
দানিয়াল আয়তেকিন

3

এটি গাছ হিসাবে ইনস্টল করা সূত্রগুলি দেখায়।

ব্রিউ Deps - ইনস্টল - -ট্রি

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