作者ChakraLinux (GNU/Chakra Project)
看板Linux
标题Re: [问题] 新手在Lubuntu安装软体问题,请益
时间Tue Apr 17 20:12:44 2018
1F:推 Gold740716: 4. 应该是 sysadmin 用在公用机器上的 04/17 16:51
2F:→ Gold740716: 但现在还有这种东西吗? 04/17 16:51
FreeBSD表示:
https://www.freebsd.org/cgi/man.cgi?pkg-repository
Linux From Scratch(LFS) 表示:
http://www.linuxfromscratch.org/index.html
追新这个理由主要见於桌面玩家或开发者,其次才是真的因为系统版本老旧
eg. Debian stable,或者是企业内部的老伺服器在跑已经不被支援的作业系统
但是拥有新功能的新软体只支援新版函式库…然後又不可能冒着下线的风险整个系统重灌
(XP 表示:(严重误
其实make; make install这个流程才是最老派的手段
只是现在大部份的人已经不崇尚自己认识自己的系统了
※ 引述《Neisseria (Neisseria)》之铭言:
: 标题: Re: [问题] 新手在Lubuntu安装软体问题,请益
: 时间: Tue Apr 17 16:49:06 2018
:
: : 推 shyangs: 如果遇到 依赖不同版本的同一lib 情况怎麽办 04/17 01:08
: 理想上,函式库总会向後相容
: 但写过程式就知道,理想终究是理想
:
: 最土炮的方法就是全部用静态连结包执行档
: 但 Linuxer 的安全意识比较强,这样包没人敢拿去用
:
: 目前常见的方法
:
: - Docker
: - Snap
:
通常只是因为讲师不想解释什麽是dynamic linker
(毕竟又不是付钱来听Linux system management的,我是来听潮科技der)
加上发展这些容器技术的人也需要资金养自己
所以看起来好像风声水火…至於各种重造车轮或者是违反开源精神的事件…
(谜:现在还有人在乎这种打高空的道德精神吗?)
当两个程式依赖不同版本的同一函式库时…发行版会帮你搞定——大部分
https://packages.ubuntu.com/search?suite=default&keywords=autoconf
通常都是在末尾标注版号,并且对soname的命名做变化
对於有共通且无关版号的元件,通常也会分出-common包
git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/pyqt5
(详情请看各家的编译规范)
最後的最後,就是在执行时要让程式知道要去哪里找函式库
这时候就会出动 linker
由LD_LIBRARY_PATH与LIBRARY_PATH来告诉系统要去哪里找
通常由於ABI/API不相容,程式会自己包一个library
常见的如libfontconfig,libssl等等
使用者在终端机上就会这样执行
LD_LIBRARY_PATH=/opt/myapp/:$LD_LIBRARY_PATH myapp
: 想法就是除了底层系统外,自己弄相依性
: 当然该软体内的微环境要和外部隔离开来,不同技术有不同方法
:
: 有些程式语言有类似的工具,像 virtualenv (Python) 或 bundler (Ruby)
: 但这类工具主要是用环境变数来创造隔离的环境,和前面讲的方法不同
:
:
: P.S. 技术细节不太熟,讲错请小力鞭
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 112.105.249.161
: ※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1523954948.A.FB6.html
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.119.120.6
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1523967172.A.790.html
3F:推 ddtsatan: 推 04/17 20:32
4F:推 toothlesses: 感谢解惑 最近上课有实作configure make和make insta 04/17 23:33
5F:→ toothlesses: ll 04/17 23:33
6F:→ toothlesses: 但还是有些疑问 但至少知道一些背景了 04/17 23:34
最近也在看神奇的m4
大部分老牌的gnu project不但会提供configure甚至会提供configure.ac
让使用者决定自己要从多源头开始编译
patch
autoreconfig
./configure
make
make check
make install
等等等等
不过欣赏是一回事,要自己写就…(倒
其实套件管理系统只是把这些动作标准化,并且加上一些更平易近人的描述
然後确保使用者有个小秘书能知道系统内所有的档案是谁产生的、谁有权限读/写
出问题或升级时要怎麽处置等行政流程(?
7F:→ obarisk: 问题是learning path太陡,太难 04/18 14:51
8F:推 Gold740716: 119 04/18 22:13
9F:推 bluecadence: 以前各家 unix 没有什麽好的套件管理系统,都是这样 04/18 22:29
10F:→ bluecadence: 做的 04/18 22:29
现在还强调复古风的大概就LFS惹吧
连gentoo都有自己一套ebuild系统惹
※ 编辑: ChakraLinux (140.119.157.128), 04/22/2018 00:48:30