包栗子 发自 凹非寺

量子位 出品 | 公众号 QbitAI

今天,GitHub发布了全新的软件包管理服务,叫GitHub Package Registry完全免费

有了它,用户可以把自己的软件包传上GitHub,就像发布源码那样。

官方介绍说,这项服务和NPMMaven等许多现有的包管理器都兼容。并且,今后还会支持更多。

消息一出,网友纷纷感受到了一统天下的趋势。

有人表示开心

“好事啊,我现在同时用着好几个包管理器,都能放到一起来搞的话,真是诱人。”

也有不少人担心

“我的NPM是不是药丸?”“看到GitHub垄断就不高兴。”

那么,这到底是一项怎样的服务?会给包管理工具的世界,带来怎样的震荡?

大一统的包管理服务

首先,Package Registry是和GitHub完全集成起来的。所以,搜索、浏览、管理工具都和从前没差别。

软件包可以和源码并肩发布,也可以使用和源码一样的权限。

团队说,下载快速稳定,是由GitHub全球CDN加持的。

现在,来具体介绍一下。

都有什么功能

在Package Registry上,你可以迅速查找公开的软件包,或者你团队内部的私有软件包。

兼容了许多包管理应用兼容,所以可以自由选择工具,来发布自己的软件包:

JavaScript (npm) ,Java (Maven) ,Ruby (RubyGems) ,.Net (NuGet) 以及Docker images都支持。未来还会支持更多,比如Python已经在路上了。

△ 网友焦急:下个支持Go啊

GitHub说,如果你的repo很复杂,可以发布成好几个不同类型的软件包。

以及,通过webhooks或者GitHub Actions,能够完全定制发布中和发布后的Workflow。

软件可以发布成私有,也可以公开:

大多数开源项目,源码都在GitHub上。可以把预发行版本 (Prerelease Versions) 的软件包公布出来,在社区里做测试,也可以把某个版本放到公开的Registry里去。

统一的身份和权限

如果,你用了许多不同的系统来发布代码和软件包,那就需要许多套不同的 (身份认证用的) 用户凭据和权限。

但现在在GitHub上,代码和包可以用一套用户凭据,也可以用同样的工具来管理访问权限。

GitHub上的软件包,延用了Repo的可见性 (Visibility) 和权限 (Permissions) ,这样团队就不用再跨系统去维护一个单独的Registry,以及镜像的权限了。

详细信息,知己知彼

GitHub上托管的软件包,都有详细信息、下载统计,以及完整的历史记录可以查看。

用户能明晰地了解包里都有些什么。这样一来,就更容易找到适合自己的依赖项。

而包的主人查看数据统计,便可以详细了解,其他人/其他项目都是怎样使用了自己的软件包。

你要试试么

现在,测试版已经上线了。

注册一下就可以用:

https://github.com/features/package-registry/signup

GitHub Package Resgistry是永久免费的。不过,团队也在周围开发一些附加功能,比如针对安全性 (Security) 和合规性 (Compliance) ,打算日后为商业用户提供。

要变天了

软件包管理器,在开发者的世界里举足轻重。它们整合了自动安装、配制、卸载、升级等等各种环节的工具,对开源软件的环境也功勋卓著。

比如,在开发应用的过程中,可能用到许多别人写的软件包。有了包管理器,就可以直接安装软件包,省去繁复的搜索、下载代码、解压……这一系列步骤。

如今,软件包管理系统百花齐放。不同的开发环境,都有自己的包管理器。

每个管理器,有各自忠实的用户。在GitHub发布了“大一统”的服务之后,他们都十分关心这些管理器的将来。

比如,Maven Central就是一个重量级仓库。

Hacker News评论区的顶楼说,Package Registry出现了,表示Maven就要死了

他还说,自己内心百感交集:

一方面,这个库已经免费存在了很长时间,心生感激。

但另一方面,Key Registries非常缓慢,几个小时才能拿到自己的Private Key。除此之外,开发用服务器 (Staging Server) 也很缓慢,总是超时。

而GitHub的新服务,是把Registry和存储 (Artifact Storage) 分开的。

这样是对的,因为Registry需要快速更新。而存储就在我自己的控制范围了。

另外,NPM的用户也在担心它的命运:

这个服务,可以解决NPM的信任问题:你永远不会知道,自己下载的这个包,来源是不是真像页面上写的那样。

毕竟,NPM现在内外交困:

NPM这巨大的Registry人见人爱,可是已经快花光投资人的钱了,靠着私有Registry产品支撑。现在,又换了个奇怪的CEO,投资人的耐心可能要消磨殆尽了。

