地级市副市长是什么级别| 内分泌失调吃什么| 9月17号是什么星座的| 织女是什么意思| top1什么意思| nox是什么意思| 国家为什么不承认鬼神| 风尘是什么意思| 手足口病有什么危害| hpv73阳性是什么意思| 豆五行属什么| 左眉上方有痣代表什么| 郑中基为什么叫太子基| 百合什么时候种植最好| 小月子是什么意思| 吃完避孕药不能吃什么东西| 用凝胶排出豆腐渣一样的东西是什么原因| 西洋参什么人不能吃| 不造是什么意思| 多囊是什么意思| 运动不出汗是什么原因| 剖腹产坐月子可以吃什么水果| 大三阳转小三阳意味着什么| dpa是什么意思| mon什么意思| 里急后重吃什么药最好| 得过且过是什么意思| 皮肤长癣是什么原因| 十一月五号是什么星座| 筹钱是什么意思| 咽喉炎吃什么药好得快| 多吃香蕉有什么好处和坏处| 梦见自己准备结婚是什么意思| 广西狗肉节是什么时候| 什么是靶向治疗| 男生的鸡鸡长什么样| 印堂跳动是什么预兆| 橙花是什么花| 6.26是什么星座| 跖疣是什么| 炒菜用什么油| 中午吃什么| 一直发烧不退是什么原因| 办身份证穿什么颜色衣服| 为什么容易被蚊子咬| mmc是什么意思| 温度计代表什么生肖| 7.1什么星座| 狗为什么不能吃洋葱| instagram是什么意思| 尿酸高什么不能吃| 甲低有什么症状表现| 盆腔钙化灶是什么意思| 鸡炖什么好吃又有营养| 三十如狼四十如虎什么意思| 7月5号什么星座| 有恃无恐什么意思啊| 3.15是什么星座| 什么皮球| 舟山念什么| 产后第一次来月经是什么颜色| 来例假不能吃什么东西| 高晓松为什么进监狱| 怀孕两个月出血是什么原因| 人生得意须尽欢什么意思| hcg是什么检查项目| 头晕晕的是什么原因| 什么是丘疹| 中秋节什么时候| 节源开流是什么意思| 狗有眼屎是什么原因| 山西为什么叫山西| 割包皮挂什么科室| 骨折吃什么水果好| azul是什么颜色| 什么袍加身| rush什么意思| 广字五行属什么| 姨妈有血块是什么原因| 陈皮起什么作用| 宫外孕是什么意思| 精索静脉曲张挂什么科| 口加一笔变成什么字| 中秋是什么时候| 得瑟是什么意思| hepes缓冲液是什么| 尖嘴是什么生肖| 什么面什么刀| 什么是热射病| ab血型和o型生的孩子是什么血型| 肾精是什么| 自主能力是什么意思| 从未是什么意思| 伏特加是用什么酿造的| 什么叫tct检查| 糖耐量异常是什么意思| 蓝莓什么味道| 潼字五行属什么| 口苦是什么毛病| 西梅什么时候上市| sjh是什么意思| 迅雷不及掩耳之势是什么意思| 脑鸣挂什么科| 飚是什么意思| 胆囊肿是什么病严重吗| 肛裂用什么药治最好效果最快| 梦见大蒜是什么意思| 左手麻木什么原因| penis什么意思| 山竹是什么| 什么是特需门诊| 胃食管反流什么症状| 为什么蚊子总是咬我| 感冒吃什么| 冰箱为什么老是结冰| 精子对女性有什么好处| 过氧化氢是什么意思| 心电图能查出什么| 钠低是什么原因| hpv用什么药| 绞股蓝和什么搭配喝减肥| 御守是什么| 抠鼻表情是什么意思| 漫威是什么意思| 血管为什么是青色的| chocker是什么| 戒断是什么意思| 尿道疼是什么原因| 尿检白细胞弱阳性是什么意思| 河南南阳产什么玉| 神采奕奕是什么意思| 后悔是什么意思| 止吐吃什么药| 快的反义词是什么| 2009年是什么年| 红苋菜不能和什么一起吃| 右肺疼是什么原因| 痘坑用什么药膏最有效| 五行属土缺命里缺什么| 四面弹是什么面料| 子宫肌壁回声不均匀是什么意思| 放线是什么意思| 喝铁观音茶有什么好处| 人艰不拆是什么意思| 关联词是什么意思| 漫展是什么| 当兵什么时候入伍| 力挽狂澜什么意思| 胃胀气吃什么药见效快| 吃什么可以快速排便| 牛奶为什么能解辣| 睡觉被口水呛醒是什么原因| 晟字五行属什么| 施食是什么意思| 金枝玉叶什么生肖| 脚趾发紫是什么原因| 黄精和什么搭配补肾效果最好| 荨麻疹是什么病| 孩子爱咬指甲是什么原因| 亭亭净植的亭亭是什么意思| 小猫的尾巴有什么用处| 痰湿瘀阻是什么症状| aqi是什么| 尿酸高能喝什么酒| 肌酐升高是什么原因| 缺钾会有什么症状| 叛逆是什么意思| 裹腹是什么意思| 不知道叫什么名字好| 梦见好多南瓜是什么意思| 6月5日是世界什么日| 女性尿频尿急是什么原因| 蚂蚁为什么会咬人| 供血不足吃什么药好| 回迁房是什么意思| 强字五行属什么| 夜间睡觉出汗是什么原因| 7月11是什么星座| 王八羔子是什么意思| 产妇吃什么好| 蕊字五行属什么| 解语花是什么意思| 猪沙肝是什么部位| 医生为什么看瞳孔知道没救了| 康庄大道是什么意思| 大米为什么会生虫| 身体出汗多是什么原因| 两手发麻是什么原因| 法克是什么意思| 色纸是什么| 惨无人道是什么意思| 鸡块炖什么好吃| 为什么总是长口腔溃疡| 狐臭用什么药| 龙延香是什么| 蔷薇是什么意思| 喝栀子茶有什么好处| 尿血最坏的病是什么病| 三和大神什么意思| 咲是什么意思| 喝什么茶去火排毒祛痘| 过生日吃什么菜| 红枣有什么功效| 义诊是什么意思| 自然卷的头发适合什么发型| 貔貅什么人不能戴| 青灰色是什么颜色| 物是人非什么意思| 心虚吃什么补最快| 梦见袜子破了是什么意思| 美国白宫是干什么的| 腰脱是什么症状| 腰肌劳损吃什么药| 胃烧灼感是什么原因引起的| 肿瘤切开了里面是什么| 更年期看什么科| 媚字五行属什么| 割礼是什么意思| 中国的国菜是什么| 湿气重吃什么水果| 梅五行属什么| 什么叫钙化了| 杀青什么意思| 什么情况下会怀孕| 地头蛇比喻什么样的人| 垒是什么意思| 吃什么补血补气效果好| 舌头发白什么原因| 浑浊是什么意思| 谷草转氨酶高吃什么药| 黄色搭配什么颜色| 切尔斯什么意思| 胰腺的作用和功能是什么| 骨赘是什么意思| 免疫抑制是什么意思| 吃了发芽的土豆会有什么症状| 戴字五行属什么| 什么的眼睛| 犹太人是什么意思| 土豆炒什么好吃| 七月七日是什么生肖| 尿素氮高吃什么药| 1992年属什么生肖| 谭咏麟属什么生肖| 静脉血栓吃什么药| 胡青是什么| 骆驼是什么品牌| 网名取什么好听| 看颈椎病挂什么科| 劫数是什么意思| 斗战胜佛是什么意思| 孕妇吃火龙果有什么好处| 乙肝五项135阳性是什么意思| 风信子的花语是什么| 肺腺瘤是什么| 满月是什么时候| 静脉曲张属于什么科| 马齿苋煮水喝有什么功效| 湿气重要吃什么| 助产学是干什么的| 地瓜什么时候成熟| 更年期看什么科| 王母娘娘姓什么| 三羊开泰是什么意思| 百度Jump to content

