C 为什么没有包管理的工具呢

2016-04-09 16:13:41 +08:00
 Mirana
8420 次点击
所在节点    程序员
23 条回复
fovecifer
2016-04-09 16:20:11 +08:00
yum 源里那些 lib 开头的东西是什么?
UnisandK
2016-04-09 16:26:42 +08:00
感觉 Python 这种动态语言的库有一份就行了,所以弄个包管理很方便。。 C 的话还得在库里边区分适用于不同的架构的二进制包,弄出来跟集成在各个系统自己的包管理器里也没差了
Mirana
2016-04-09 17:01:50 +08:00
@fovecifer 我是指用在开发中的
bdbai
2016-04-09 17:04:27 +08:00
@Mirana libxxx-devel
VmuTargh
2016-04-09 17:05:55 +08:00
C 的包管理工具就是各大发行版的包管理工具
am241
2016-04-09 17:17:00 +08:00
apt-get install openssl-dev(记错憋打我
Owenjia
2016-04-09 17:24:05 +08:00
c29551
2016-04-09 17:27:55 +08:00
先问是不是,……
biicode
fovecifer
2016-04-09 18:15:12 +08:00
@Mirana 就是开发中啊
比方说我在开发中需要访问某个 REST API ,我可以用 libcurl 这个库,
我需要作的就是:
yum install -y libcurl-devel.x86_64

然后在代码里 include 那个头文件就可以了。
原理上跟 maven 是差不多的,但是功能跟易用性上差太多,

总之:是有包管理工具的,但是确实不是十分好用。
Akagi201
2016-04-09 18:45:39 +08:00
有 clib 跟 biicode 不过历史原因, 大量旧代码都不用包管理. 也没个领头人呼吁大家把包管理给用起来.
tracyone
2016-04-09 18:47:21 +08:00
@Mirana apt 和 yum 下来的本来就可以用来开发,除了 lib ……还有…… header ,…… dev 这些
wizardoz
2016-04-09 20:00:41 +08:00
源里面那些 lib 开头的不是用来开发的?那是用来干什么的?
Mirana
2016-04-09 21:04:38 +08:00
@fovecifer @Akagi201

我的意思是在源码里记住依赖的包以及包的版本,这样我拉下来源码之后,一个脚本就能安装编译好依赖的包,这样就不用手动安装所有的包了。

或许这个功能用 git submodule 来做?
hvsy
2016-04-09 22:31:31 +08:00
因为 c 语言出来的太早了,包管理这种东西严重依赖网络。而 c 语言的实际应用情况可能连外网都不能访问,或者都是很强的定制型的功能,所以没有统一的标准,而且大公司经过那么多年的积累早就有自己的内部库了,所以没有动力搞这种东西。
Mutoo
2016-04-09 22:40:45 +08:00
因为 c 语言的标准库非常完善,需要包管理器的语言,一般标准库都不太成熟,例如 javascript...
akagi
2016-04-10 00:29:42 +08:00
@Mutoo 这是在黑么 .. 还是我没看懂
Mirana
2016-04-10 00:49:45 +08:00
@Mutoo 其实 npm 的包都不是官方的标准包
msg7086
2016-04-10 02:41:08 +08:00
#13 所以其实还是 APT 和 YUM 的问题。
拉源码 apt-get source package
拉依赖 apt-get build-dep package
zhicheng
2016-04-10 06:19:02 +08:00
1 , C 里边能跨平台,大规模使用的包总共就那么几个, 10 个手指就差不多能数清。
2 ,静态链接和动态链接,优先使用动态链接。所以没有必要把依赖代码放到项目里,动态链接依赖系统实现。
3 ,鲜有人在生产环境中使用代码安装软件。
4 ,大部分会写 C 的工程师,都能实现 leftpad ,这个不是问题。
xpol
2016-04-10 09:15:09 +08:00
@c29551 biicode 不是发邮件说他们要关门了吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/269778

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX