Linux'ta eşyaları nereye koyacağımı nasıl bilebilirim?


58

Windows'ta bir şey yüklemek bir düğmeyi tıklatır. Fakat ne zaman APT'de bulunmayan linux'a bir şeyler yüklemeye çalışırsam kafam çok karışıyor.

Sıkıştırılmış bir klasör indiriyorsan ne olacak? Şanslıysanız, bir README vardır, eğer şanslıysanız size yardımcı olabilecek bazı belgelere atıfta bulunabilirsiniz.

APT'de bulunmayan uzantıları ve uygulamaları "yüklerken" sihir numarası nedir?

Linux'u seviyorum ama bu sorun beni her gün rahatsız ediyor.



8
Konu dışı. Ancak basit hile, paket yönetim sisteminin dışına hiçbir şey yüklememek.
Let_Me_Be

1
APT'den değilse, muhtemelen sadece kurabileceğiniz bir şey değildir - onu derlemeniz ve kendiniz kurmanız gerekir. Ve sonra APT tabanlı paketlerle karıştırılmaya başlayacaktır. İhtiyacınız olan her şeye APT / .debs bulmak yalnızca basittir.
Rup

2
@Rup Plus bir yazılımın deb paketi yoksa muhtemelen yüklememelisiniz, çünkü bu kullanım ya kullanımdan kaldırılmış ya da kanama kenarı ya da apt tabanlı dağıtımlarla uyumsuzdur.
Let_Me_Be

3
Yazılım oluşturma / yükleme konusunda yeterli tecrübe edindikten sonra, sadece kendi paketlerinizi oluşturabilirsiniz. Lütfen yukarı akış sağlayıcısına geri bildirim verdiğinizden emin olun!
jsbillings

Yanıtlar:


32

O itaat bir yazılım ise Dosya Sistemi Hiyerarşi Standart sen yerleştirmek gerekenden daha /usr/localuygun alt dizini (gibi bin, lib, share, ...).

Diğer yazılımlar kendi dizinlerine yerleştirilmelidir /opt. Ardından PATHdeğişkeninizi bindizini veya çalıştırılabilirleri tutan dizini içerecek şekilde ayarlayın veya sembolik bağlantılar oluşturun /usr/local/bin.


1
İyi cevap, gerçekten, ama bunu her gün yapmak zorunda olmamalı.
phunehehe

1
@phunehehe - Her gün yapmak zorunda mısın?
Rob

3
Hayır, OP’nin “bu problem beni her gün rahatsız ediyor” demiştim.
phunehehe

1
FHS'ye wikipedia bağlantısına ek olarak, bunu da okuyun: pathname.com/fhs/pub/fhs-2.3.html . "Amaç" yazan bölümü okuyun.
yasouser

27

Bu sorunun basit bir cevabı yok, ancak size nasıl çalıştığı hakkında genel bir taslak verebilirim:

Çoğu Linux yazılımı, kaynak kod formundaki yazarlar ("yukarı akış") tarafından sağlanır. Bu, kendi platformları ve sistem konfigürasyonları için bir derleyiciye sahip olan herkesin kaynak kodunu indirip kendi derlemelerini sağlar. Ne yazık ki, sizin için birçok program diğer programlar ve yazılım kütüphaneleri (bağımlılıklar) tarafından sağlanan fonksiyonlara dayanmaktadır.

Windows yazılımı genellikle önceden derlenmiş biçimde gelir. Bu, tüm Windows bilgisayarları için genel bir çalıştırılabilir dosya olduğu anlamına gelir ve bağımlılıklar genellikle bununla birlikte yükleme paketinde gelir.

Linux dağıtımları kaynak kodunu alır, sizin için derler ve bir paket olarak sunar. Paket, bağımlılıkları içermez, ancak bunlara atıfta bulunur ve paket sistemini de onları yüklemeye zorlar (bu bazen muhtemelen kendiniz zaten deneyimlediğiniz karışıklıklara yol açabilir).

Önceden derlenmiş bir paket yoksa, her zaman kaynak kodu indirebilir ve kendiniz derleyebilirsiniz. Çoğu zaman, aşağıdaki işe yarayacak:

./configure
make
(sudo) make install (or sudo checkinstall)

