Paano malaman kung aling mga application ang nakasalalay sa X package

Ang maikling mini-tutorial na ito ay lumalabas bilang tugon sa pag-aalala ng isa sa aming mga mambabasa na si Felipe, na sumulat sa amin na nagtanong: «Paano ko malalaman kung aling mga application ang gumagamit ng Java?«. Sa gayon, sa palagay ko walang paraan upang malaman iyon, ngunit may isang simpleng paraan upang malaman aling mga pakete (iyon ay, aling mga application) na nakalista sa mga repository ay nakasalalay sa mga pakete ng JAVA. Ang parehong pamamaraan ay maaaring magamit para sa anumang iba pang mga pakete, halimbawa upang malaman kung aling mga application ang nakasalalay Mono.


Ang pinakakaraniwan ay ang nais na malaman kung anong iba pang mga pakete ang dapat na mai-install upang gumana nang maayos ang package X. Ang mga kinakailangang pakete na iyon ay tinatawag na dependencies at maaaring malaman tulad nito:

ang apt-cache ay nakasalalay sa mypackage 

Maaari ka ring pumunta sa Synaptic, hanapin ang package, gawin pag-right click dito> Mga Katangian> Mga Depende.

Gayunpaman, ang layunin ng post na ito ay upang malaman tiyak ang kabaligtaran: aling mga pakete ang may X package bilang pagtitiwala. Sa madaling salita, sa kasong ito alam namin ang package na "ina" at nais naming malaman kung ano ang iba pang mga pakete na nangangailangan na mai-install ang paketeng "ina" na ito upang gumana.

Ituloy natin ang halimbawa upang higit na maunawaan ang bagay. Tingnan natin kung paano makita ang mga pakete na nakasalalay sa openjdk-6-jre package. Sa madaling salita, kung paano makita ang mga application na nakalista sa mga repository na nakasalalay sa JAVA.

Nagbukas ako ng isang terminal at sumulat:

Ang apt-cache ay nakasalalay sa openjdk-6-jre 

Ang isang mahabang listahan ng mga pakete ay lilitaw, kabilang ang OpenOffice, FreeMind, OpenCol, atbp.

Paano makahanap ng tamang pakete na "ina"?

OK, sa ngayon napakadali, ngunit paano ko malalaman kung ano ang "ina" na pakete batay sa kung saan ako dapat maghanap? Sa gayon, nangangailangan ito ng ilang kadalubhasaan at dating pagsusuri.

Ipagpalagay na nais kong malaman ang lahat ng mga application na batay sa MONO. Sa kasong iyon, ang ginawa ko ay hanapin ang mga dependency ng isang application (GBrainy) na alam kong gumagamit ng MONO at, batay sa na, tuklasin ang "ina" na pakete at hanapin ang mga kabaligtaran na pagtitiwala. Uff, parang mahirap pero kalokohan ito.

Nagbukas ako ng isang terminal at sumulat:

apt-cache nakasalalay gbrainy

Ang mga resulta ay ang mga ito:

  Nakasalalay: mono-runtime
 | Nakasalalay: libc6
 | Nakasalalay: libc6.1
  Nakasalalay: libc0.1
  Nakasalalay: libglib2.0-cil
  Nakasalalay: libgtk2.0-0
  Nakasalalay: libgtk2.0-cil
  Nakasalalay: liblaunchpad-integration1.0-cil
  Nakasalalay: libmono-addins-gui0.2-cil
  Nakasalalay: libmono-addins0.2-cil
  Nakasalalay: libmono-cairo2.0-cil
  Nakasalalay: libmono-corlib2.0-cil
  Nakasalalay: libmono-posix2.0-cil
  Nakasalalay: libmono-system2.0-cil
  Nakasalalay: librsvg2-2
  Nakasalalay: mono-csharp-shell

Tila sa akin na ang mono-runtime ay maaaring maging isang mahusay na kandidato, kaya't nagpasya akong maghanap para sa lahat ng mga pakete na umaasa sa mono-runtime:

apt-cache rdepend mono-runtime

Voila! Lumilitaw ang lahat ng mga pakete na gumagamit ng MONO.

Upang makita ang isang kumpletong listahan ng lahat ng mga pakete na nakasalalay sa ilang pakete ng MONO, maaaring nakasulat kami:

apt-cache rdepends mono *
Tandaan: gumagana lamang ang pamamaraang ito para sa mga application na nakalista sa mga repository ng APT.
Salamat Feli!

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Philip Becerra dijo

    Salamat sa pagsagot kay Pablo, at salamat sa post 🙂

  2.   Saito Mordraw dijo

    Pablo ikaw ang aking idolo!

    Mahusay na post.

  3.   Gumamit tayo ng Linux dijo

    Malaki! Salamat sa data!

  4.   tuso dijo

    Para sa amin na gumagamit ng malalaking pamamahagi ………… joke

    para sa mga gumagamit ng tagapamahala ng package na nakabatay sa RPM ginagamit ang utos na ito

    rpm -qR packages

    Halimbawa:

    linux @ dhcppc3: ~> rpm -qR xmms
    / Bin / SH
    / Bin / SH
    rpmlib (PayloadFilesHavePrefix) <= 4.0-1
    rpmlib (CompressedFileNames) <= 3.0.4-1
    KALIGTASAN.so.6
    libSM.so.6
    libX11.so.6
    libXxf86vm.so.1
    libc.so.6
    libc.so.6 (GLIBC_2.0)
    libc.so.6 (GLIBC_2.1)
    libc.so.6 (GLIBC_2.3)
    libc.so.6 (GLIBC_2.3.4)
    libc.so.6 (GLIBC_2.4)
    libc.so.6 (GLIBC_2.7)
    libdl.so.2
    libdl.so.2 (GLIBC_2.0)
    libdl.so.2 (GLIBC_2.1)
    libgdk-1.2.so.0
    libglib-1.2.so.0
    libgthread-1.2.so.0
    libgtk-1.2.so.0
    libpthread.so.0
    libpthread.so.0 (GLIBC_2.0)
    libpthread.so.0 (GLIBC_2.1)
    libpthread.so.0 (GLIBC_2.3.2)
    libxmms.so.1
    rpmlib (PayloadIsLzma) <= 4.4.6-1