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

Linux 装软件有没有可能变得像 Windows 那样方便

  •  1
     
  •   Osk · 2020-09-06 02:10:42 +08:00 · 3011 次点击
    这是一个创建于 1546 天前的主题,其中的信息可能已经有所发展或是发生改变。

    感觉现在 linux 很多发行版都离不开网络了,没有网就麻烦大了。

    与之对应的,Windows 就没有这么多心智负担。Windows 槽点虽多,不过是真的方便,就拿最近部署一个 python 简单程序来说:

    python for windows 有 embedded zip 版本,系统甚至都可以不用安装 python 直接用它配置一下作为一个环境:解压,安装 pip,安装需要的库(大部分都没问题),然后写一个 bootstrap.bat 。 发行只需要打包压缩一下,然后发到目标机器上,解压,直接运行。。。真的不要太省心。不过,Windows 上编译安装库确实难受,生态问题。

    而 linux 搜索了一圈,简直头大了,好像没啥很方便安全的办法能通用。

    22 条回复    2020-09-06 19:36:11 +08:00
    ysc3839
        1
    ysc3839  
       2020-09-06 02:17:49 +08:00 via Android
    Python 这个问题是因为 Python 官方没针对 Linux 发布一个编译好的包吧?要自己编译所以麻烦。
    相比之下,Node.js 有发布编译好的 Linux 包,也能像 Windows Python 那样解压直接使用。
    Osk
        2
    Osk  
    OP
       2020-09-06 02:23:45 +08:00
    @ysc3839 python 官方不发布这种确实没办法,毕竟像 node go 这样的还是少。 另外感觉一些商业软件在 linux 上做的也挺方便的,很绿色化。
    imn1
        3
    imn1  
       2020-09-06 03:21:53 +08:00
    linux 的依赖我觉得比较麻烦
    象 mybase,写死了使用 linpng1.2,但 debian 已经使用更新版本的 libpng 了,想装 1.2 还不给装
    有人向 mybase 提了 issue,但他们不改也没办法

    但有趣的是,现在不少 windows 用户已经开始模仿 linux,用统一源来装软件了
    Dreax
        4
    Dreax  
       2020-09-06 03:59:55 +08:00
    appimage ?
    lzp729
        5
    lzp729  
       2020-09-06 04:15:32 +08:00
    that's why we have docker
    cuminflea
        6
    cuminflea  
       2020-09-06 05:31:27 +08:00 via iPhone   ❤️ 5
    arch linux 装软件方便程度怕不是领先 Windows 一个世纪。。。
    594duck
        7
    594duck  
       2020-09-06 06:30:53 +08:00
    windows 的 .net framework 之强大,开源界还差其 一百个 oracle java

    另外还有个严重的问题就是从 BorlandTurbo 开始对 Linux 开源界的吐槽,狂妄,不接受批评。 这不是我说的,有本书叫《 Borland 传奇》里人家喷 Linux 那叫一个猛

    就工程性来看,哪怕是 2002 年的 Delphi 的工程性甩一堆今天的开源开发环境至少 20 年。对 2002 年的 delphi 老古董。

    如果再说的难听点,2000 年的 VB 在 win 自家平台上到 xp 年代都跑的欢乐,写的舒服。
    jim9606
        8
    jim9606  
       2020-09-06 07:35:25 +08:00   ❤️ 1
    你说的这种应用部署模式已经有了,就是 snap/flatpak,不过主要是大型 GUI 软件在用,开源软件用得少。
    非图形应用有比较重量的 docker 用来解决依赖隔离问题。

    主要是 linux 默认使用共享库的模式使得单独升级比较麻烦,你完全可以将你想用的软件及其依赖的 deb/rpm 包全拉下来,这样就可以离线安装了。因此如果不怎么用发行版外的软件,全发行版升级有可能是更好的选择。

    理论上 windows 应用也有不少共享库的,例如 Visual C++ Redist 和.Net Framework,不过分发程序多数还是选择自带依赖的模式。
    murmur
        9
    murmur  
       2020-09-06 08:53:03 +08:00
    这其实不是 linux 的问题,是我们的问题,你想想你要流畅体验 linux,需要给多少源设置镜像,不设置镜像第一步 apt update 怕都卡的过不去
    lizytalk
        10
    lizytalk  
       2020-09-06 08:54:16 +08:00 via iPhone
    pyenv 了解一下。或者 virtualenv ?
    greenskinmonster
        11
    greenskinmonster  
       2020-09-06 09:04:33 +08:00 via Android
    AppImage 了解下
    whenov
        12
    whenov  
       2020-09-06 09:33:57 +08:00 via iPhone
    实在焦虑的话,就自己搭个镜像源吧
    ifxo
        13
    ifxo  
       2020-09-06 09:35:27 +08:00
    永远也不可能的,最多就是些常用小软件,不可能像 windows 那样全兼容
    msg7086
        14
    msg7086  
       2020-09-06 09:44:18 +08:00 via Android
    你一定要说的话,静态编译,chroot,docker,哪个都能做到你说的。
    只不过在 Linux 下没有全员静态编译的需求。没网络可以用 DVD 源,内网可以做内网镜像,方法多了去了。

    哦对了,你说的解压运行,这个也早就有了。像我们以前用的 ovftool 就是解压运行的,库全都自带了。只是一般都默认你有网络或者内网源,一般人不会特地去做一个离线包罢了。
    ladypxy
        15
    ladypxy  
       2020-09-06 10:47:22 +08:00 via iPhone   ❤️ 1
    Linux 的各种包依赖狗屎一样……目前没看到解决的希望
    jin7
        16
    jin7  
       2020-09-06 11:35:23 +08:00
    linux 版本太多 桌面环境太多 一个软件适配多个环境 很麻烦 现在有 appimage
    xratzh
        17
    xratzh  
       2020-09-06 12:32:52 +08:00
    上个老软件,要求的各种依赖真的是狗屎一样的,哈哈哈
    reeco
        18
    reeco  
       2020-09-06 12:49:23 +08:00
    你对 linux 有啥误解
    lance6716
        19
    lance6716  
       2020-09-06 13:41:43 +08:00 via Android
    觉得 Linux 装软件难,估计都是 CentOS 用户。毕竟“稳定”
    felixcode
        20
    felixcode  
       2020-09-06 13:45:08 +08:00 via Android
    可能很多人感觉最理想的 linux 就是最像 windows 的 linux
    ghjacky
        21
    ghjacky  
       2020-09-06 13:51:28 +08:00
    你得理解开源和闭源的区别、Windows 和 Linux 的主要用途和受众的区别,以及 Linux 不同发行版的区别。
    对于不同发行版的区别:因为 Linux 是开源的,所以他的发行版也很多,有上百种,每一种都是单独的一类操作系统,都有自己的迭代版本,所以为什么得在不同的操作系统之间需要保持一种能够通用的软件安装方法。如果非得说通用也有,就是编译安装或者使用一些能够通用的包管理工具,或者直接自己打包软件(如 rpm 包、deb 包,都可以根据自己需要把各种依赖全部打进去,这就是你需要的在某一类发行版之间能够通用的一键安装软件包)。
    对于开源和闭源的区别:举个例子,可以先抛开 Windows,咱们拿 MacOS (类 Unix 系统)和其他开源 Unix 或者 Linux 类系统作比较,mac 装软件够省事吧,因为他是闭源的,他需要赚钱,站在商家的角度,肯定要不遗余力的给你各种打包,让你能够一键安装,他可以不在乎时间和精力,因为做了他能赚钱。然而,对于开源的 Unix 或者 Linux 的其他发行版而言,试问,谁闲的没事干要耗费大量的时间和精力去给你打这种一键安装的软件包。
    对于用途和受众的区别:日常生活娱乐首选 Windows,对于搞技术的程序员工作或者服务器系统首选*nix 系统。就如上边说到的,都有一键安装的软件包,试问,对于一家公司而言,他会在他的*nix server 上选用所谓的一键安装包或者绿色版安装包吗,答案肯定是否定的,因为*nix 系统的定制化太强,一万家用户有一万种环境或者说是需求,而且,你知道那种绿色版安装包里边会不会有一些不安全的因素在里边?对于 Windows 上同样,绿色版(非官方的包)的东西可以悄无声息的在你系统上做很多手脚,如果哪一天,你在使用一个绿色版的安装包的时候系统提示需要管理员权限,请仔细斟酌,如无必要尽量直接拒绝。
    总结四个字:看第一行
    datocp
        22
    datocp  
       2020-09-06 19:36:11 +08:00 via Android
    当年 2002 年?钟爱 turbolinux6.0,那年代哪有什么在线更新系统。readhat 算很好了提供了很多 RPM 包下载,对于 turbolinux 只能使用人家的 rpm spec 编译各种依赖包,再将这些包分发给其他用户。
    所以只是大家用惯了后来的在线更新系统,很多技能退化了。就目前的网络流量,没啥好担心,真正想脱离网络的用户也是有办法截取需要的包。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2858 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:32 · PVG 14:32 · LAX 22:32 · JFK 01:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.