./Configure satırı, derleme işleminin aşamasını belirler (ve bağımlılıklar karşılanmazsa hataları tükürür). Make satırı, programın tüm bölümlerini derleyen bir script olan Makefile'ı çalıştırır.

Geleneksel olarak, yazılımı kurmak için make install komutunu kullanırsınız. Bu genellikle çalıştırılabilir dosyaları / usr / local / bin dizinine yerleştirir.

Apt kullandığınızdan, checkinstall almanızı tavsiye ederim. Make install yerine kullanabilirsiniz ve sizin için bir .deb paketi oluşturur. Bu, daha sonra yazılımı temiz bir şekilde kaldırmayı çok daha kolaylaştırır.

Diğer derleme sistemlerinde bir avuç olduğuna dikkat edin, örneğin cmake; ve bazı yazılımlar önceden derlenmiş fakat paketlenmemiş olarak gelir (bu durumda, sıkıştırılmış klasörden başlatabilirsiniz); ve bazı yazılımlar, kendiniz çalıştırmak zorunda olduğunuz bir komut dosyası koleksiyonu olarak gelir. SVN'den yeni kodlar bazen yapılandırma komut dosyaları olmadan gelir, bu nedenle ilk önce autoconf toolchain komutunu çalıştırmanız gerekir ... etc, etc ... kuralda çok fazla istisna olduğunu görürsünüz, ancak küçük bir tecrübeyle bu gizemli indirmelerin çoğuyla ne yapacağınızı söyleyin. Configure-Make-Checkinstall iyi bir başlangıçtır.

PS. Kendinizi nasıl programlayacağınızı öğrenmek için bir ya da iki hafta geçirin ve işler çok netleşecek :-)

PPS. Linux yazılım yazarlarının neden kaynak kod yerine önceden derlenmiş paketler sağlamadığını merak edebilirsiniz. Bazen yaparlar. Ancak farklı platformlar ve Linux dağıtımlarının hepsinin kendi paket formatları ve dosya sistemi kuralları vardır, bu nedenle bir geliştirici olarak olası her yapılandırma için paketler sağlamanız gerekir - ki bu bir acıdır. Ubuntu paketleri genellikle bulması en kolay olanıdır - bir PPA'nın ne olduğunu ve nasıl çalıştığını öğrenmelisiniz!


1
"PS. Kendinizi nasıl programlayacağınızı öğrenmek için bir ya da iki hafta geçirin ve işler çok netleşecek :-)". Aksi takdirde mükemmel bir cevapta Kötü tavsiye. İnsanlardan linux'u anlamaları için program yapmalarını istemek, uçakları tamir eden havayolu yolcuları gibidir.
apoorv020

programlama yerine sadece kendi linux'unuzu
jsolarski

@apoorv, alınan nokta. :)
sebastian_k

4

Checkinstall'a göz atmalısınız . Onun yerine

./configure
make
sudo make install

siz yapıyorsunuz

./configure
make
sudo make checkinstall

ve bu paketi apt ile yüklediğiniz gibi yönetebileceksiniz.


Maalesef, sebastian_k'ın zaten checkinstall'dan bahsettiğini farkettim ... Ah peki!
mgalgs

1

Bunun çok kafa karıştırıcı, mantıklı bir nedeni var (ayrıca sinir bozucu bir eser sebebi var) ...

Unix, çok kullanıcılı olma geçmişine sahiptir ve çoğu kullanıcının belirli erişime sahip oldukları alanların dışındaki uygulamaları yükleme erişimine sahip değildir.

Dolayısıyla teori, ana dizininizde bir şey inşa edeceğiniz, sonra da üzerinde kontrol sahibi olduğunuz bir alana (kendi proje alanınız ya da paylaşılan bir alana) kopyalayacağınız olacaktır.

Windows PC'ler genellikle tek kullanıcılı sistemlerdir ve bu kısıtlamaya sahip değillerdir, ne olursa olsun her şey Program Dosyalarına girer.

Sonra, aptal, can sıkıcı bir gerçek var ki, Unix’in yeni bir sürümü çıktığında, yaratıcılar konum değiştirmeyi gerekli hissetmişlerdi; Bu size aynı amaca hizmet eden bir dizi bağlantılı dizin verir.

Başlangıç ​​sistemi daha da kötü.

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.