审视经济发展激励措施的本地价值

From Wikipedia, the free encyclopedia
百度 前沿技术首先用于PC游戏。

A software repository, or repo for short, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source or version control, or repository managers. Package managers allow automatically installing and updating repositories, sometimes called "packages".

Overview

[edit]

Many software publishers and other organizations maintain servers on the Internet for this purpose, either free of charge or for a subscription fee. Repositories may be solely for particular programs, such as CPAN for the Perl programming language, or for an entire operating system. Operators of such repositories typically provide a package management system, tools intended to search for, install and otherwise manipulate software packages from the repositories. For example, many Linux distributions use Advanced Packaging Tool (APT), commonly found in Debian based distributions, or Yellowdog Updater, Modified (yum) found in Red Hat based distributions. There are also multiple independent package management systems, such as pacman, used in Arch Linux and equo, found in Sabayon Linux.

Example of a signed repository key (with ZYpp on openSUSE)

As software repositories are designed to include useful packages, major repositories are designed to be malware free. If a computer is configured to use a digitally signed repository from a reputable vendor, and is coupled with an appropriate permissions system, this significantly reduces the threat of malware to these systems. As a side effect, many systems that have these abilities do not need anti-malware software such as antivirus software.[1]

Most major Linux distributions have many repositories around the world that mirror the main repository.

