安装命令 - install
说明
- Linux C/C++项目构建过程,有个必要的步骤“install”,在Makefile中时常会有一个专门的recipe来做这件事。
- 安装流程需要做以下类型事情:
- 文件的拷贝(最基本)
- 目录结构的创建
- 程序的strip
- 文件的属性,权限,ower等设置
- …
实现
- 对于初学者可以会采用cp、mkdir、strip、chmod等基础命令组合来完成项目的安装工作,但是在稍大项目中,你会发现使用cp等基础命令会需要写很多相似甚至重复的代码以及完成一项工作需要使用多个基础命令,这时可以采用一些更高级的命令,例如:install。
install
- install是专门的安装命令, 常见用法如下:
用法:install [选项]... [-T] 源文件 目标文件或:install [选项]... 源文件... 目录或:install [选项]... -t 目录 源文件...或:install [选项]... -d 目录...--backup[=CONTROL] 为每个已存在的文件创建备份-b 类似--backup 但不接受参数-c (忽略)-C, --compare 比较每组源文件和目标文件,在一些情况下不修改目标文件-d, --directory 将所有参数视为目录名称;为指定的目录创建所有组件-D create all leading components of DEST except the last,or all components of --target-directory,then copy SOURCE to DEST-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 修改源文件的访问/修改时间以与目标文件保持一致-s, --strip 拆解符号表--strip-program=程序 指定拆解二进制文件的程序-S, --suffix=后缀 覆盖常用备份文件后缀-t, --target-directory=目录 将源文件所有参数复制到指定目录-T, --no-target-directory 将目标文件视为普通文件-v, --verbose 创建目录时显示其名称--preserve-context preserve SELinux security context-Z set SELinux security context of destinationfile to default type--context[=CTX] like -Z, or if CTX is specified then set theSELinux or SMACK security context to CTX--help 显示此帮助信息并退出--version 显示版本信息并退出* 详细请看help信息
- 创建目录结构
install [选项]... -d 目录...
* 递归创建不存在的目录
install -d install/lib install/www
# 类似于 mkdir -p install/lib install/www
- 创建目录结构同时拷贝文件
install -D libxxxx.so install/lib/libxxxx.so
# 类似于 mkdir -p install/lib/ && cp libxxxx.so install/lib/libxxxx.so
- 拷贝程序的同时进行strip
install -s --strip-program=strip xxx xxx
- 设置文件权限
install -m 0755 targets /usr/bin
遇到问题
- 暂时未找到方法处理动态库的软链接文件,拷贝后变成了实体文件。
install 的优点
- 如果目标文件已存在,cp会先清空文件后往里写入新文件,而install则会先删除掉原先的文件然后写入新文件,如果往正在 使用的文件中写入内容,cp可能会导致一些问题,例如:写入正在执行的文件可能会失败,往已经在持续写入的文件句柄中写入新文件会产生错误的文件。而使用 install先删除后写入(会生成新的文件句柄,新老文件句柄不同,相当于操作的不同文件)的方式去安装就能避免这些问题了,例如:使用cp覆盖一个正在运行的程序文件,经常会提示 "text busy"。
- install在拷贝的同时可以设置目标文件的权限,不像使用cp方式拷贝文件仅仅拷贝文件,容易出现目标文件权限问题,例如:原始文件没有执行权限,cp后也没有执行权限,而install -m可以在拷贝的同时设置目标文件的权限。
安装命令 - install相关推荐
- 安装命令:pip install xlrd ,pandas操作Excel学习笔记__7000
pandas操作Excel学习笔记_loc和iloc_7000 pandas操作Excel学习笔记__7000 1.安装环境:pandas需要处理Excel的模块xlrd,所以需要提前安装xlrd.不 ...
- mysql的install命令是什么_mysql 安装命令
mysqld install MySQL --defaults-file="D:\worksoft\mysql-5.7.17-winx64\my-default.ini" D:\w ...
- 笔记,提醒,pytorch安装命令(conda)
答案很简单,对很多人来讲,应该是常识 conda install torchvision -c pytorch 之前一直比较偷懒,安装直接使用命令 conda install torchvision ...
- QIIME 2教程. 01简介和安装 Introduction Install(2020.11开始更新)
写在前面 QIIME是微生物组领域最广泛使用的分析流程,10年来引用20000+次,2019年Nature杂志评为近70年来人体菌群研究的25个里程碑事件--里程碑16:生物信息学工具助力菌群测序数据 ...
- QIIME 2用户文档. 01简介和安装 Introduction Install(2020.2)
写在前面 QIIME是微生物组领域最广泛使用的分析流程,10年来引用近20000次,2019年Nature杂志评为近70年来人体菌群研究的25个里程碑事件--里程碑16:生物信息学工具助力菌群测序数据 ...
- linux常用安装命令集锦
本博客仅作为笔记方便自己查阅 1.安装rzsz #安装命令 $ yum install lrzsz #上传命令 $ rz #下载命令 $ sz filename 2. 切换用户 ## 切换到root用 ...
- Maven命令 install 和 package的区别
Maven命令 install 和 package的区别 Maven是目前十分流行的项目构建工具以及依赖解决工具,其提供的常用指令中有两个很容易引起使用者的疑惑, 那就是 install 和 pack ...
- jetson 安装atp-get install qt时出现 unable to locate 或者dependencies unmet的报错
问题 jetson nano上安装qt时,使用如下命令 sudo apt-get install qtbase5-dev 出现报错 Some packages could not be install ...
- linux通过光盘安装命令包,RHEL5通过光盘配置本地yum仓库及命令详解
Yum介绍 Yum全称为 Yellow dog Updater, Modified(软件包管理器)我们开玩笑时也称"黄狗" 主要功能是更方便的添加/删除/更新RPM包,yum能检查 ...
最新文章
- ICRA2021|嵌入式系统的鲁棒单目视觉惯性深度补全算法
- APUE(第九章)进程关系
- Flutter开发之ListView使用第三方flutter_refresh加载更多(37)
- 通过python实现linux切换用户_Python实现在Linux系统下更改当前进程运行用户
- 阿里巴巴Java开发手册中的DO、DTO、BO、AO、VO、POJO定义
- 除了PS,还有它可以轻松实现图像处理!
- [Bzoj4182]Shopping(点分治)(树上背包)(单调队列优化多重背包)
- (转)MyBatis框架的学习(二)——MyBatis架构与入门
- hnu2021小学期程序设计 电话号码
- mysql 查找相似数据_局部敏感哈希LSH(Locality-Sensitive Hashing)——海量数据相似性查找技术...
- 我想批量删除专题内最古老的100篇文章
- 一、tomcat9解压后运行startup.bat闪退
- iOS 使用FMDB进行数据库操作
- Windows电脑上最好的3个txt阅读器
- 电脑开热点手机无法连接,无法启用 Internet 连接共享.为 LAN 连接配置的 IP 地址需要使用自动 IP 寻址.
- python - 1024 Spider
- 现在骨传导耳机什么牌子最好,最受欢迎的五款骨传导耳机推荐
- django_filters实现数据过滤
- 如何进入华为P40 debug 模式/开发者选项模式
- 计算机检测不到双显示器,win10装双屏检测不到另一显示器怎么解决