'İnstall' komutunun amacı nedir?


49

installBir çok Makefiles'de kullanılan komutu gördüm ve varlığı ve kullanımı kafa karıştırıcı. Man sayfalarından, cpdaha az özellik içeren bir knock up gibi görünüyor , ancak bir avantajı olmadıkça kullanılmayacağını tahmin ediyorum cp. Anlaşma ne?

Yanıtlar:


50

installsadece dosyaları kopyalamakla kalmaz aynı zamanda sahipliğini ve izinlerini de değiştirir ve isteğe bağlı olarak hata ayıklama sembollerini çalıştırılabilir dosyalardan kaldırır. O birleştirir cpile chown, chmodve strip. Ortak bir temel görevler dizisi gerçekleştiren daha uygun bir üst düzey araçtır.

Bir avantajı installover cpyürütülebilir yüklemek için hedef zaten varsa, hedef dosyayı kaldırır ve yenisini yaratmasıdır. Bu, hem yukarı hem de aşağı olarak görülebilen erişim kontrol listeleri ve yetenekleri gibi mevcut özelliklerden kurtulur. Yürütülebilir dosyaları güncellerken, bu yürütülebilir dosyanın çalışan örneklerini varsa, etkilenmeden çalışmaya devam eder. Buna karşılık, cpvarsa, dosyayı yerinde günceller. Çoğu Unix türevinde, hedef çalışan bir yürütülebilir dosya ise, EBUSY¹ hatasıyla başarısız olur; bazılarında hedefin çökmesine neden olabilir çünkü kod bölümlerini dinamik olarak yükler ve dosyayı değiştirmek saçma bir kodun yüklenmesine neden olur.

installbir BSD komutudur ( 4.2BSD'de , yani 1980'lerin başında eklenmiştir ). POSIX tarafından kabul edilmemiştir.

¹ “Metin dosyası meşgul”. Bu bağlamda, “metin dosyası”, belirsiz tarihsel nedenlerden dolayı “ikili çalıştırılabilir dosya” anlamına gelir .


Önemli not (bildiğim kadarıyla bunu anlayabileceği gibi) aynı zamanda bir araya getirmesidir rmile birlikte cp. Bu, kullanımda olan dosyaların üzerine rmilk önce ( ) bağlantısını kaldırarak üzerine yazabileceği anlamına gelir . cptek başına bir hata verirdi.
code_fodder 4:18

10

Dosyayı kopyalarken veya dizini oluştururken tek bir komutla bir dosyanın veya yöneticinin sahipliğini ve izinlerini değiştirmede standart bir yol sağlar.


9
Atomik değil. Atomik, diğer işlemlerde görülebilen ara durum olmadığı anlamına gelir. installChown ve chmod tarafından takip edilen bir kopyasını yapar, tüm ayrı sistemlere çağrı yapar ve yerine yeniden adlandırma kullanılmaz (en azından GNU sürümünün kullandığı coreutils 8.13'ten beri). Her şeyin atomik olarak gerçekleştiğini varsayarsanız, kötü bir sürprizle karşılaşabilirsiniz.

3

İle installkomuta biz arzu izinleriyle dosya kopyalama yapabilirsiniz

Ldap'ı kurarken çoğunlukla kullanılan örnek

install -o ldap -g ldap /etc/openldap/DB_CONFIG_EXAMPLE  /var/lib/ldap/DB_CONFIG

Bu işlem bizi kurtarıyor chown ldap. /var/lib/ldap/DB_CONFIG, eğer kullanıyorsanız kopyalarsanız , bu senaryoda cpda yapmanız gerekir.chown


1

İçin man sayfasına bakınız install:

$ man install

alıntı

SYNOPSIS
       install [OPTION]... [-T] SOURCE DEST
       install [OPTION]... SOURCE... DIRECTORY
       install [OPTION]... -t DIRECTORY SOURCE...
       install [OPTION]... -d DIRECTORY...


DESCRIPTION
       This  install  program  copies  files  (often just compiled) into 
       destination locations you choose.  If you want to download and
       install a ready-to-use package on a GNU/Linux system, you should instead 
       be using a package manager like yum(1) or apt-get(1).

       In the first three forms, copy SOURCE to DEST or multiple SOURCE(s) to 
       the existing DIRECTORY, while  setting  permission  modes and 
       owner/group.  In the 4th form, create all components of the given 
       DIRECTORY(ies).

       Mandatory arguments to long options are mandatory for short options too.

Belirli mülkiyete sahip olmak, izinler koymak ve orijinal dosyaların zaman damgalarını korumak gibi diğer faydalı şeyler de kullanılarak sağlanabilir install.

   -g, --group=GROUP
          set group ownership, instead of process' current group

   -m, --mode=MODE
          set permission mode (as in chmod), instead of rwxr-xr-x

   -o, --owner=OWNER
          set ownership (super-user only)

   -p, --preserve-timestamps
          apply access/modification times of SOURCE files to corresponding 
          destination files

Referanslar


4
Soruda dediğim gibi ana sayfayı okudum; Bunun, cp'nin işlevselliğine ne kattığını aydınlatmamı sağladı.
azernik

slm, ikisini birbirinden ayıran özel işlevselliği vurguladı: installsadece mevcut izinleri korumak yerine hedef dosya için belirli bir sahibi, grubu ve modu ayarlayabilirsinizcp
Joshua Miller
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.