不将日是什么意思| 皈依是什么意思| 女人喝黄芪有什么好处| 一切唯心造是什么意思| 下眼袋大是什么原因引起的| 牙虫是什么样的图片| 胸前骨头疼是什么原因| 万中无一什么意思| 第二学士学位是什么意思| 读警校需要什么条件| 乙肝五项第二项阳性是什么意思| 空调睡眠模式是什么意思| 墨西哥人是什么人种| 什么是脉冲| 信必可是什么药| 梦见彩虹是什么征兆| 克罗心是什么牌子| 孩子头晕挂什么科| 吉兰巴雷综合征是什么病| 手指上的斗和簸箕代表什么意思| 梦见买黄金是什么兆头| jb是什么意思| 碘是什么| 发难是什么意思| 破伤风伤口有什么症状| 长公主是皇上的什么人| 朱元璋是什么民族| 为什么会长结石| rh血型阳性什么意思| 客观原因是什么意思| 心肾不交失眠吃什么中成药| 夏天白鸽煲什么汤最好| 布吉岛什么意思| 最好的烟是什么牌子| 糖尿病能吃什么主食| 晚上睡觉出虚汗是什么原因| 兆字五行属什么| 多走路有什么好处| 牙齿痛什么原因| 饱不洗头饿不洗澡是为什么| 犹太人为什么叫犹太人| 咋啦是什么意思| 什么叫双飞| 七月七是什么星座| molly什么意思| 吃什么能| 梦见梳头发是什么意思| 男生下面长什么样| 什么是买手店| 榴莲树长什么样子| sod是什么意思| 直接胆红素偏低是什么原因| 慢性咽炎用什么药| lcp是什么意思| 苦瓜汤为什么要放黄豆| 樟脑丸是什么| 卫衣是什么| 造血干细胞是什么| 腺体肠化是什么意思| 快递已揽件是什么意思| 肚脐眼上面疼是什么原因| 头孢曲松是什么药| 菊花茶喝多了有什么坏处| 两小无猜是什么意思| 玉米属于什么类| 神经性头疼吃什么药效果好| 孕妇用什么驱蚊最好| 出虚汗是什么原因引起的怎么调理| 间歇性是什么意思| 海参什么人不适合吃| 什么样的大象| 怀孕吃什么水果比较好| 今年流行什么颜色头发| 身体湿气重吃什么药| 吃什么能美白| 为什么一同房就有炎症| 鼻子老是出血是什么原因| 益母草煮鸡蛋有什么功效| 炭疽病用什么农药最好| 排骨炖什么菜好吃| 什么床最环保没甲醛| 卷发适合什么脸型| 氨糖是什么| 手长水泡是什么原因| 春节的习俗是什么| 细菌性阴道炎是什么原因引起的| 甲状腺是什么症状表现| 肌瘤和囊肿有什么区别| 白羊女喜欢什么样的男生| 66岁属什么生肖| 胶原蛋白起什么作用| 纬字五行属什么| 乳房疼吃什么药| 血栓吃什么药可以疏通血管| 梅毒长什么样| 什么吞什么咽| 吃什么食物降尿酸最快| 尿隐血3十是什么病| 什么是基础病| 绝对零度是什么意思| 世界上最大的沙漠是什么沙漠| 凉虾是什么做的| 青蛇是什么蛇| ab型血为什么容易得精神病| 夫妻宫是什么意思| 射手座属于什么星象| 心内科全称叫什么| 去火吃什么食物| nadh是什么| 吃什么瘦肚子脂肪最快| 黄铜是什么| 心率低于60说明什么| fl是什么意思| 减肥最快的方法是什么| 婧五行属什么| 肾结石有什么症状表现| 双肺呼吸音粗是什么意思| 为什么正骨后几天越来越疼| 荧光黄是什么颜色| 尿路感染吃什么药消炎| 员工体检费计入什么科目| 天道好轮回什么意思| 日本的町是什么意思| 基佬是什么意思| 血脂高吃什么蔬菜好| 中医为什么不让睡凉席| 卵泡刺激素高说明什么| 拔牙什么时间最好| 句加一笔是什么字| 茵是什么意思| 噬血细胞综合征是什么病| 1971属什么生肖| 卵巢多囊样改变是什么意思| 胡塞武装是什么| 小本生意做什么好赚钱快| 斋醮是什么意思| 手什么脚什么| 花儿像什么比喻句| 梦见自己拉粑粑是什么意思| mpn是什么意思| 131是什么意思| 漉是什么意思| 速写男装属于什么档次| 煮玉米为什么要放盐| 猫咪泪痕重是什么原因| 师弟是什么意思| 喝白糖水有什么好处和坏处| 过敏性鼻炎用什么药最好| 上分是什么意思| 淋巴癌有什么症状| 长期吃阿司匹林有什么副作用| 八五年属什么生肖| 垂死病中惊坐起什么意思| 钢笔刻字刻什么好| 木字旁加差是什么字| 胆固醇偏高吃什么食物可以降胆固醇| 喇叭裤配什么上衣| 夏至喝什么汤| 犯罪心理学属于什么专业| 舌头干燥是什么原因| 吃什么不胖反而瘦| 刀郎和那英是什么关系| 油为什么会浮在水面上| 什么是公共场所| cph是什么意思| 阿胶不能和什么一起吃| 王莲是什么植物| emba是什么意思| 小孩尿酸高是什么原因| 扳机是什么意思| 吃什么食物对肠胃好| 入殓师是什么意思| 屎壳郎的学名叫什么| 天字加一笔是什么字| 8岁属什么| or是什么意思| 金克什么| 建档立卡是什么| 11月22是什么星座| 扁桃体发炎引起的发烧吃什么药| 指甲竖纹是什么原因| 7月初七是什么日子| 哮喘有什么症状| 抗体和抗原有什么区别| 神经衰弱吃什么好| 磨玻璃影是什么意思| 紫藤花什么时候开| 海松茸是什么| 放疗是什么| 11月13日什么星座| dtc什么意思| 冷喷机喷脸有什么好处| o型血是什么血| 拉肚子肚子疼吃什么药| 烫伤挂什么科| 倾城是什么意思| 为什么一吃饭就拉肚子| 不靠谱是什么意思| 祛斑去医院挂什么科| 什么欢快| 266什么意思| 牛黄是什么东西| 马拉松起源与什么有关| 六月是什么季节| 红枣泡水喝有什么好处| 类风湿为什么反复发烧| 手肘关节疼痛什么原因| 记性越来越差是什么原因| 经常打哈欠是什么原因| 龟奴是什么| 澳门什么时候回归的| 睾丸上长毛意味着什么| 愚人是什么意思| 农历10月22日是什么星座| 什么花粉| 10月26日什么星座| 变性淀粉是什么| 梦见吃樱桃是什么意思| 广州机场叫什么名字| 欧巴什么意思| 俗气是什么意思| 30岁以上适合用什么牌子的护肤品| 香蕉皮擦脸有什么作用与功效| 重金属是什么| 小孩坐飞机需要什么证件| 梦见和邻居吵架什么预兆| 贾珍和贾政是什么关系| 大便不成形吃什么中成药| 什么菜好吃| 看静脉曲张挂什么科| 浩瀚是什么意思| 吸允的读音是什么| 增强胃动力吃什么药| 什么样的牙齿需要矫正| 猫的胡须是干什么用的| 郑州机场叫什么名字| 拟物是什么意思| 925银是什么意思| 上颚痒是什么原因| 普洱茶什么牌子好| 浛是什么意思| 十月十二日是什么星座| 什么是肇事逃逸| 今天过生日是什么星座| 开飞机需要什么驾照| 血常规血红蛋白偏高是什么原因| 咳咳是什么意思| cas是什么意思| 什么树没有叶子| 生态棉是什么面料| 身上长癣是什么原因| 叶黄素对眼睛有什么功效| 办理出院手续都需要什么| 什么季节补钙效果最好| 夏五行属什么| 肚脐眼左边是什么部位| apm是什么牌子| 为什么身上老是痒| 解表化湿是什么意思| 什么是医学检验技术| 辟邪剑法为什么要自宫| 热水器什么牌子好| 86年属虎是什么命| 流黄鼻涕是什么感冒| 百度Jump to content

长途漫游费今年10

From Wikipedia, the free encyclopedia
百度 但是他们却私自把这个消息宣传出去,欺骗投资人。

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-14. Retrieved 2025-08-14.
  3. ^ "Maven – Welcome to Apache Maven". maven.apache.org. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  4. ^ "Julia Package Listing". pkg.julialang.org. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  5. ^ "Quicklisp beta". www.quicklisp.org. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  6. ^ karann-msft. "NuGet Package Manager UI Reference". docs.microsoft.com. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  7. ^ "npm". www.npmjs.com. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  8. ^ "Installing Perl Modules - www.cpan.org". www.cpan.org. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  9. ^ "Poetry". python-poetry.org. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  10. ^ Leisch, Friedrich. "Creating R Packages: A Tutorial" (PDF). Archived (PDF) from the original on 2025-08-14. Retrieved 2025-08-14.
  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-14. Retrieved 2025-08-14.
  12. ^ "The Comprehensive R Archive Network". cran.r-project.org. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  13. ^ "R Installation and Administration". cran.r-project.org. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  14. ^ Wickham, Hadley; Bryan, Jenny. "Package structure and state". R Packages. O'Reilly. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  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-14. Retrieved 2025-08-14.
  16. ^ a b "RubyGems.org your community gem host". rubygems. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  17. ^ "Bundler: The best way to manage a Ruby application's gems". bundler.io. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  18. ^ a b "The Cargo Book". Documentation. Rust Programming Language. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  19. ^ "Rust Package Registry". crates.io. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  20. ^ "List of Top Repositories by Programming Language". Stack Overflow. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  21. ^ "npm About". www.npmjs.com. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  22. ^ developers, The pip, pip: The PyPA recommended tool for installing Python packages., archived from the original on 2025-08-14, retrieved 2025-08-14
  23. ^ "Apt - Debian Wiki". wiki.debian.org. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  24. ^ "Homebrew". Homebrew. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  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-14. Retrieved 2025-08-14.
  28. ^ "pacman - ArchWiki". wiki.archlinux.org. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  29. ^ "Nexus Repository | Software Component Management". Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  30. ^ Chris, Tucker (2025-08-14). "Optimal Package Install/Uninstall Manager" (PDF). UC San Diego: 1. Archived (PDF) from the original on 2025-08-14. Retrieved 2025-08-14. {{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-14. Retrieved 2025-08-14.
十二指肠溃疡a1期什么意思 elle中文叫什么 16周检查什么项目 bull是什么意思 沵是什么意思
白细胞低吃什么 子宫复旧不良有什么症状 红豆配什么打豆浆好喝 抑郁症吃的药叫什么 三五成群是什么生肖
副乡长是什么级别 减肥吃什么水果好 lpn什么意思 宫外孕有什么症状 萌字五行属什么
蛇胆是什么 日晡潮热是什么意思 花茶是什么茶 618什么意思 什么药能降肌酐
为什么可乐能溶解鱼刺hcv9jop6ns5r.cn 锆石是什么hcv9jop1ns2r.cn 上环要做什么检查1949doufunao.com 维生素b什么时候吃效果最好bjhyzcsm.com 米醋和白醋有什么区别hcv7jop9ns2r.cn
繁星是什么意思hcv7jop9ns3r.cn 出梅是什么意思520myf.com 待字闺中是什么意思hcv7jop9ns3r.cn 猪利是什么hcv8jop9ns0r.cn 甲状腺结节吃什么好hcv9jop8ns1r.cn
小熊猫长什么样clwhiglsz.com 蛇头疮用什么治疗最快hcv9jop2ns6r.cn 上海话册那是什么意思hcv8jop1ns9r.cn 丢包率是什么意思weuuu.com 中东为什么叫中东hcv9jop2ns6r.cn
眼睛老是流眼泪是什么原因aiwuzhiyu.com 公鸡为什么打鸣hcv7jop9ns3r.cn 帕金森是什么hcv8jop5ns8r.cn 麝香是什么味道gangsutong.com 糖耐量受损是什么意思hcv8jop4ns3r.cn
百度