Mục đích của lệnh 'install' là gì?


49

Tôi đã thấy installlệnh được sử dụng trong rất nhiều Makefiles, và sự tồn tại và sử dụng của nó khá khó hiểu. Từ các trang web, nó có vẻ như là một sản phẩm cpcó ít tính năng hơn, nhưng tôi cho rằng nó sẽ không được sử dụng trừ khi nó có một số lợi thế hơn cp. Thỏa thuận là gì?

Câu trả lời:


50

installkhông chỉ sao chép các tập tin mà còn thay đổi quyền sở hữu và quyền của nó và tùy ý xóa các biểu tượng gỡ lỗi khỏi các tệp thực thi. Nó kết hợp cpvới chown, chmodstrip. Đây là một công cụ cấp cao thuận tiện để thực hiện một chuỗi các nhiệm vụ cơ bản chung.

Một lợi thế của installhơn cpcho việc cài đặt thực thi là nếu mục tiêu đã tồn tại, nó loại bỏ các tập tin mục tiêu và tạo ra một cái mới. Điều này được loại bỏ bất kỳ thuộc tính hiện tại nào như danh sách và khả năng kiểm soát truy cập, có thể được xem là cả mặt trái và mặt trái. Khi cập nhật các tệp thực thi, nếu có các phiên bản đang chạy của tệp thực thi này, chúng sẽ tiếp tục chạy không bị ảnh hưởng. Ngược lại, cpcập nhật tệp tại chỗ nếu có. Trên hầu hết các biến thể Unix, điều này không thành công với lỗi EBUSY¹ nếu mục tiêu là một tệp thực thi đang chạy; trên một số nó có thể khiến mục tiêu bị sập vì nó tải các phần mã một cách linh hoạt và sửa đổi tệp khiến cho mã vô nghĩa được tải.

installlà một lệnh BSD (được thêm vào 4.2BSD , tức là vào đầu những năm 1980). Nó đã không được POSIX chấp nhận.

¹ Tập tin văn bản bận rộn. Trong bối cảnh này, tập tin văn bản của người Viking có nghĩa là tập tin thực thi nhị phân của tập tin, vì lý do lịch sử tối nghĩa .


Lưu ý quan trọng (theo như tôi có thể hiểu) là nó cũng kết hợp rmcùng với cp. Điều này có nghĩa là nó có thể ghi đè lên các tệp đang được sử dụng bằng cách hủy liên kết chúng ( rm) trước. cpmột mình sẽ cho một lỗi.
code_fodder

10

Nó cung cấp một cách chuẩn hóa để thao túng quyền sở hữu và quyền của tệp hoặc thư mục trong khi sao chép tệp hoặc tạo thư mục, trong một lệnh duy nhất.


9
Nó không phải là nguyên tử. Nguyên tử có nghĩa là không có trạng thái trung gian hiển thị cho các quá trình khác. installthực hiện một bản sao theo sau là chown và chmod, tất cả các tòa nhà riêng biệt và không sử dụng đổi tên thành địa điểm (ít nhất là trong coreutils 8.13 phiên bản GNU không). Nếu bạn cho rằng tất cả xảy ra nguyên tử, bạn có thể nhận được một bất ngờ khó chịu.

3

Với installlệnh chúng ta có thể Sao chép tệp với quyền mong muốn

Ví dụ chủ yếu sử dụng trong khi thiết lập ldap

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

Điều này giúp chúng tôi tiết kiệm chown ldap. /var/lib/ldap/DB_CONFIG, nếu bạn đã sao chép bằng cách sử dụng cpthì bạn cũng cần phải chowntrong kịch bản này


1

Xem trang người đàn ông cho install:

$ man install

đoạn trích

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.

Những thứ hữu ích khác như cài đặt với quyền sở hữu cụ thể, quyền và bảo quản dấu thời gian của tệp gốc cũng có thể đạt được thông qua việc sử dụng 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

Người giới thiệu


4
Như tôi đã nói trong câu hỏi, tôi đọc trang chính; nó làm tôi không sáng tỏ về những gì nó bổ sung cho chức năng của cp.
azernik

slm đã làm nổi bật chức năng cụ thể làm cho hai bên tách biệt nhau: bạn có thể đặt chủ sở hữu, nhóm và chế độ cụ thể cho tệp đích install, thay vì chỉ bảo toàn các quyền hiện có như vớicp
Joshua Miller
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.