V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
overthemoon
V2EX  ›  问与答

Linux 软件安装位置

  •  
  •   overthemoon · 83 天前 via iPad · 1509 次点击
    这是一个创建于 83 天前的主题,其中的信息可能已经有所发展或是发生改变。

    像 tomcat nginx 这些软件一般放在 /opt 还是 /usr/local 目录下呢

    14 条回复    2022-11-15 08:38:27 +08:00
    qiguai2017
        1
    qiguai2017  
       83 天前
    不同发行版,放置的位置可能不同.有放 `/opt` 下的,也有放 `/usr/local` 下的,还有可能安装完后,文件分散到 `/user/share`, `/user/lib`, `/user/bin` 等目录下.

    如果是从 nginx 官方下载,自己手动安装的话, 一般是安装到 `/opt` 下,也可以自己指定安装位置.
    2NUT
        2
    2NUT  
       83 天前
    usr 系统级共享资源目录

    local 用户级程序目录

    opt 可选程序目录
    mmm159357456
        3
    mmm159357456  
       83 天前   ❤️ 1
    我觉得是看习惯的,像我都是放 home 里的
    shiyu6226
        4
    shiyu6226  
       83 天前 via iPhone
    大部分应用如果默认安装的话 都在 /usr/local 下,但是一般服务器 /目录(系统分区)不会给的很大,所以应用都是单独放其他分区,我这边是 公司部署应用都是 /opt 下,个人部署 /home 下
    adoal
        5
    adoal  
       83 天前 via iPhone
    在生产环境的服务器上,后台服务类软件强烈不建议装在自己家目录或者 owner 是自己的其它目录里,并且所有文件 owner 也是自己,然后还是用自己登录的账号身份启动到后台。

    交互操作的工具一般来说无所谓。

    开发环境也不用讲究,但要知道你开发出来的东西将来可能生产环境要求部署。

    另外,强烈建议通读多遍 Linux File System Hierarchy Standard 并理解其设计动机和思路。
    eason1874
        6
    eason1874  
       83 天前
    生产服务器,我直接用包管理工具安装,先把官方源加进去,然后安装,在哪个目录就在哪个目录

    自己的,大部分在 /opt
    JKeita
        7
    JKeita  
       83 天前
    习惯 /usr/local
    oneisall8955
        8
    oneisall8955  
       83 天前 via Android
    自己编译安装,习惯放在 opt ,有些系统级别,ln 到 /usr/local
    julyclyde
        9
    julyclyde  
       83 天前
    @oneisall8955 编译的默认 prefix 是 /usr/local 吧
    外来的预先编译软件才选 opt
    weidaizi
        10
    weidaizi  
       83 天前
    包管理的一般在: /usr
    用户级别: /usr/local
    完整安装: /opt

    另外提个 /usr 和 /opt 的很大的区别, 比如有一个 foo, 依赖于动态库 libfoo.so

    ----------------------------
    /usr 下面(/usr/local 下类似)
    /usr/lib/libfoo.so
    /usr/bin/foo

    ----------------------------
    /opt 里, 要设置 rpath
    /opt/foo/bin/foo
    /opt/foo/lib/libfoo.so
    AirCrusher
        11
    AirCrusher  
       82 天前
    赞同#10 。包管理器可以不用操心,但如果单独下 release 建议放到 /opt 里面。之前踩过一个坑,把应用直接解压到 /usr/local ,但是里面有个 so 覆盖掉了子目录下的同名库,产生了一些兼容性的问题。
    julyclyde
        12
    julyclyde  
       82 天前
    @AirCrusher 那你这个库,本身有问题啊。相互兼容的版本才能叫同一个 SONAME 呢
    zhucegeqiu
        13
    zhucegeqiu  
       82 天前 via iPhone
    docker 一把梭路过
    ByteCat
        14
    ByteCat  
       82 天前 via iPhone
    编译的放 /usr/local ,其他 /opt ,一般放 /opt 就好
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   1389 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 05:12 · PVG 13:12 · LAX 21:12 · JFK 00:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.