Linux 系统关于应该把程序安装在目录 /usr 还是目录 /usr/local 下的思考

对于一个以 LFS(Linux From Scratch 大意:自己做出来的 Linux) 为基础的系统来说,这是一个没有明确答案的问题。什么是 LFS?

在传统的 Unix 系统中,/usr 通常只包含系统发行时自带的程序,而 /usr/local 则是本地系统管理员用来自由添加程序的目录。这里有一条严厉而牢固的规则:除非在里面创建目录,否则 Unix 发行版不得使用 /usr/local。

对于 Linux 发行版,如 RedHat, Debian 等等,一个可能的规定是:/usr 目录只能由发行版的软件包管理工具负责管理,而对 /usr/local 却没有这样做。正是因为采用这种方式,软件包管理工具的数据库才能知道在 /usr 目录内的每一个文件。

LFS 的用户是自己建立系统的,所以能自己决定系统文件和用户文件的放置方式。因此,应该按照有利于系统管理员使用的方式作出选择。这里有几个把文件安装到 /usr 或者是 /usr/local 的理由:

如果网络上的计算机都运行 LFS 或者是混合使用 LFS 和其它 Linux 发行版,所有连网计算机共用的软件应该安装在 /usr/local 内。这样可以通过 NFS 文件系统共享该目录或者从一个服务器上镜象过来。此时 /usr/local 表示本地服务器提供的软件的目录。

如果网络上的计算机都运行同样的LFS系统,/usr/local 应该安装各台计算机之间不相同的软件。这时 /usr/local 表示本地计算机提供的软件的目录。

如果你在一台计算机上同时安装了几个 Linux 发行版,并希望在某个目录存放它们共享的软件,这时 /usr/local 目录就能发挥作用了。

或者你想要经常重建 LFS 系统,但又希望把不想每次重复编译的软件存放在某处,你也可以把软件安装在 /usr/local 目录。这样你就可以在不丢失数据的情况下删去 LFS 系统并从一个干净的分区重新开始。

一些人会问为什么不使用你自己的目录树,也就是使用 /usr/site 而不是 /usr/local?

没有什么能阻止你,确实可以在很多地方创建自己的目录树,但这会使得安装新软件更加麻烦。自动化的安装程序通常要到 /usr 或 /usr/local 目录下寻找所依赖的文件,如果要找的文件不在 /usr 目录里面,安装可能会失败,除非你指定目录让安装程序查找所依赖的文件。

那么在 BLFS 中软件的安装位置在那里?

除非特别声明,所有 BLFS 中的软件都安装在 /usr 目录下。也有一些文件被放在 /usr/local 目录下,但它们只是文档并且有足够的理由这样做。

个人建议

  1. 你自己安装的应用类程序,经常使用的,安装在 /usr/local/lib 目录下

  2. 你自己安装的系统类程序,建议安装在 /usr/lib 目录下

  3. 你自己安装的应用类程序,不经常使用,或者临时安装的,不久就要卸载掉,建议安装在 /opt/lib 目录下

  4. 程序源码放在 /usr/local/src 目录下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构设计_合并多种疾病,如何设计数据结构?

如果一个患者合并多种疾病或应用多种药物,如何设计数据结构?例如病史,建议设计成多选题。如果未患病,只需点一次“全无”,操作简单。如果选了全无,其他选框系统自动关闭,就不能再后面的选项了&a…

java ee的小程序_用微服务和容器替换旧版Java EE应用程序服务器

java ee的小程序Lightbend最近对2000多个JVM开发人员进行了一项调查,结果刚刚发布。 开展该调查的目的是发现:发展趋势与IT基础架构趋势之间的相关性,处于数字化转型前沿的组织如何使他们的应用程序现代化以及当今对新兴开发人员技术最为关注…

Linux系统下如何安装JDK?

一、首先下载linux版本jdk 点击进入jdk官网 根据自己的需求,下载不同版本的jdk 2.将下载好的jdk压缩包,通过ftp上传到linux系统的当前用户下,我当前登录的用户为root用户 3.将上传后的jdk,解压到/usr/local/目录下&#xff0c…

php网站模板怎么修改,网站后台模板修改

方法1、首先制作网站背景图片,这个建议找一些大尺寸的图片。(本图仅限测试使用)2、通过FTp工具链接到网站的空间,找到dedecms网站的模版文件templets。找到模版目录下的模版样式文件。如果使用的是默认模版,文件在templets/default/style/ded…

python练手经典100例微盘_Python练手项目实例汇总(附源码下载)

1 #_*_ coding:utf-8 _*_ 2 from tkinter import * 3 importrandom4 importtime5 importtkinter.messagebox6 7 8 #俄罗斯方块界面的高度 9 HEIGHT 20 10 11 #俄罗斯方块界面的宽度 12 WIDTH 10 13 14 ACTIVE 1 15 PASSIVE 016 TRUE 1 17 FALSE 018 19 style [20 [[(0,0),(…

Linux 环境变量设置及查看

文章目录一、设置变量的四种方法(一)在 /etc/profile 文件中添加变量(二)在用户目录下的 .bash_profile 文件中添加变量(三)使用命令 export 声明定义变量(四)使用命令 declare 声明…