At client side, a package manager helps installing from and updating the repositories.

Package management system vs. package development process

[edit]

A package management system is different from a package development process.

A typical use of a package management system is to facilitate the integration of code from possibly different sources into a coherent stand-alone operating unit. Thus, a package management system might be used to produce a distribution of Linux, possibly a distribution tailored to a specific restricted application.

A package development process, by contrast, is used to manage the co-development of code and documentation of a collection of functions or routines with a common theme, producing thereby a package of software functions that typically will not be complete and usable by themselves. A good package development process will help users conform to good documentation and coding practices, integrating some level of unit testing.

Selected repositories

[edit]

The following table lists a few languages with repositories for contributed software. The "Autochecks" column describes the routine checks done.

Very few people have the ability to test their software under multiple operating systems with different versions of the core code and with other contributed packages they may use. For the R programming language, the Comprehensive R Archive Network (CRAN) runs tests routinely.

To understand how this is valuable, imagine a situation with two developers, Sally and John. Sally contributes a package A. Sally only runs the current version of the software under one version of Microsoft Windows, and has only tested it in that environment. At more or less regular intervals, CRAN tests Sally's contribution under a dozen combinations of operating systems and versions of the core R language software. If one of them generates an error, she gets that error message. With luck, that error message details may provide enough input to allow enable a fix for the error, even if she cannot replicate it with her current hardware and software. Next, suppose John contributes to the repository a package B that uses a package A. Package B passes all the tests and is made available to users. Later, Sally submits an improved version of A, which breaks B. The autochecks make it possible to provide information to John so he can fix the problem.

This example exposes both a strength and a weakness in the R contributed-package system: CRAN supports this kind of automated testing of contributed packages, but packages contributed to CRAN need not specify the versions of other contributed packages that they use. Procedures for requesting specific versions of packages exist, but contributors might not use those procedures.

Beyond this, a repository such as CRAN running regular checks of contributed packages actually provides an extensive if ad hoc test suite for development versions of the core language. If Sally (in the example above) gets an error message she does not understand or thinks is inappropriate, especially from a development version of the language, she can (and often does with R) ask the core development-team for the language for help. In this way, the repository can contribute to improving the quality of the core language software.

Language, purpose Package development process Repository Install methods Collaborative development platform Autochecks
Haskell Common Architecture for Building Applications and Libraries[2] Hackage cabal (software)
Java Maven[3]
Julia[4]
Common Lisp Quicklisp[5]
.NET NuGet NuGet[6] dotnet add package <package>
Node.js node npm,[7] yarn, bower npm install <package>

yarn add <package>

bower install <package>

Perl CPAN PPM[8] ActiveState
PHP PEAR, Composer PECL, Packagist composer require <package>

pear install <package>

Python Setuptools, Poetry[9] PyPI pip, EasyInstall, PyPM, Anaconda
R R CMD check process[10][11] CRAN[12] install.packages[13]
remotes[14]
GitHub[15] Often on 12 platforms or combinations of different versions of R (devel, prerel, patched, release) on different operating systems (different versions of Linux, Windows, macOS, and Solaris).
Ruby RubyGems RubyGems[16] RubyGems,[16] Bundler[17]
Rust Cargo[18] crates.io[19] Cargo[18]
Go go pkg.go.dev go get <package> GitHub[15]
Dart Flutter pub.dev flutter pub get <package>
D DUB dlang.org dub add <package>
TeX, LaTeX CTAN

(Parts of this table were copied from a "List of Top Repositories by Programming Language" on Stack Overflow[20])