不过,即便GitHub服务强势来袭,依然有许多人保持怀疑的态度。比如:

兼容的意思是,两边的Registry可以一起用么?那如果名称冲突了怎么办呢?

有人回复了这条评论:

这才是真正的问题所在,可能对JS的生态系造成严重的破坏。要看GitHub怎么处理了。

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

npm 卸载_完全免费!GitHub发布软件包管理服务:NPM瑟瑟发抖相关推荐

  1. npm 卸载_前端基础学习(一)--npm

    ****************************npm下载镜像********************** 淘宝 NPM 镜像 参考引用:http://npm.taobao.org/ 当前 r ...

  2. GitHub推出包管理服务,npm与Nuget全支持

    GitHub 今天推出了一项名为 GitHub Package Registry 的新产品,它提供了软件包管理服务,开发者通过它可发布公共或私有软件包. 官方介绍,GitHub Package Reg ...

  3. GitHub重大更新即将加入免费软件包管理服务;钉钉社区因出现违规内容将停更整改一个月;Uber上市,定价为45美元……...

    关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...

  4. npm 卸载_手把手教你创建一个NPM包

      前言   在前端,基于NodeJs的工程化开发已经是一个很成熟的解决方案,而工程化的构建又离不开诸多便捷又高效的可复用的NPM包,那么这些包是如何制作.发布的呢?今天我们就来研究一下这个问题.   ...

  5. 有助于建立使用者对套件的信任 GitHub释出管理服务

    GitHub发布了GitHub包注册表,它结合了GitHub代码库的优点.当开发人员发布包时,它还会公开包的源代码.该服务与GitHub完全集成,因此开发人员可以使用原始帐户或团队权限,发布和管理套件 ...

  6. arcgis xml 下载 切片_切片文件发布成切片服务

    一.需求背景: 最近碰到这样的需求,就是手头拥有他人给的切片文件,但是想在自己服务器中将该切片文件发布成切片服务.如何实现? 二.解决办法: 此类需求是非常常见的,arcgis server 提供了S ...

  7. 【Java从0到架构师】Linux 应用 - 软件包管理、软件安装

    Linux 应用 - 软件包管理.软件安装 软件包管理器 rpm yum 软件的安装 jdk 1.8 mysql 5.7 tomcat8 Java 从 0 到架构师目录:[Java从0到架构师]学习记 ...

  8. npm 引用子项目模块_Java / Web项目中的NPM模块Browser-Sync

    npm 引用子项目模块 Browser-Sync是一个方便的基于Node.js的NPM模块,可用于更快的Web开发. 浏览器同步可在许多设备之间同步文件更改和交互. 最重要的功能是实时重新加载. 我们 ...

  9. npm 包管理器_导演电影解释了节点软件包管理器(NPM)

    npm 包管理器 by Kevin Kononenko 凯文·科诺年科(Kevin Kononenko) If you understand the general way that Hollywoo ...

最新文章

  1. 曼哈顿距离java实现_基于javascript实现获取最短路径算法代码实例
  2. Linux从零开始(二、基础命令(续)解决命令行无限输入,停不下来)
  3. problem about can't trigger exit-command in CR
  4. 教你玩转CSS的所有字体,走过路过不要错过!!!
  5. Saltstack SLS文件解读
  6. Pytorch —— 学习率调整策略
  7. 《大道至简》第二章读后感
  8. Markdown中插入图片及图注
  9. Git教程——临时修改 (stash)
  10. Unity3D实践1:摄像机跟随
  11. springboot之提高maven的速度
  12. click事件的执行顺序
  13. 国内首款安全软件开源,金山卫士源码共享
  14. 你必须会的微服务之Hystrix熔断器
  15. Browserslist: caniuse-lite is outdated. Please run next command `npm update`
  16. IDEA怎么查看现在的项目使用的JDK版本? 2016年4月19日22:51
  17. Python+Selenium+Appium环境搭建
  18. 技术人才的出路在哪里,5种选择和2种思路
  19. 任意输入一个年份 判断是否为闰年
  20. 塔米狗企业并购与投融资信息服务平台

热门文章

  1. 特征变换(3)小波变换
  2. ????常用注意事项
  3. [COCI2015]COCI
  4. 关于MVC/P 的简单介绍
  5. iOS7修改UISearchBar的Cancel按钮的颜色和文字
  6. 订单倒计时取消,nodejs 辅助实现倒计时任务
  7. xp网吧用母盘制作说明
  8. 共享之windows与Linux
  9. 效率 qt_Qt开发之Go篇(三)
  10. shell 判断_shell之条件判断和流程控制