Bağımlılıklar ve ön-bağımlı arasındaki fark nedir?


Yanıtlar:


20

Bu bağlantıdan alındığı gibi: https://www.debian.org/doc/debian-policy/#document-ch-relationships

5 tür bağımlılık vardır:

Beş bağımlılık alanının anlamı şöyledir:

Bağlı olmak

  • Bu mutlak bir bağımlılık ilan eder. Bir paket, Bağımlılar alanında listelenen tüm paketler doğru şekilde yapılandırılmadıkça yapılandırılmaz. Bağımlı paketin önemli miktarda işlevsellik sağlaması için bağımlı paket gerekiyorsa Bağımlı alanı kullanılmalıdır. Bağımlılar alanı ayrıca postinst veya prerm komut dosyalarının bağlı paketin çalışması için paketinin açılmasını veya yapılandırılmasını gerektiriyorsa da kullanılmalıdır. Postinst yapılandırması durumunda, bağlı paketler önce açılacak ve yapılandırılacaktır.

  • Prerm veya diğer post-post eylemler durumunda, paket bağımlılıkları normalde en azından paketten çıkarılır, ancak bağımlılığın önceki bir yükseltmesi başarısız olursa, yalnızca "Yarı Yüklü" olabilir. Son olarak, paket kaldırıldıktan sonra postrm betiği tarafından bağlı pakete tamamen temizlemek için bağımlı pakete ihtiyaç duyulursa Bağımlı alanı kullanılmalıdır. Postrm çalıştırıldığında paket bağımlılıklarının kullanılabileceğine dair bir garanti yoktur, ancak paket bağımlılık beyan ettiğinde (özellikle postrm kaldırma durumunda) bağlı paketin kullanılabilir olma olasılığı daha yüksektir. Postrm betiği, bu bağımlılık yoksa bağımlılık gerektiren eylemleri atlamalı.

Recommends

  • Bu, güçlü fakat mutlak olmayan bir bağımlılık ilan eder. Öneriler alanında, olağandışı kurulumlar dışında bununla birlikte bulunacak paketler listelenmelidir.

Önerdi

  • Bu, bir paketin bir veya daha fazla diğeri için daha yararlı olabileceğini beyan etmek için kullanılır. Bu alanın kullanılması, paketleme sistemine ve kullanıcıya listelenen paketlerin bununla ilgili olduğunu ve belki de kullanışlılığını artırabileceğini söyler, ancak bunlar olmadan kurulmasının mükemmel bir şekilde makul olduğunu gösterir.

Geliştiriyor

  • Bu alan Öneriler'e benzer, ancak ters yönde çalışır. Bir paketin başka bir paketin işlevselliğini artırabileceğini beyan etmek için kullanılır.

Ön Bağlıdır

  • Bu alan Bağımlı gibidir , ancak ön bağımlılığı bildiren paketin yüklenmesine bile başlamadan önce dpkg adındaki paketlerin kurulumunu tamamlamaya zorlar, Ön bağımlılık bildiren bir paket yaklaşık paketten çıkarılacak, bağımlı paket tamamen yapılandırılmışsa veya bağlı paket (ler) yalnızca paketlenmemişse veya yapılandırılmış olmaları şartıyla "Yarı Konfigüre Edilmiş" durumda olsa bile ön bağımlılık sağlanabilir Geçmişte bir noktada doğru şekilde (ve o zamandan beri çıkarılmış veya kısmen çıkarılmamış)

  • Bu durumda, hem önceden yapılandırılmış hem de şu anda açılmış veya "Yarı Yapılandırılmış" sürümler, Bağımlılık Öncesi alanındaki tüm sürüm maddelerini karşılamalıdır. Ön bağımlılık bildiren paket yapılandırılmak üzereyken, ön bağımlılık normal Bağımlı olarak kabul edilir. Yalnızca bağımlı paket doğru bir şekilde yapılandırıldıysa tatmin olmuş sayılacaktır. Ancak, Bağımlılardan farklı olarak, Ön Bağımlılıklar dairesel bağımlılıkların kırılmasına izin vermez. Ön Bağımlıları onurlandırmaya çalışırken dairesel bir bağımlılıkla karşılaşılırsa, yükleme iptal edilir.

  • Preinst betiği belirtilen pakete bağlıysa, Pre-Depends (Bağımlılık) da gereklidir. Mümkünse bu durumdan kaçınmak en iyisidir. Önceden Bağımlılıklar, tercihen sadece erken yükseltme veya kurulum, sistemin devam eden herhangi bir yükseltmeye devam etme yeteneğini engelleyecek paketler tarafından az miktarda kullanılmalıdır.

Daha Küçük Sürüm:

  • Hem bağlıdır hem de önceden bağlıdırbir paketin yüklenmeden önce ihtiyaç duyduğu bağımlılıklardan bahsedin, ancak önceden bağımlılık, bağımlılık gerektiren pakete başlamadan önce bağımlılık paketlerinin kurulumunu ve yapılandırmasını zorlar. dpkg, tüm bağımlı paketler ele alınmadan ana paketi bile açmayacaktır. Bağımlı olarak, bağımlılık paketlerinin ve ana paketin sırası önemli değildir. Ön-bağımlı olarak, bu ve ayrıca ön-bağımlı paketlerin yapılandırılıp yapılandırılmadığı ve kurulup kurulmadığı da göz önünde bulundurulur. Bu olmadan, ana paket ambalajından çıkarılmayacak, yapılandırılmayacak veya yüklenmeyecektir. Ana paketle çalışmaya başlamadan önce bağımlılıkların kurulu olması gerekir. Değilse, devam etmeden önce indirilmeleri / yapılandırılmaları / kurulmaları gerekir.

