“Make install” ve “sudo make install” arasındaki fark


15

Bazen bazı klasörlere yazarken hata make installveren kullanım sorunları yaşıyorum permission denied. İçgüdüsel olarak kullanıyorum sudo make install. Bu ek sorunlar getirecek mi?

Debian Etch kullanıyorum.

Yanıtlar:


16

Sistem dizinlerine yerel kurulum yapmaktan kaçının. Sistem dizinleri, örneğin /usr, paket yönetim sisteminin kullanması için ayrılmıştır. Tanım olarak, bunu yapıyorsanız make install, yerel bir kurulum yaptığınız anlamına gelir ve bunu yapmanız gerekiyorsa sudo make install, yazdığınız her yerde izniniz olmadığı anlamına gelir.

Bu nedenle, ile ilgili hata hataları alıyorsanız make install, sistem dizinlerine kurmaya çalışıp çalışmadığınızı kontrol edin ve /usr/localbunun yerine veya benzeri bir yere yükleyin . /usr/localyerel kurulumlar için ayrılmıştır. Yazmak için kendinize izin vermeniz gerekebilir /usr/local, ancak bu genellikle kolayca yapılır. Debian'da bu, kendinizi staffgruba ekleyerek yapılabilir . Daha da iyisi, bir ikili paket bulun veya oluşturun ve bunun yerine yükleyin. Bu şekilde kurulu paketleri kolayca takip edebilir ve paket yönetiminin diğer avantajlarını elde edebilirsiniz.

Paket yönetim sisteminin /usr/localFHS uyarınca tersine kurulmadığını unutmayın. Genel bir bakış için Debian Politika Kılavuzu- Dosya sistemi hiyerarşisinde Bölüm 9.1'e bakınız .


3

İşte komutların temel bir özeti soru:

  • sudo- komutu root olarak çalıştır
  • kaynaktan oluşturmak için bir komut dosyası oluştur

Sudo komutu root olarak ilettiğiniz komutu çalıştırdığından, make komutunun süper kullanıcı ayrıcalıklarına sahip olduğu anlamına gelir. Başka bir deyişle, makefile kötü amaçlıysa veya çağırabileceği komut dosyalarından herhangi biri kötü amaçlıysa, sisteminizin güvenliğini aşabilir.

Kısacası, yazılıma güvenmiyorsanız, yüklemeyin. Yazılıma güveniyorsanız, root olarak çalışmak hiçbir şeye zarar vermemelidir.

Not:

sudo make installaynıdır su; make installçoğu durumda.


3
"Çoğu durumda" ile bitirme hakkınız vardı. İşte bir köşe davası.
ederag

3

Yukarıda yanıtlandığı gibi, sudo make installdosyaları kullanıcı olarak size salt okunur olan dizinlere yüklemenizi sağlar.

Tahmin edebileceğim sorun, daha sonraki bir tarihte programı kaldırmak veya yükseltmek isteyebileceğinizdir. Hala kaynak kodu dizin ağacınız make uninstallvarsa, o zaman sizin için programı kaldıracaktır, ancak diğer birçok tipik kullanıcı gibi, kaynak kodu dizin ağacını sildiyseniz, şansınız kalmaz. Programı bir paket yönetim sistemi kullanarak yüklemediğiniz için, programı bu şekilde kaldıramayabilirsiniz.

Bu tür programları kurmanın en iyi yolu, onları ana dizininize kurmak olabilir. Seçeneği geçirin --prefix=/home/<user>/<some>/<directory>için ./configure. Bu kullanmanızı sağlayacak make installyerine sudo make installberi /home/<user>/<some>/<directory>sizin tarafından yazılabilir olduğunu. Ayrıca kaldırma çok kolaydır.rm -rf /home/<user>/<some>/<directory>

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.