Kaynak kodunu alarak bir program yükledim ve ardından `sudo make install`; apt-get 'hakkında nasıl bilgi sahibi olunur?


46

Program yükledim (örneğin, onu çağır progA) kaynak kodunu kullanarak ve sonra da arayarak sudo make installve sudo ldconfig.

Ancak, apt-getnotu almamış gibi görünüyor , çünkü yükleme yaparken progB, bağlı olan progA, apt-getaynı zamanda yüklememi önerir progA. Neden bu ve ne yapabilirim?


Sanırım siz de progBmanuel olarak kurmanız gerekiyor ...
Parto

11
Oluşturduğunuz 'özel' sürümün paketle aynı olduğu, yani bir bağımlılık olduğu varsayılamaz. Kısayol (önerilmez), gerçek paketi yüklemek ve ardından 'özel' durumunuzla birlikte ikili dosyanın üzerine yazmaktır. Belirli olmadığınız için başka tavsiye veremem.
david6

6
Sadece bunu yapma. Paket yönetiminiz tarafından yönetilen yazılımı daima, derlediğiniz yazılımdan kesinlikle ayrı tutun.
Reinier Post

Yanıtlar:


56

TL; DR checkinstall senin arkadaşın ;)

sudo apt-get install checkinstall

sudo make installPaket yöneticinizle bir kurulumdan sonra bu kurulum hakkında kesinlikle hiçbir şey bilmiyor. Ancak, Ubuntu depolarında veya PPA'da aynı adı taşıyan bir paket hakkında her şeyi bilir.

Yerine sudo checkinstallkullanın sudo make installve paket yöneticinizin bu sürümü doğru bağımlılık olarak kabul ettiğinden emin olmak için depodaki sürüm olarak daha yüksek bir sürüm kullanın ProgB.


Daha fazla bilgi:

checkinstallmake installBir paketin nasıl oluşturulacağını bulmak için komutun ne yapacağını takip ettiği için gerçekten çok zekice .

Bu, kullanarak bir program yüklerseniz make install, ancak günahlarınız için tövbe etmek istiyorsanız, tek yapmanız gereken şey şu sudo checkinstall -D make installkomuttur:

  1. make installne yaptığını anlamak için takip edin

  2. copy-cat make install, * .deb paket formu dışında

  3. Paketten yükleyin (tam olarak make installbelirtildiği gibi, nokta 1'de belirtildiği gibi) da apt-getbunun hakkında bilgi verin ve bu nedenle tüm dosyaları make install, YES'i make installana dizine koyduğunuz dosyaları dahil etmeyi seçtiğiniz sürece tam olarak nereye koyduğunu yazın. Pakette - checkinstallişlem sırasında birkaç seçenek seçmenize izin verecektir (açıkçası, seçim orada olduğundan, duruma göre egzersiz yapabilirsiniz)

Bonus: AyrıcaprogAmake installmake uninstall , şu checkinstallana kadar açıklanan süreci takip ederek destek almayan destekleri kullanarak kurulan bir paketi kaldırabilir ( tekrar arayabilirsin ) ve sonra basitçe:

dpkg -r progA

18
Vay checkinstall- DÜNYANIN bunu bilmesi gerekiyor!

Cevabınıza, dün uygulamaya çalıştığınıza ve bu meta sorusundaki önerilere dayanarak daha fazla ayrıntı ekledim - lütfen daha fazla düzenleme yapmaktan çekinmeyin!

Hangi ayrıntıları kastediyorsun?
AB

Oh, sanırım henüz görünmediler, çünkü düzenleme incelemesinde - meta sorunun bağlantısını tıklarsanız, ne olduklarını göreceksiniz (aslen onları soru gövdesine koymuştum, ama öneri, onları kabul edilen cevap organına koymam gerektiği idi).

Paket dokümantasyon dizini. / Doc-pak mevcut değil. Varsayılan bir paket belge grubu oluşturmalı mıyım?
n8chz

13

Üç seçenek:

  1. Şunun için sahte bir paket oluşturmak progA: Takılı bir paket versiyonunu nasıl sahte? ( TeXlive için kapsamlı bir örnek var) .

  2. için bir seçenek hazırlayın progA, eğer bir checkinstallseçeneği varsa daha kolay : apt bağımlılıklarını nasıl kandırabilirim?

  3. progBKaynaklardan da derleyin .


1
4. Derlediğiniz sürümü kaldırın ve sürümü progAyükleyin apt-get. 5. apt-getPaketi derlenmiş versiyona kurun ve en iyisini umalım.
jwodder,

1

Ben kullanarak öneriyoruz uupdategelen devscriptsve orijinal yapı önce olduğu gibi paketi oluşturmak.

Gerekli paketleri yükle

$ sudo apt-get install build-essential devscripts

Eski paketi resmi depodan ( MediaWikiörnek olarak kullanacaktır ) ve yeni katran topunu yukarı akıştan indirin.

$ mkdir ~/Downloads/mediawiki
$ cd ~/Downloads/mediawiki
$ apt-get source mediawiki
$ wget https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz

Giriş uupdateyukarı tar-ball ve eskiden yeni bir kaynak klasör oluşturmak için çalıştırındebian/control

$ cd mediawiki-1.19.14+dfsg   # depends on your Ubuntu version
$ uupdate ../mediawiki-1.26.0.tar.gz 1.26.0
$ cd ../mediawiki-1.26.0

Şimdi debian/controletc dosyalarında değişiklik yapmanız gerekip gerekmediğini kontrol etmelisiniz . İşiniz bittiğinde deb paketini oluşturabilir ve yükleyebilirsiniz.

$ dpkg-buildpackage -us -uc
$ cd ..
$ sudo dpkg -i *.deb
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.