Bir .deb paketinin kurulumunun gerçekleştireceği işlemleri nasıl gösterebilirim?


33

Yükseltme nedeniyle bir paketle ilişkili komut dosyalarını / tetikleyicileri görüntülemek, böylece örneğin web sunucusunun yeniden başlatılmasına neden olup olmayacağını söyleyebilmeyi istiyorum. Bana bunu göstermek için bir yetenek seçeneği bulamıyorum (veya apt / dpkg); Elimden gelenin en iyisini içeriği (dosyalar). Bunu gösterecek özledim simule / verbose / content anahtarlarının bir kombinasyonu var mı?

Ek olarak, bir paket bir şeyin olmasına neden oluyorsa - bir servisin yeniden başlatılması gibi - şu anda olmasını istemediğim bir şey varsa, paketi bazı komut dosyalarını veya tümünü çalıştırmadan yüklemek için bir yol var mı?


Bu neden oy kullandı? Bana mantıklı bir soru gibi geliyor (böyle bir şey yapmamıza rağmen normalde gerekli olmamalı).
sleske

1
Beni aşar. Hiçbir özellikle aşındırıcı yorum veya cevap yok, sadece rastgele aşağı oy verin. Sanki "normalde yapılmamalı" sanki "hiçbir koşulda asla yapılmamalı ve eğitim bile yapılmamalı" gibi. :(
Sam Brightman

Yanıtlar:


20

Kontrol dosyasını ve diğer bazı bilgileri yazdırabilir dpkg -I package.debveya dpkg -e package.debyalnızca kontrol bilgi dosyalarını çıkarmak için kullanabilirsiniz .

Ayrıca, dpkg'nin ne yapacağını görmek için kuru bir işlem yapabilirsiniz --dry-run:

dpkg --dry-run -i package.deb

Bu seçenekleri kaçırmış olmalıyım, teşekkürler. -Ben de fazla görünmüyorum - sadece ilk satır (interrobang) gibi görünüyor.
Sam Brightman

2
Not: Paket dosyasının yerel olarak erişilebilir olması gerekir. Önce 'yetenek indirme <packagename>' ile indirin.
Martijn Heemels 10:11

3
-E seçeneği DEBIAN, controldosyayla ve çalıştırılacak çeşitli komut dosyası dosyalarını içeren bir dizin oluşturur . postinstPaket başarıyla kurulduktan sonra yürütüleceği için genellikle çok ilginçtir.
dwurf

8

Hayır, bunu kullanarak yetenek yapmanın bir yolunu bilmiyorum.

Senaryolara doğrudan bakabilirsin; Yükseltme sırasında çalışan komut dosyaları pakette bulunur. Ar kullanarak deb paketini açın:

ar -x package.deb

Sonra bakın control.tar.gz, komut dosyalarını içerir.


Yetenek-bazı ayrıntı seçenekleri ile yetenek -s aslında tüm yükseltme için çalıştıracak komut dosyalarını gösterdi eğer daha iyi olurdu. Esasen istediğim şey buydu ama bence Mikael'in cevabı biraz daha basit.
Sam Brightman

2

Orada da --debugseçeneği dpkgin gibi,sudo dpkg --debug=72200 -i package.deb

Ayrıntılı çıktı için çeşitli seçenekler vardır ve bunlar birleştirilebilir.

Sen çalıştırarak mevcut tüm seçenekleri görebilirsiniz: dpkg --debug=help.

pi@kaldi:~ $ dpkg --debug=help
dpkg debugging option, --debug=<octal> or -D<octal>:

 Number  Ref. in source   Description
      1  general          Generally helpful progress information
      2  scripts          Invocation and status of maintainer scripts
     10  eachfile         Output for each file processed
    100  eachfiledetail   Lots of output for each file processed
     20  conff            Output for each configuration file
    200  conffdetail      Lots of output for each configuration file
     40  depcon           Dependencies and conflicts
    400  depcondetail     Lots of dependencies/conflicts output
  10000  triggers         Trigger activation and processing
  20000  triggersdetail   Lots of output regarding triggers
  40000  triggersstupid   Silly amounts of output regarding triggers
   1000  veryverbose      Lots of drivel about eg the dpkg/info directory
   2000  stupidlyverbose  Insane amounts of drivel

Debugging options can be mixed using bitwise-or.
Note that the meanings and values are subject to change.

Yine de kurulumu yine de yapacak, değil mi?
Sam Brightman

Evet,% 100 haklısın. Bu başka (geliştirme) bir durumda yapılmalıdır.
estibordo

1

Hayır, koruyucu bir komut dosyasının bir bölümünü çalıştıramazsınız, bunun gerçekleşmesi için kanca yoktur.

Senaryonun ne yapacağını sadece el ile inceleyerek görebilirsiniz - yine, hiçbir "kuru çalışma" size tam olarak ne yapacağını ve ne yapmayacağını söyleyemez, sadece "postayı bu argümanlarla çalıştıracağım".

Evreleme ve test ortamlarının sebepleri bunlar.


Tek bir komut dosyasının parçası değil, komut dizilerinin bir alt kümesini kastediyordum. Açık değilse üzgünüm. Ben sihir istemiyorum, senaryoyu ve argümanları bilmek, uygunsuz parçaları elle incelememe veya değiştirmeme izin veriyor.
Sam Brightman
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.