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 *
Salamat sa pagsagot kay Pablo, at salamat sa post 🙂
Pablo ikaw ang aking idolo!
Mahusay na post.
Malaki! Salamat sa data!
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