网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月01日漏签0天
c语言吧 关注:798,913贴子:4,357,878
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 44回复贴,共1页
<<返回c语言吧
>0< 加载中...

求助在Linux上装个软件像鸡下蛋似的搞的整个系统到处都是

  • 只看楼主
  • 收藏

  • 回复
  • g495326
  • 麻婆豆腐
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
什么二进制放bin,配置文件放etc,文档放
doc。就不能一个软件一个文件夹吗,这不是更
好管理啊,卸载也方便,也不知道怎么想的


  • qishipai
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
包管理器很清楚文件是怎么放的


2025-08-01 13:56:38
广告
不感兴趣
开通SVIP免广告
  • 豪杰兴邦
  • 麻婆豆腐
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
二进制文件放bin,这样可以在shell打文件名直接执行,配置文件放etc,这样可以在编辑器打文件名编辑。当然像绿色软件那样放一个目录也是可以的,只是执行的时候需要输入完整路径,或者cd切换到对应目录里。


  • XeO2
  • 小吧主
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一个目录不太现实,至少用户数据和程序本体就不应该放在一起。
程序及其依赖库通常是不需要经常修改的,所以可以加上比较严格的权限限制,避免被恶意程序破坏;
但是用户数据是需要经常修改的,就不需要加上严格的权限了;这样用户数据和程序本体至少就两个目录了。
至于到底是一个软件尽量集中到一个目录,还是把它的文件划分到事先设定好的目录里,这就见仁见智了,Windows和Linux就是两种不同思路的代表,可以说是各有优劣吧,这里就拿一点来说:
Linux的共享库都是放在/lib下面的,这样的好处是一个库不需要多个副本,可以节省空间;
Windows的软件就喜欢自带一套动态链接库,所以你会发现系统里面有些DLL可能会有十几个一模一样的副本(尤其是像msvcrt这样的),这种做法会导致有些本来很简单的软件因为带了一套DLL变得很庞大,但好处是一个软件可以使用与另一个软件不同版本的库而不会互相干扰


  • GTA小鸡
  • 吧主
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Windows的用户转移到linux上很容易有这种疑问,本质上是因为仍然在用Windows的方式思考问题。linux上软件的特点是什么?大部分软件是单文件、功能单一、终端交互方式、有若干依赖项。这样的软件很适合linux目录的组织方式,可执行文件存放在/usr/bin和/usr/sbin,库文件存放在/usr/lib。如果学Windows一个软件一个目录,那会有什么问题?
1.需要频繁维护PATH,每一个软件的bin目录都需要添加到PATH中
2.软件之间无法轻易找到依赖链,解决方式要么是每个软件单独打包所有依赖,要么像PATH一样在LD_LIBRARY_PATH里添加每一个软件的lib目录。linux上一个软件有十几个依赖很正常,一个服务器程序可能依赖libc, libev, libcurl, openssl, zlib, liblzma, libpthread等等库,难道每个这样的程序都打包一遍库文件?ubuntu的snap招致众怒不是没有原因的


  • g495326
  • 麻婆豆腐
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
@▫XeO2▫ @GTA小鸡
我想了个下,如果我来设计系统应该怎么安排这些库(生产者),还要保证它们不重复。
首先想到,上层软件(消费者)需要什么依赖库,直接向系统报告,由系统来下载、载入、删除。系统怎么知道当下哪些库已存在哪些库需要下载?
最方便的方法就是把这些库放一个目录,查找起来最方便,这不就回到linux的做法了吗!
不不,如果上层软件本身不需要对外提供服务,安装时不就可以放一起了吗?


  • 香菜味包子
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
第一个问题:举个例子,如果两个程序需要用到同一个功能(就假设是ffmpeg功能吧),如果软件都放在自己的目录里,那就两个程序的文件夹里都有ffmpeg的内容,好处是这两个ffmpeg版本可以不同,坏处是这两个ffmpeg版本相同的时候就会多占用一份不必要的空间。
第二个问题:另外如果所有的依赖库都需要内核来管理的话,如果内核没有更新到支持最新版的ffmpeg但是这个程序又需要最新的ffmpeg怎么办?简单的办法就是让应用开发人员也可以管理依赖库,那么这个库放哪里又回到第一个问题了?


  • 困境贤者
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你没有理解linux的管理逻辑


2025-08-01 13:50:38
广告
不感兴趣
开通SVIP免广告
  • 两瓶猫
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
氵


  • 两瓶猫
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
氵


  • 两瓶猫
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
氵


  • 两瓶猫
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
氵


  • 两瓶猫
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
氵


  • 贴吧用户_GX4EN31
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Linux上安装的应用程序通常称为组件,组件本身只是一种部件,不是给你实现一个功能,而是在安装了一系列组件之后,这些组件和Linux系统共同构成了一个整体,用来实现各种功能


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 44回复贴,共1页
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示