2
Ayrıca , Çatışmalar ve Kesmeler gibi anti-bağımlılıkların olduğunu unutmayın . Ve Build-Depends gibi bağımlılıklar oluşturun.
Alexis Wilke

3

"Bağımlılık" terimi genel olarak "Bağımlılıklar" ve "Bağımlılık Öncesi" ilişkileri (ve hatta bazen daha zayıf olan ilişkileri) kapsayacak şekilde kullanılabilir veya "Bağımlılık" kelimesinin eşanlamlısı olarak dar olarak kullanılabilir.

"Bağımlı" ve "Ön Bağımlı" paket ilişkileri arasındaki fark, X Y'ye bağlıysa , X yapılandırılmadan önce Y'nin tam olarak yapılandırılması gerektiğidir. (Yapılandırma, bir paket, dosyaları uygun konumlara paketinden çıkarıldıktan sonra (yani, "yüklendikten sonra"), sağlanan yazılımı gerçekten kullanabilmeniz için gerekli diğer değişikliklerin yapıldığı kurulum aşamasıdır. , bir HTTP sunucusunun yapılandırılması, wwwuygun yeteneklere sahip bir kullanıcı ve /var/wwwuygun izinlere sahip bir dizin olduğundan emin olmayı içerebilir .) Bunun tersine, X önceden Y'ye bağlıysa , Y bile önce Y kurulmalı ve (genellikle) tam olarak yapılandırılmalıdır yüklü .

Daha fazla bilgi için Debian Politika El Kitabında Bölüm 7.2'ye bakınız. Burada en alakalı iki bölümü teklif ediyorum, ancak bu bölümde (ve daha genel olarak 7. bölümde) bağımlılıkların nasıl çalıştığını aydınlatmaya yardımcı olan başka bilgiler var.


Depends

Bu mutlak bir bağımlılık ilan eder. DependsAlanında listelenen tüm paketler doğru şekilde yapılandırılmadıkça (yukarıda açıklandığı gibi dairesel bir bağımlılık yoksa) bir paket yapılandırılmayacaktır.

DependsBağlı on paket halinde işlevselliği önemli miktarda temin etmek üzere bağlı olarak paket için gerekli olan alan kullanılmalıdır.

DependsEğer alan aynı zamanda kullanılması gerektiğini postinstya da prermkomut gerektiren bağlıydı paketiyle paketlenmemiş veya çalıştırmak için yapılandırılmış olması. Postinst yapılandırması durumunda, bağlı paketler önce açılacak ve yapılandırılacaktır. (Her iki paket de bir bağımlılık döngüsünde yer alıyorsa, bu beklendiği gibi çalışmayabilir; birkaç paragraf önceki açıklamaya bakın.) Paket eylemleri prermveya başka postinsteylemler durumunda , paket bağımlılıkları normalde en azından paketten çıkarılabilir, ancak yalnızca Bağımlılığın önceki bir sürümü başarısız olursa "Yarı Yüklendi".

Son olarak, paket kaldırıldıktan sonra komut dosyasının Dependsbağımlı pakete postrmtamamen temizlenmesi gerekiyorsa alan kullanılmalıdır. postrmÇalıştırıldığında paket bağımlılıklarının kullanılabilir olacağının garantisi yoktur , ancak paket bağımlılık beyan ettiğinde (özellikle de) bağımlı paketin kullanılabilir olma olasılığı daha yüksektir postrm remove. Bu postrmbağımlılık yoksa, komut dosyasının bağımlılık gerektiren eylemleri atlaması gerekir.


Pre-Depends

Bu alan şöyledir Depends, ancak dpkgön bağımlılığı bildiren paketin kurulumuna başlamadan önce adı geçen paketlerin kurulumunu da aşağıdaki gibi yapmaya zorlar :

Bir ön bağımlılık beyan eden bir paket olabilir üzereyken çözdükten ön bağımlılığı bağlı paketiyle ya da tam olarak yapılandırılırsa, tatmin, olabilir ya da, eğer bağlı paket (ler), sadece çözdükten veya "yarıda olan -Configured "durumu, geçmişte bir noktada doğru şekilde yapılandırılmış olmaları koşuluyla (ve o zamandan beri kaldırılmamış veya kısmen kaldırılmamışsa). Bu durumda, hem önceden yapılandırılmış hem de şu anda açılmış veya "Yarı Yapılandırılmış" sürümler, Pre-Dependsalandaki tüm sürüm maddelerini karşılamalıdır .

Ön bağımlılık bildiren paket yapılandırılmak üzereyken , ön bağımlılık normal kabul edilir Depends. Yalnızca bağımlı paket doğru bir şekilde yapılandırıldıysa tatmin olmuş sayılacaktır. Ancak, aksine Depends, Pre-Dependsdairesel bağımlılıkların kırılmasına izin vermez. Onurlandırmaya çalışırken dairesel bir bağımlılıkla karşılaşılırsa Pre-Depends, kurulum iptal edilir.

Pre-Dependspreinstkomut dosyası belirtilen pakete bağlıysa da gereklidir . Mümkünse bu durumdan kaçınmak en iyisidir.

Pre-Depends tercihen, yalnızca erken yükseltme veya kurulum, sistemin devam eden herhangi bir yükseltmeye devam etme yeteneğini engelleyecek paketler tarafından kullanılmalıdır.

Bu Pre-Depends, debian-develposta listesinde tartışılmadan ve bununla ilgili bir uzlaşmaya varılmadan önce bir paket için giriş belirtmemelisiniz . Bkz Bağımlılıkları Bölüm 3.5 .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.