docker 部署java_使用Docker堆栈部署的微服务-WildFly,Java EE和Couchbase

docker 部署java关于微服务的资料很多,只是用谷歌搜索就可以了 ! 几年前,我在比利时的Devoxx上发表了有关将单片重构为微服务的演讲,它获得了很好的评价: 该博客将展示Docker如何简化微服务的创建和关闭。 该博客中使…

django settings 定义的变量不存在_使用Django部署机器学习模型(1)

介绍机器学习(ML)应用的需求正在不断增长。许多资料显示了如何训练ML算法。然而,ML算法分为两个阶段:训练阶段——在这个阶段,基于历史数据训练ML算法,推理阶段——ML算法被用于计算对未知结果的新数据的预测。商业利益就处于推理阶段&#x…

php系统函数区分大小写,php函数名区分大小写吗?

PHP对大小写敏感问题的处理比较乱,写代码时可能偶尔出问题,所以下面本篇文章就来总结一下。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。但我不是鼓励大家去用这些规则。推荐大家始终坚持“大小写敏感”&#x…

提取javadoc_使用JavaParser从源文件中提取JavaDoc文档

提取javadoc很多人正在使用JavaParser实现最不同的目标。 其中之一是提取文档。 在这篇简短的文章中,我们将看到如何打印与类或接口关联的所有JavaDoc注释。 可以在GitHub上找到代码: https : //github.com/ftomassetti/javadoc-extractor 获取类的所有…

python条形堆积图_python – 使用DataFrame.plot显示堆积条形图中...

您可以使用plt.text根据数据将信息放在位置. 但是,如果你有非常小的条形,可能需要一些调整才能看起来很完美. df_total df[Total Cost] df df.iloc[:, 0:4] df.plot(x Airport, kindbarh,stacked True, title Breakdown of Costs, mark_right True) df_rel df[df.column…

dmc matlab程序,matlab编的DMC程序.doc

matlab编的DMC程序clear all;% close all;%系统模型建立num[0.8];den[225 1];[a,b,c,d]tf2ss(num,den);% step(num,den);Ts30;lambda60;[ad,bd,cd,dd]c2dt(a,b,c,Ts,lambda);[numd,dend]ss2tf(ad,bd,cd,dd);[a,x]dstep(ad,bd,cd,dd);P10;M5;N50;%动态矩阵Afor i1:Pfor j1:Mif j…

mega2560单片机开发_[MEGA DEAL] Ultimate Java开发和认证指南(59%折扣)

mega2560单片机开发通过介绍世界上最受欢迎的编程语言之一掌握Java编程概念 嘿,怪胎, 本周,在我们的JCG Deals商店中 ,我们提供了一个极端的报价 。 我们提供的《 Ultimate Java Development and Certification Guide 》 仅售2…

MySQL使用规范_心得总结

文章目录命名规范数据库基本设计规范数据库字段设计规范索引设计规范常见索引列建议数据库开发规范数据库操作行为规范命名规范 1.所有数据库对象名称必须使用小写字母并用下划线分割 2.禁止使用 MySQL 保留关键字,如果表名中包含关键字查询时,需要使用…

java界面 文件选择器_掌握java技术 必备java工具应用知识

在现如今的互联网时代里,Java无疑是一种极为流行的开发语言,无论是程序界还是整个互联网行业势必带来很大的影响。不管是人才需求还是薪资水平上,Java的发展前景都是很乐观的。关于Java的一些常用的工具,也是需要我们不断去掌握和…

php制作404,利用thinkphp怎么制作一个404跳转页面

利用thinkphp怎么制作一个404跳转页面发布时间:2020-12-14 15:46:55来源:亿速云阅读:97作者:Leah本篇文章给大家分享的是有关利用thinkphp怎么制作一个404跳转页面,小编觉得挺实用的,因此分享给大家学习&am…

junit 验证日志输出_JUnit规则–引发异常时执行附加验证

junit 验证日志输出在本文中,我将快速向您展示如果您需要解决以下挑战,那么JUnit规则有多方便 一个方法可以捕获异常,并且必须在抛出或引发包装异常之前执行一些额外的任务。 调用额外任务和引发的异常应通过单元测试进行验证。 这意味着你…

禅道项目管理系统里面的「产品」与「项目」的区别和关系

产品与项目的区别和关系 产品主要是管理需求、计划和发布。一个产品可能分解成多个小项目,由一个或多个项目组去完成。 项目主要是管理任务开发需求。禅道里,项目对应的是敏捷开发里的迭代。项目可以看做产品的迭代管理,一个项目更新产品的…

triplet loss后面不收敛_你的神经网络真的收敛了么?

1、为什么小模型的作为backbone效果会差?在深度学习目标检测(图像分割)领域,我们发现当我们使用层数越深,并且在imagenet上表现越好的分类网络作为backbone时,它的检测和分割效果越好效果越好。比如我们使用resnet101作为backbone…

php文件上传漏洞waf,文件上传绕过WAF

文件上传文件上传实质上还是客户端的POST请求,消息主体是一些上传信息。前端上传页面需要指定enctype为multipart/from-data才能正常上传文件。此处不讲各种中间件解析漏洞只列举集几种safe_dog对脚本文件上传拦截的绕过靶机环境:win2003safe_dog4.0.239…