Many other programming languages, among them C, C++, and Fortran, do not possess a central software repository with universal scope. Notable repositories with limited scope include:

  • Netlib, mainly mathematical routines for Fortran and C, historically one of the first open software repositories;
  • Boost, a strictly curated collection of high-quality libraries for C++; some code developed in Boost later became part of the C++ standard library.

Package managers

[edit]

Package managers help manage repositories and the distribution of them. If a repository is updated, a package manager will typically allow the user to update that repository through the package manager. They also help with managing things such as dependencies between other software repositories. Some examples of Package Managers include:

Popular Package Managers
Package Manager Description
npm A package manager for Node.js[21]
pip A package installer for Python[22]
apt For managing Debian Packages[23]
Homebrew A package installer for MacOS that allows one to install packages Apple did not[24]
vcpkg A package manager for C and C++[25][26]
yum and dnf Package manager for Fedora and Red Hat Enterprise Linux[27]
pacman Package manager for Arch Linux[28]

Repository managers

[edit]

In an enterprise environment, a software repository is usually used to store artifacts, or to mirror external repositories which may be inaccessible due to security restrictions. Such repositories may provide additional functionality, like access control, versioning, security checks for uploaded software, cluster functionality etc. and typically support a variety of formats in one package, so as to cater for all the needs in an enterprise, and thus aiming to provide a single point of truth. One example is Sonatype Nexus Repository.[29]

At server side, a software repository is typically managed by source control or repository managers. Some of the repository managers allow to aggregate other repository location into one URL and provide a caching proxy. When doing continuous builds many artifacts are produced and often centrally stored, so automatically deleting the ones which are not released is important.

Relationship to continuous integration

[edit]

As part of the development lifecycle, source code is continuously being built into binary artifacts using continuous integration. This may interact with a binary repository manager much like a developer would by getting artifacts from the repositories and pushing builds there. Tight integration with CI servers enables the storage of important metadata such as:

  • Which user triggered the build (whether manually or by committing to revision control)
  • Which modules were built
  • Which sources were used (commit id, revision, branch)
  • Dependencies used
  • Environment variables
  • Packages installed

Artifacts and packages

[edit]

Artifacts and packages inherently mean different things. Artifacts are simply an output or collection of files (ex. JAR, WAR, DLLS, RPM etc.) and one of those files may contain metadata (e.g. POM file). Whereas packages are a single archive file in a well-defined format (ex. NuGet) that contain files appropriate for the package type (ex. DLL, PDB).[30] Many artifacts result from builds but other types are crucial as well. Packages are essentially one of two things: a library or an application.[31]

Compared to source files, binary artifacts are often larger by orders of magnitude, they are rarely deleted or overwritten (except for rare cases such as snapshots or nightly builds), and they are usually accompanied by much metadata such as id, package name, version, license and more.

Metadata

[edit]

Metadata describes a binary artifact, is stored and specified separately from the artifact itself, and can have several additional uses. The following table shows some common metadata types and their uses:

Metadata type Used for
Versions available Upgrading and downgrading automatically
Dependencies Specify other artifacts that the current artifact depends on
Downstream dependencies Specify other artifacts that depend on the current artifact
License Legal compliance
Build date and time Traceability
Documentation Provide offline availability for contextual documentation in IDEs
Approval information Traceability
Metrics Code coverage, compliance to rules, test results
User-created metadata Custom reports and processes

See also

[edit]

References

[edit]
  1. ^ itmWEB: Coping with Computer Viruses Archived October 14, 2007, at the Wayback Machine
  2. ^ "The Haskell Cabal | Overview". www.haskell.org. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  3. ^ "Maven – Welcome to Apache Maven". maven.apache.org. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  4. ^ "Julia Package Listing". pkg.julialang.org. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  5. ^ "Quicklisp beta". www.quicklisp.org. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  6. ^ karann-msft. "NuGet Package Manager UI Reference". docs.microsoft.com. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  7. ^ "npm". www.npmjs.com. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  8. ^ "Installing Perl Modules - www.cpan.org". www.cpan.org. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  9. ^ "Poetry". python-poetry.org. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  10. ^ Leisch, Friedrich. "Creating R Packages: A Tutorial" (PDF). Archived (PDF) from the original on 2025-08-06. Retrieved 2025-08-06.
  11. ^ Graves, Spencer B.; Dorai-Raj, Sundar. "Creating R Packages, Using CRAN, R-Forge, And Local R Archive Networks And Subversion (SVN) Repositories" (PDF). Archived (PDF) from the original on 2025-08-06. Retrieved 2025-08-06.
  12. ^ "The Comprehensive R Archive Network". cran.r-project.org. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  13. ^ "R Installation and Administration". cran.r-project.org. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  14. ^ Wickham, Hadley; Bryan, Jenny. "Package structure and state". R Packages. O'Reilly. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  15. ^ a b Decan, Alexandre; Mens, Tom; Claes, Maelick; Grosjean, Philippe (2015). "On the Development and Distribution of R Packages: An Empirical Analysis of the R Ecosystem". Proceedings of the 2015 European Conference on Software Architecture Workshops. pp. 1–6. doi:10.1145/2797433.2797476. ISBN 9781450333931. S2CID 1680582. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  16. ^ a b "RubyGems.org your community gem host". rubygems. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  17. ^ "Bundler: The best way to manage a Ruby application's gems". bundler.io. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  18. ^ a b "The Cargo Book". Documentation. Rust Programming Language. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  19. ^ "Rust Package Registry". crates.io. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  20. ^ "List of Top Repositories by Programming Language". Stack Overflow. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  21. ^ "npm About". www.npmjs.com. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  22. ^ developers, The pip, pip: The PyPA recommended tool for installing Python packages., archived from the original on 2025-08-06, retrieved 2025-08-06
  23. ^ "Apt - Debian Wiki". wiki.debian.org. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  24. ^ "Homebrew". Homebrew. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  25. ^ "Yelp launches Yelp Fusion, Microsoft creates Vcpkg tool, and the new Touch Sense SDK for Android developers". SD Times. September 20, 2016. Archived from the original on November 27, 2020. Retrieved November 19, 2020.
  26. ^ "Microsoft's C++ library manager now available for Linux and macOS". SD Times. April 25, 2018. Archived from the original on September 22, 2020. Retrieved November 19, 2020.
  27. ^ Chinthaguntla, Keerthi (22 April 2020). "Linux package management with YUM and RPM". Enable Sysadmin. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  28. ^ "pacman - ArchWiki". wiki.archlinux.org. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  29. ^ "Nexus Repository | Software Component Management". Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  30. ^ Chris, Tucker (2025-08-06). "Optimal Package Install/Uninstall Manager" (PDF). UC San Diego: 1. Archived (PDF) from the original on 2025-08-06. Retrieved 2025-08-06. {{cite journal}}: Cite journal requires |journal= (help)
  31. ^ "Linux repository classification schemes". braintickle.blogspot.com. 13 January 2006. Archived from the original on 2025-08-06. Retrieved 2025-08-06.
饭后腹胀是什么原因 年轻人长老年斑是什么原因 沙僧的武器叫什么 棋字五行属什么 法官是干什么的
spiderking是什么牌子 红艳煞是什么意思 总是打哈欠是什么原因 什么是活检检查 植物生长需要什么
化疗后吃什么恢复快 乳酸杆菌少或无是什么意思 霉菌反复发作是什么原因 西亚是什么人种 性功能下降是什么原因
脚麻木是什么原因 点了痣要注意什么 欧阳修是什么居士 腹茧症是什么病 风是什么
aww是什么意思bjhyzcsm.com hobbs是什么牌子hcv9jop5ns2r.cn 牙疼吃什么药最好最有效hcv7jop9ns7r.cn 广东有什么城市jasonfriends.com 明了是什么意思hcv9jop2ns2r.cn
肝血管瘤是什么原因引起的yanzhenzixun.com 区号是什么hcv9jop2ns1r.cn 胆气不足吃什么中成药hcv7jop6ns4r.cn 人事代理什么意思hcv8jop4ns3r.cn 移徒是什么意思hcv8jop5ns0r.cn
老年人补什么钙效果最好bjhyzcsm.com 白醋泡脚有什么好处hcv9jop0ns7r.cn 什么是信仰hcv8jop5ns3r.cn 沉冤得雪是什么意思hcv8jop9ns2r.cn 氧化剂是什么shenchushe.com
切片是什么意思hcv9jop3ns0r.cn 膝盖内侧疼吃什么药hcv9jop1ns6r.cn 西同念什么zsyouku.com 出汗多是什么病hcv9jop5ns2r.cn 淋巴结肿大是什么原因hcv7jop5ns3r.cn
百度