diff --git a/published/20180814 Top Linux developers- recommended programming books.md b/published/20180814 Top Linux developers- recommended programming books.md new file mode 100644 index 0000000000..a7990377cf --- /dev/null +++ b/published/20180814 Top Linux developers- recommended programming books.md @@ -0,0 +1,100 @@ +顶级 Linux 开发者推荐的编程书籍 +====== + +![](https://www.hpe.com/content/dam/hpe/insights/articles/2018/08/top-linux-developers-recommended-programming-books/featuredStory/Top-recommended-programming-books.jpg) + +> 毫无疑问,Linux 是由那些拥有深厚计算机知识背景而且才华横溢的程序员发明的。让那些大名鼎鼎的 Linux 程序员向如今的开发者分享一些曾经带领他们登堂入室的好书和技术参考资料吧,你会不会也读过其中几本呢? + +Linux,毫无争议的属于 21 世纪的操作系统。虽然 Linus Torvalds 在建立开源社区这件事上做了很多工作和社区决策,不过那些网络专家和开发者愿意接受 Linux 的原因还是因为它卓越的代码质量和高可用性。Torvalds 是个编程天才,同时必须承认他还是得到了很多其他同样极具才华的开发者的无私帮助。 + +就此我咨询了 Torvalds 和其他一些顶级 Linux 开发者,有哪些书籍帮助他们走上了成为顶级开发者的道路,下面请听我一一道来。 + +### 熠熠生辉的 C 语言 + +Linux 是在大约上世纪 90 年代开发出来的,与它一起问世的还有其他一些完成基础功能的开源软件。与此相应,那时的开发者使用的工具和语言反映了那个时代的印记,也就是说 C 语言。可能 [C 语言不再流行了][1],可对于很多已经建功立业的开发者来说,C 语言是他们的第一个在实际开发中使用的语言,这一点也在他们推选的对他们有着深远影响的书单中反映出来。 + +Torvalds 说,“你不应该再选用我那个时代使用的语言或者开发方式”,他的开发道路始于 BASIC,然后转向机器码(“甚至都不是汇编语言,而是真真正正的‘二进制’机器码”,他解释道),再然后转向汇编语言和 C 语言。 + +“任何人都不应该再从这些语言开始进入开发这条路了”,他补充道。“这些语言中的一些今天已经没有什么意义(如 BASIC 和机器语言)。尽管 C 还是一个主流语言,我也不推荐你从它开始。” + +并不是他不喜欢 C。不管怎样,Linux 是用 [GNU C 语言][2]写就的。“我始终认为 C 是一个伟大的语言,它有着非常简单的语法,对于很多方向的开发都很合适,但是我怀疑你会遇到重重挫折,从你的第一个‘Hello World’程序开始到你真正能开发出能用的东西当中有很大一步要走”。他认为,用现在的标准,如果作为入门语言的话,从 C 语言开始的代价太大。 + +在他那个时代,Torvalds 的唯一选择的书就只能是 Brian W. Kernighan 和 Dennis M. Ritchie 合著的《[C 编程语言,第二版][3]C Programming Language, 2nd Edition》,它在编程圈内也被尊称为 K&R。“这本书简单精炼,但是你要先有编程的背景才能欣赏它”,Torvalds 说到。 + +Torvalds 并不是唯一一个推荐 K&R 的开源开发者。以下几位也同样引用了这本他们认为值得推荐的书籍,他们有:Linux 和 Oracle 虚拟化开发副总裁 Wim Coekaerts;Linux 开发者 Alan Cox;Google 云 CTO Brian Stevens;Canonical 技术运营部副总裁 Pete Graner。 + +如果你今日还想同 C 语言较量一番的话,Samba 的共同创始人 Jeremy Allison 推荐《[C 程序设计新思维][4]21st Century C: C Tips from the New School》。他还建议,同时也去阅读一本比较旧但是写的更详细的《[C 专家编程][5]Expert C Programming: Deep C Secrets》和有着 20 年历史的《[POSIX 多线程编程][6]Programming with POSIX Threads》。 + +### 如果不选 C 语言, 那选什么? + +Linux 开发者推荐的书籍自然都是他们认为适合今时今日的开发项目的语言工具。这也折射了开发者自身的个人偏好。例如,Allison 认为年轻的开发者应该在《[Go 编程语言][7]The Go Programming Language》和《[Rust 编程][8]Rust with Programming Rust》的帮助下去学习 Go 语言和 Rust 语言。 + +但是超越编程语言来考虑问题也不无道理(尽管这些书传授了你编程技巧)。今日要做些有意义的开发工作的话,"要从那些已经完成了 99% 显而易见工作的框架开始,然后你就能围绕着它开始写脚本了", Torvalds 推荐了这种做法。 + +“坦率来说,语言本身远远没有围绕着它的基础架构重要”,他继续道,“可能你会从 Java 或者 Kotlin 开始,但那是因为你想为自己的手机开发一个应用,因此安卓 SDK 成为了最佳的选择,又或者,你对游戏开发感兴趣,你选择了一个游戏开发引擎来开始,而通常它们有着自己的脚本语言”。 + +这里提及的基础架构包括那些和操作系统本身相关的编程书籍。 +Garner 在读完了大名鼎鼎的 K&R 后又拜读了 W. Richard Steven 的《[Unix 网络编程][10]Unix Network Programming》。特别是,Steven 的《[TCP/IP 详解,卷1:协议][11]TCP/IP Illustrated, Volume 1: The Protocols》在出版了 30 年之后仍然被认为是必读之书。因为 Linux 开发很大程度上和[和网络基础架构有关][12],Garner 也推荐了很多 O'Reilly 在 [Sendmail][13]、[Bash][14]、[DNS][15] 以及 [IMAP/POP][16] 等方面的书。 + +Coekaerts 也是 Maurice Bach 的《[UNIX 操作系统设计][17]The Design of the Unix Operation System》的书迷之一。James Bottomley 也是这本书的推崇者,作为一个 Linux 内核开发者,当 Linux 刚刚问世时 James 就用 Bach 的这本书所传授的知识将它研究了个底朝天。 + +### 软件设计知识永不过时 + +尽管这样说有点太局限在技术领域。Stevens 还是说到,“所有的开发者都应该在开始钻研语法前先研究如何设计,《[设计心理学][18]The Design of Everyday Things》是我的最爱”。 + +Coekaerts 喜欢 Kernighan 和 Rob Pike 合著的《[程序设计实践][19]The Practic of Programming》。这本关于设计实践的书当 Coekaerts 还在学校念书的时候还未出版,他说道,“但是我把它推荐给每一个人”。 + +不管何时,当你问一个长期从事于开发工作的开发者他最喜欢的计算机书籍时,你迟早会听到一个名字和一本书:Donald Knuth 和他所著的《[计算机程序设计艺术(1-4A)][20]The Art of Computer Programming, Volumes 1-4A》。VMware 首席开源官 Dirk Hohndel,认为这本书尽管有永恒的价值,但他也承认,“今时今日并非极其有用”。(LCTT 译注:不代表译者观点) + +### 读代码。大量的读。 + +编程书籍能教会你很多,也请别错过另外一个在开源社区特有的学习机会:《[代码阅读方法与实践][21]Code Reading: The Open Source Perspective》。那里有不可计数的代码例子阐述如何解决编程问题(以及如何让你陷入麻烦……)。Stevens 说,谈到磨炼编程技巧,在他的书单里排名第一的“书”是 Unix 的源代码。 + +“也请不要忽略从他人身上学习的各种机会。” Cox 道,“我是在一个计算机俱乐部里和其他人一起学的 BASIC,在我看来,这仍然是一个学习的最好办法”,他从《[精通 ZX81 机器码][22]Mastering machine code on your ZX81》这本书和 Honeywell L66 B 编译器手册里学习到了如何编写机器码,但是学习技术这点来说,单纯阅读和与其他开发者在工作中共同学习仍然有着很大的不同。 + +Cox 说,“我始终认为最好的学习方法是和一群人一起试图去解决你们共同关心的一些问题并从中找到快乐,这和你是 5 岁还是 55 岁无关”。 + +最让我吃惊的是这些顶级 Linux 开发者都是在非常底层级别开始他们的开发之旅的,甚至不是从汇编语言或 C 语言,而是从机器码开始开发。毫无疑问,这对帮助开发者理解计算机在非常微观的底层级别是怎么工作的起了非常大的作用。 + +那么现在你准备好尝试一下硬核 Linux 开发了吗?Greg Kroah-Hartman,这位 Linux 内核稳定分支的维护者,推荐了 Steve Oualline 的《[实用 C 语言编程][23]Practical C Programming》和 Samuel harbison 与 Guy Steels 合著的《[C 语言参考手册][24]C: A Reference Manual》。接下来请阅读[如何进行 Linux 内核开发][25]HOWTO do Linux kernel development,到这时,就像 Kroah-Hartman 所说,你已经准备好启程了。 + +于此同时,还请你刻苦学习并大量编码,最后祝你在跟随顶级 Linux 开发者脚步的道路上好运相随。 + + +-------------------------------------------------------------------------------- + +via: https://www.hpe.com/us/en/insights/articles/top-linux-developers-recommended-programming-books-1808.html + +作者:[Steven Vaughan-Nichols][a] +选题:[lujun9972](https://github.com/lujun9972) +译者:[DavidChenLiang](https://github.com/DavidChenLiang) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://www.hpe.com/us/en/insights/contributors/steven-j-vaughan-nichols.html +[1]:https://www.codingdojo.com/blog/7-most-in-demand-programming-languages-of-2018/ +[2]:https://www.gnu.org/software/gnu-c-manual/ +[3]:https://amzn.to/2nhyjEO +[4]:https://amzn.to/2vsL8k9 +[5]:https://amzn.to/2KBbWn9 +[6]:https://amzn.to/2M0rfeR +[7]:https://amzn.to/2nhyrnMe +[8]:http://shop.oreilly.com/product/0636920040385.do +[9]:https://www.hpe.com/us/en/resources/storage/containers-for-dummies.html?jumpid=in_510384402_linuxbooks_containerebook0818 +[10]:https://amzn.to/2MfpbyC +[11]:https://amzn.to/2MpgrTn +[12]:https://www.hpe.com/us/en/insights/articles/how-to-see-whats-going-on-with-your-linux-system-right-now-1807.html +[13]:http://shop.oreilly.com/product/9780596510299.do +[14]:http://shop.oreilly.com/product/9780596009656.do +[15]:http://shop.oreilly.com/product/9780596100575.do +[16]:http://shop.oreilly.com/product/9780596000127.do +[17]:https://amzn.to/2vsCJgF +[18]:https://amzn.to/2APzt3Z +[19]:https://www.amazon.com/Practice-Programming-Addison-Wesley-Professional-Computing/dp/020161586X/ref=as_li_ss_tl?ie=UTF8&linkCode=sl1&tag=thegroovycorpora&linkId=e6bbdb1ca2182487069bf9089fc8107e&language=en_US +[20]:https://amzn.to/2OknFsJ +[21]:https://amzn.to/2M4VVL3 +[22]:https://amzn.to/2OjccJA +[23]:http://shop.oreilly.com/product/9781565923065.do +[24]:https://amzn.to/2OjzgrT +[25]:https://www.kernel.org/doc/html/v4.16/process/howto.html diff --git a/translated/tech/20181025 Monitoring database health and behavior- Which metrics matter.md b/published/20181025 Monitoring database health and behavior- Which metrics matter.md similarity index 60% rename from translated/tech/20181025 Monitoring database health and behavior- Which metrics matter.md rename to published/20181025 Monitoring database health and behavior- Which metrics matter.md index 5fbaf71b69..b8cfabc248 100644 --- a/translated/tech/20181025 Monitoring database health and behavior- Which metrics matter.md +++ b/published/20181025 Monitoring database health and behavior- Which metrics matter.md @@ -1,9 +1,11 @@ -监测数据库的健康和行为: 有哪些重要指标? +监测数据库的健康和行为:有哪些重要指标? ====== -对数据库的监测可能过于困难或者没有监测到关键点。本文将讲述如何正确的监测数据库。 + +> 对数据库的监测可能过于困难或者没有找到关键点。本文将讲述如何正确的监测数据库。 + ![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/metrics_graph_stats_blue.png?itok=OKCc_60D) -我们没有足够的讨论数据库。在这个充满监测仪器的时代,我们监测我们的应用程序、基础设施、甚至我们的用户,但有时忘记我们的数据库也值得被监测。这很大程度是因为数据库表现的很好,以至于我们单纯地信任它能把任务完成的很好。信任固然重要,但能够证明它的表现确实如我们所期待的那样就更好了。 +我们没有对数据库讨论过多少。在这个充满监测仪器的时代,我们监测我们的应用程序、基础设施、甚至我们的用户,但有时忘记我们的数据库也值得被监测。这很大程度是因为数据库表现的很好,以至于我们单纯地信任它能把任务完成的很好。信任固然重要,但能够证明它的表现确实如我们所期待的那样就更好了。 ![](https://opensource.com/sites/default/files/styles/medium/public/uploads/image1_-_bffs.png?itok=BZQM_Fos) @@ -13,11 +15,11 @@ ![](https://opensource.com/sites/default/files/styles/medium/public/uploads/image5_fire.png?itok=wsip2Fa4) -更具体地说,数据库是系统健康和行为的重要标志。数据库中的异常行为能够指出应用程序中出现问题的区域。另外,当应用程序中有异常行为时,你可以利用数据库的指标来迅速完成排除故障的过程。 +更具体地说,数据库是系统健康和行为的重要标志。数据库中的异常行为能够指出应用程序中出现问题的区域。另外,当应用程序中有异常行为时,你可以利用数据库的指标来迅速完成排除故障的过程。 ### 问题 -最轻微的调查揭示了监测数据库的一个问题:数据库有很多指标。说“很多”只是轻描淡写,如果你是Scrooge McDuck,你可以浏览所有可用的指标。如果这是Wrestlemania,那么指标就是折叠椅。监测所有指标似乎并不实用,那么你如何决定要监测哪些指标? +最轻微的调查揭示了监测数据库的一个问题:数据库有很多指标。说“很多”只是轻描淡写,如果你是史高治Scrooge McDuck(LCTT 译注:史高治,唐老鸭的舅舅,以一毛不拔著称),你不会放过任何一个可用的指标。如果这是摔角狂热Wrestlemania 比赛,那么指标就是折叠椅。监测所有指标似乎并不实用,那么你如何决定要监测哪些指标? ![](https://opensource.com/sites/default/files/styles/medium/public/uploads/image2_db_metrics.png?itok=Jd9NY1bt) @@ -29,11 +31,11 @@ 开始检测数据库的最好方法是跟踪它所接到请求的数量。我们对数据库有较高期望;期望它能稳定的存储数据,并处理我们抛给它的所有查询,这些查询可能是一天一次大规模查询,或者是来自用户一天到晚的数百万次查询。吞吐量可以告诉我们数据库是否如我们期望的那样工作。 -你也可以将请求安照类型(读,写,服务器端,客户端等)分组,以开始分析流量。 +你也可以将请求按照类型(读、写、服务器端、客户端等)分组,以开始分析流量。 ### 执行时间:数据库完成工作需要多长时间? -这个指标看起来很明显,但往往被忽视了。 你不仅想知道数据库收到了多少请求,还想知道数据库在每个请求上花费了多长时间。 然而,参考上下文来讨论执行时间非常重要:像InfluxDB这样的时间序列数据库中的慢与像MySQL这样的关系型数据库中的慢不一样。InfluxDB中的慢可能意味着毫秒,而MySQL的“SLOW_QUERY”变量的默认值是10秒。 +这个指标看起来很明显,但往往被忽视了。你不仅想知道数据库收到了多少请求,还想知道数据库在每个请求上花费了多长时间。 然而,参考上下文来讨论执行时间非常重要:像 InfluxDB 这样的时间序列数据库中的慢与像 MySQL 这样的关系型数据库中的慢不一样。InfluxDB 中的慢可能意味着毫秒,而 MySQL 的 `SLOW_QUERY` 变量的默认值是 10 秒。 ![](https://opensource.com/sites/default/files/styles/medium/public/uploads/image4_slow_is_relative.png?itok=9RkuzUi8) @@ -43,7 +45,7 @@ 一旦你知道数据库正在处理多少请求以及每个请求需要多长时间,你就需要添加一层复杂性以开始从这些指标中获得实际值。 -如果数据库接收到十个请求,并且每个请求需要十秒钟来完成,那么数据库是否忙碌了100秒、10秒,或者介于两者之间?并发任务的数量改变了数据库资源的使用方式。当你考虑连接和线程的数量等问题时,你将开始对数据库指标有更全面的了解。 +如果数据库接收到十个请求,并且每个请求需要十秒钟来完成,那么数据库是忙碌了 100 秒、10 秒,还是介于两者之间?并发任务的数量改变了数据库资源的使用方式。当你考虑连接和线程的数量等问题时,你将开始对数据库指标有更全面的了解。 并发性还能影响延迟,这不仅包括任务完成所需的时间(执行时间),还包括任务在处理之前需要等待的时间。 @@ -53,15 +55,15 @@ ![](https://opensource.com/sites/default/files/styles/medium/public/uploads/image6_telephone.png?itok=YzdpwUQP) -该指标对于确定数据库的整体健康和性能特别有用。如果只能在80%的时间内响应请求,则可以重新分配资源、进行优化工作,或者进行更改以更接近高可用性。 +该指标对于确定数据库的整体健康和性能特别有用。如果只能在 80% 的时间内响应请求,则可以重新分配资源、进行优化工作,或者进行更改以更接近高可用性。 ### 好消息 -监测和分析似乎非常困难,特别是因为我们大多数人不是数据库专家,我们可能没有时间去理解这些指标。但好消息是,大部分的工作已经为我们做好了。许多数据库都有一个内部性能数据库(Postgres:pg_stats、CouchDB:Runtime_.、InfluxDB:_internal等),数据库工程师设计该数据库来监测与该特定数据库有关的指标。你可以看到像慢速查询的数量一样广泛的内容,或者像数据库中每个事件的平均微秒一样详细的内容。 +监测和分析似乎非常困难,特别是因为我们大多数人不是数据库专家,我们可能没有时间去理解这些指标。但好消息是,大部分的工作已经为我们做好了。许多数据库都有一个内部性能数据库(Postgres:`pg_stats`、CouchDB:`Runtime_Statistics`、InfluxDB:`_internal` 等),数据库工程师设计该数据库来监测与该特定数据库有关的指标。你可以看到像慢速查询的数量一样广泛的内容,或者像数据库中每个事件的平均微秒一样详细的内容。 ### 结论 -数据库创建了足够的指标以使我们需要长时间研究,虽然内部性能数据库充满了有用的信息,但并不总是使你清楚应该关注哪些指标。 从吞吐量,执行时间,并发性和利用率开始,它们为你提供了足够的信息,使你可以开始了解你的数据库中的情况。 +数据库创建了足够的指标以使我们需要长时间研究,虽然内部性能数据库充满了有用的信息,但并不总是使你清楚应该关注哪些指标。从吞吐量、执行时间、并发性和利用率开始,它们为你提供了足够的信息,使你可以开始了解你的数据库中的情况。 ![](https://opensource.com/sites/default/files/styles/medium/public/uploads/image3_3_hearts.png?itok=iHF-OSwx) @@ -74,7 +76,7 @@ via: https://opensource.com/article/18/10/database-metrics-matter 作者:[Katy Farmer][a] 选题:[lujun9972][b] 译者:[ChiZelin](https://github.com/ChiZelin) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 diff --git a/published/20181030 How Do We Find Out The Installed Packages Came From Which Repository.md b/published/20181030 How Do We Find Out The Installed Packages Came From Which Repository.md new file mode 100644 index 0000000000..f675342f6f --- /dev/null +++ b/published/20181030 How Do We Find Out The Installed Packages Came From Which Repository.md @@ -0,0 +1,367 @@ +我们如何得知安装的包来自哪个仓库? +========== + +有时候你可能想知道安装的软件包来自于哪个仓库。这将帮助你在遇到包冲突问题时进行故障排除。 + +因为[第三方仓库][1]拥有最新版本的软件包,所以有时候当你试图安装一些包的时候会出现兼容性的问题。 + +在 Linux 上一切都是可能的,因为你可以安装一个即使在你的发行版系统上不能使用的包。 + +你也可以安装一个最新版本的包,即使你的发行版系统仓库还没有这个版本,怎么做到的呢? + +这就是为什么出现了第三方仓库。它们允许用户从库中安装所有可用的包。 + +几乎所有的发行版系统都允许第三方软件库。一些发行版还会官方推荐一些不会取代基础仓库的第三方仓库,例如 CentOS 官方推荐安装 [EPEL 库][2]。 + +下面是常用的仓库列表和它们的详细信息。 + + * CentOS: [EPEL][2]、[ELRepo][3] 等是 [Centos 社区认证仓库](4)。 + * Fedora: [RPMfusion 仓库][5] 是经常被很多 [Fedora][6] 用户使用的仓库。 + * ArchLinux: ArchLinux 社区仓库包含了来自于 Arch 用户仓库的可信用户审核通过的软件包。 + * openSUSE: [Packman 仓库][7] 为 openSUSE 提供了各种附加的软件包,特别是但不限于那些在 openSUSE Build Service 应用黑名单上的与多媒体相关的应用和库。它是 openSUSE 软件包的最大外部软件库。 + * Ubuntu:个人软件包归档(PPA)是一种软件仓库。开发者们可以创建这种仓库来分发他们的软件。你可以在 PPA 导航页面找到相关信息。同时,你也可以启用 Cananical 合作伙伴软件仓库。 + +### 仓库是什么? + +软件仓库是存储特定的应用程序的软件包的集中场所。 + +所有的 Linux 发行版都在维护他们自己的仓库,并允许用户在他们的机器上获取和安装包。 + +每个厂商都提供了各自的包管理工具来管理它们的仓库,例如搜索、安装、更新、升级、删除等等。 + +除了 RHEL 和 SUSE 以外大部分 Linux 发行版都是自由软件。要访问付费的仓库,你需要购买其订阅服务。 + +### 为什么我们需要启用第三方仓库? + +在 Linux 里,并不建议从源代码安装包,因为这样做可能会在升级软件和系统的时候产生很多问题,这也是为什么我们建议从库中安装包而不是从源代码安装。 + +### 在 RHEL/CentOS 系统上我们如何得知安装的软件包来自哪个仓库? + +这可以通过很多方法实现。我们会给你所有可能的选择,你可以选择一个对你来说最合适的。 + +#### 方法-1:使用 yum 命令 + +RHEL 和 CentOS 系统使用 RPM 包,因此我们能够使用 [Yum 包管理器][8] 来获得信息。 + +YUM 即 “Yellodog Updater, Modified” 是适用于基于 RPM 的系统例如 RHEL 和 CentOS 的一个开源命令行前端包管理工具。 + +`yum` 是从发行版仓库和其他第三方库中获取、安装、删除、查询和管理 RPM 包的一个主要工具。 + +``` +# yum info apachetop +Loaded plugins: fastestmirror +Loading mirror speeds from cached hostfile + * epel: epel.mirror.constant.com +Installed Packages +Name : apachetop +Arch : x86_64 +Version : 0.15.6 +Release : 1.el7 +Size : 65 k +Repo : installed +From repo : epel +Summary : A top-like display of Apache logs +URL : https://github.com/tessus/apachetop +License : BSD +Description : ApacheTop watches a logfile generated by Apache (in standard common or + : combined logformat, although it doesn't (yet) make use of any of the extra + : fields in combined) and generates human-parsable output in realtime. +``` + +`apachetop` 包来自 EPEL 仓库。 + +#### 方法-2:使用 yumdb 命令 + +`yumdb info` 提供了类似于 `yum info` 的信息但是它又提供了包校验和数据、类型、用户信息(谁安装的软件包)。从 yum 3.2.26 开始,yum 已经开始在 rpmdatabase 之外存储额外的信息(user 表示软件是用户安装的,dep 表示它是作为依赖项引入的)。 + +``` +# yumdb info lighttpd +Loaded plugins: fastestmirror +lighttpd-1.4.50-1.el7.x86_64 + checksum_data = a24d18102ed40148cfcc965310a516050ed437d728eeeefb23709486783a4d37 + checksum_type = sha256 + command_line = --enablerepo=epel install lighttpd apachetop aria2 atop axel + from_repo = epel + from_repo_revision = 1540756729 + from_repo_timestamp = 1540757483 + installed_by = 0 + origin_url = https://epel.mirror.constant.com/7/x86_64/Packages/l/lighttpd-1.4.50-1.el7.x86_64.rpm + reason = user + releasever = 7 + var_contentdir = centos + var_infra = stock + var_uuid = ce328b07-9c0a-4765-b2ad-59d96a257dc8 +``` + +`lighttpd` 包来自 EPEL 仓库。 + +#### 方法-3:使用 rpm 命令 + +[RPM 命令][9] 即 “Red Hat Package Manager” 是一个适用于基于 Red Hat 的系统(例如 RHEL、CentOS、Fedora、openSUSE & Mageia)的强大的命令行包管理工具。 + +这个工具允许你在你的 Linux 系统/服务器上安装、更新、移除、查询和验证软件。RPM 文件具有 .rpm 后缀名。RPM 包是用必需的库和依赖关系构建的,不会与系统上安装的其他包冲突。 + +``` +# rpm -qi apachetop +Name : apachetop +Version : 0.15.6 +Release : 1.el7 +Architecture: x86_64 +Install Date: Mon 29 Oct 2018 06:47:49 AM EDT +Group : Applications/Internet +Size : 67020 +License : BSD +Signature : RSA/SHA256, Mon 22 Jun 2015 09:30:26 AM EDT, Key ID 6a2faea2352c64e5 +Source RPM : apachetop-0.15.6-1.el7.src.rpm +Build Date : Sat 20 Jun 2015 09:02:37 PM EDT +Build Host : buildvm-22.phx2.fedoraproject.org +Relocations : (not relocatable) +Packager : Fedora Project +Vendor : Fedora Project +URL : https://github.com/tessus/apachetop +Summary : A top-like display of Apache logs +Description : +ApacheTop watches a logfile generated by Apache (in standard common or +combined logformat, although it doesn't (yet) make use of any of the extra +fields in combined) and generates human-parsable output in realtime. +``` + +`apachetop` 包来自 EPEL 仓库。 + +#### 方法-4:使用 repoquery 命令 + +`repoquery` 是一个从 YUM 库查询信息的程序,类似于 rpm 查询。 + +``` +# repoquery -i httpd + +Name : httpd +Version : 2.4.6 +Release : 80.el7.centos.1 +Architecture: x86_64 +Size : 9817285 +Packager : CentOS BuildSystem +Group : System Environment/Daemons +URL : http://httpd.apache.org/ +Repository : updates +Summary : Apache HTTP Server +Source : httpd-2.4.6-80.el7.centos.1.src.rpm +Description : +The Apache HTTP Server is a powerful, efficient, and extensible +web server. +``` + +`httpd` 包来自 CentOS updates 仓库。 + +### 在 Fedora 系统上我们如何得知安装的包来自哪个仓库? + +DNF 是 “Dandified yum” 的缩写。DNF 是使用 hawkey/libsolv 库作为后端的下一代 yum 包管理器(yum 的分支)。从 Fedora 18 开始 Aleš Kozumplík 开始开发 DNF,并最终在 Fedora 22 上得以应用/启用。 + +[dnf 命令][10] 用于在 Fedora 22 以及之后的系统上安装、更新、搜索和删除包。它会自动解决依赖并使安装包的过程变得顺畅,不会出现任何问题。 + +``` +$ dnf info tilix +Last metadata expiration check: 27 days, 10:00:23 ago on Wed 04 Oct 2017 06:43:27 AM IST. +Installed Packages +Name : tilix +Version : 1.6.4 +Release : 1.fc26 +Arch : x86_64 +Size : 3.6 M +Source : tilix-1.6.4-1.fc26.src.rpm +Repo : @System +From repo : updates +Summary : Tiling terminal emulator +URL : https://github.com/gnunn1/tilix +License : MPLv2.0 and GPLv3+ and CC-BY-SA +Description : Tilix is a tiling terminal emulator with the following features: + : + : - Layout terminals in any fashion by splitting them horizontally or vertically + : - Terminals can be re-arranged using drag and drop both within and between + : windows + : - Terminals can be detached into a new window via drag and drop + : - Input can be synchronized between terminals so commands typed in one + : terminal are replicated to the others + : - The grouping of terminals can be saved and loaded from disk + : - Terminals support custom titles + : - Color schemes are stored in files and custom color schemes can be created by + : simply creating a new file + : - Transparent background + : - Supports notifications when processes are completed out of view + : + : The application was written using GTK 3 and an effort was made to conform to + : GNOME Human Interface Guidelines (HIG). +``` + +`tilix` 包来自 Fedora updates 仓库。 + +### 在 openSUSE 系统上我们如何得知安装的包来自哪个仓库? + +Zypper 是一个使用 libzypp 的命令行包管理器。[Zypper 命令][11] 提供了存储库访问、依赖处理、包安装等功能。 + +``` +$ zypper info nano + +Loading repository data... +Reading installed packages... + + +Information for package nano: +----------------------------- +Repository : Main Repository (OSS) +Name : nano +Version : 2.4.2-5.3 +Arch : x86_64 +Vendor : openSUSE +Installed Size : 1017.8 KiB +Installed : No +Status : not installed +Source package : nano-2.4.2-5.3.src +Summary : Pico editor clone with enhancements +Description : + GNU nano is a small and friendly text editor. It aims to emulate + the Pico text editor while also offering a few enhancements. +``` + +`nano` 包来自于 openSUSE Main 仓库(OSS)。 + +### 在 ArchLinux 系统上我们如何得知安装的包来自哪个仓库? + +[Pacman 命令][12] 即包管理器工具(package manager utility ),是一个简单的用来安装、构建、删除和管理 Arch Linux 软件包的命令行工具。Pacman 使用 libalpm 作为后端来执行所有的操作。 + +``` +# pacman -Ss chromium +extra/chromium 48.0.2564.116-1 + The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser +extra/qt5-webengine 5.5.1-9 (qt qt5) + Provides support for web applications using the Chromium browser project +community/chromium-bsu 0.9.15.1-2 + A fast paced top scrolling shooter +community/chromium-chromevox latest-1 + Causes the Chromium web browser to automatically install and update the ChromeVox screen reader extention. Note: This + package does not contain the extension code. +community/fcitx-mozc 2.17.2313.102-1 + Fcitx Module of A Japanese Input Method for Chromium OS, Windows, Mac and Linux (the Open Source Edition of Google Japanese + Input) +``` + +`chromium` 包来自 ArchLinux extra 仓库。 + +或者,我们可以使用以下选项获得关于包的详细信息。 + +``` +# pacman -Si chromium +Repository : extra +Name : chromium +Version : 48.0.2564.116-1 +Description : The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser +Architecture : x86_64 +URL : http://www.chromium.org/ +Licenses : BSD +Groups : None +Provides : None +Depends On : gtk2 nss alsa-lib xdg-utils bzip2 libevent libxss icu libexif libgcrypt ttf-font systemd dbus + flac snappy speech-dispatcher pciutils libpulse harfbuzz libsecret libvpx perl perl-file-basedir + desktop-file-utils hicolor-icon-theme +Optional Deps : kdebase-kdialog: needed for file dialogs in KDE + gnome-keyring: for storing passwords in GNOME keyring + kwallet: for storing passwords in KWallet +Conflicts With : None +Replaces : None +Download Size : 44.42 MiB +Installed Size : 172.44 MiB +Packager : Evangelos Foutras +Build Date : Fri 19 Feb 2016 04:17:12 AM IST +Validated By : MD5 Sum SHA-256 Sum Signature +``` + +`chromium` 包来自 ArchLinux extra 仓库。 + +### 在基于 Debian 的系统上我们如何得知安装的包来自哪个仓库? + +在基于 Debian 的系统例如 Ubuntu、LinuxMint 上可以使用两种方法实现。 + +#### 方法-1:使用 apt-cache 命令 + +[apt-cache 命令][13] 可以显示存储在 APT 内部数据库的很多信息。这些信息是一种缓存,因为它们是从列在 `source.list` 文件里的不同的源中获得的。这个过程发生在 apt 更新操作期间。 + +``` +$ apt-cache policy python3 +python3: + Installed: 3.6.3-0ubuntu2 + Candidate: 3.6.3-0ubuntu3 + Version table: + 3.6.3-0ubuntu3 500 + 500 http://in.archive.ubuntu.com/ubuntu artful-updates/main amd64 Packages + *** 3.6.3-0ubuntu2 500 + 500 http://in.archive.ubuntu.com/ubuntu artful/main amd64 Packages + 100 /var/lib/dpkg/status +``` + +`python3` 包来自 Ubuntu updates 仓库。 + +#### 方法-2:使用 apt 命令 + +[APT 命令][14] 即 “Advanced Packaging Tool”,是 `apt-get` 命令的替代品,就像 DNF 是如何取代 YUM 一样。它是具有丰富功能的命令行工具并将所有的功能例如 `apt-cache`、`apt-search`、`dpkg`、`apt-cdrom`、`apt-config`、`apt-ket` 等包含在一个命令(APT)中,并且还有几个独特的功能。例如我们可以通过 APT 轻松安装 .dpkg 包,但我们不能使用 `apt-get` 命令安装,更多类似的功能都被包含进了 APT 命令。`apt-get` 因缺失了很多未被解决的特性而被 `apt` 取代。 + +``` +$ apt -a show notepadqq +Package: notepadqq +Version: 1.3.2-1~artful1 +Priority: optional +Section: editors +Maintainer: Daniele Di Sarli +Installed-Size: 1,352 kB +Depends: notepadqq-common (= 1.3.2-1~artful1), coreutils (>= 8.20), libqt5svg5 (>= 5.2.1), libc6 (>= 2.14), libgcc1 (>= 1:3.0), libqt5core5a (>= 5.9.0~beta), libqt5gui5 (>= 5.7.0), libqt5network5 (>= 5.2.1), libqt5printsupport5 (>= 5.2.1), libqt5webkit5 (>= 5.6.0~rc), libqt5widgets5 (>= 5.2.1), libstdc++6 (>= 5.2) +Download-Size: 356 kB +APT-Sources: http://ppa.launchpad.net/notepadqq-team/notepadqq/ubuntu artful/main amd64 Packages +Description: Notepad++-like editor for Linux + Text editor with support for multiple programming + languages, multiple encodings and plugin support. + +Package: notepadqq +Version: 1.2.0-1~artful1 +Status: install ok installed +Priority: optional +Section: editors +Maintainer: Daniele Di Sarli +Installed-Size: 1,352 kB +Depends: notepadqq-common (= 1.2.0-1~artful1), coreutils (>= 8.20), libqt5svg5 (>= 5.2.1), libc6 (>= 2.14), libgcc1 (>= 1:3.0), libqt5core5a (>= 5.9.0~beta), libqt5gui5 (>= 5.7.0), libqt5network5 (>= 5.2.1), libqt5printsupport5 (>= 5.2.1), libqt5webkit5 (>= 5.6.0~rc), libqt5widgets5 (>= 5.2.1), libstdc++6 (>= 5.2) +Homepage: http://notepadqq.altervista.org +Download-Size: unknown +APT-Manual-Installed: yes +APT-Sources: /var/lib/dpkg/status +Description: Notepad++-like editor for Linux + Text editor with support for multiple programming + languages, multiple encodings and plugin support. +``` + +`notepadqq` 包来自 Launchpad PPA。 + +-------------------------------------------------------------------------------- + +via: https://www.2daygeek.com/how-do-we-find-out-the-installed-packages-came-from-which-repository/ + +作者:[Prakash Subramanian][a] +选题:[lujun9972][b] +译者:[zianglei](https://github.com/zianglei) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.2daygeek.com/author/prakash/ +[b]: https://github.com/lujun9972 +[1]: https://www.2daygeek.com/category/repository/ +[2]: https://www.2daygeek.com/install-enable-epel-repository-on-rhel-centos-scientific-linux-oracle-linux/ +[3]: https://www.2daygeek.com/install-enable-elrepo-on-rhel-centos-scientific-linux/ +[4]: https://www.2daygeek.com/additional-yum-repositories-for-centos-rhel-fedora-systems/ +[5]: https://www.2daygeek.com/install-enable-rpm-fusion-repository-on-centos-fedora-rhel/ +[6]: https://fedoraproject.org/wiki/Third_party_repositories +[7]: https://www.2daygeek.com/install-enable-packman-repository-on-opensuse-leap/ +[8]: https://www.2daygeek.com/yum-command-examples-manage-packages-rhel-centos-systems/ +[9]: https://www.2daygeek.com/rpm-command-examples/ +[10]: https://www.2daygeek.com/dnf-command-examples-manage-packages-fedora-system/ +[11]: https://www.2daygeek.com/zypper-command-examples-manage-packages-opensuse-system/ +[12]: https://www.2daygeek.com/pacman-command-examples-manage-packages-arch-linux-system/ +[13]: https://www.2daygeek.com/apt-get-apt-cache-command-examples-manage-packages-debian-ubuntu-systems/ +[14]: https://www.2daygeek.com/apt-command-examples-manage-packages-debian-ubuntu-systems/ diff --git a/translated/tech/20181108 Choosing a printer for Linux.md b/published/20181108 Choosing a printer for Linux.md similarity index 67% rename from translated/tech/20181108 Choosing a printer for Linux.md rename to published/20181108 Choosing a printer for Linux.md index 330c44300a..0d13ffd990 100644 --- a/translated/tech/20181108 Choosing a printer for Linux.md +++ b/published/20181108 Choosing a printer for Linux.md @@ -1,40 +1,45 @@ 为 Linux 选择打印机 ====== -Linux 为打印机提供了广泛的支持。学习如何利用它。 + +> Linux 为打印机提供了广泛的支持。学习如何利用它。 + ![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/email_paper_envelope_document.png?itok=uPj_kouJ) -我们在传闻已久的无纸化社会方面取得了重大进展,但我们仍需要不时打印文件。如果你是 Linux 用户并有一台没有 Linux 安装盘的打印机,或者你正准备在市场上购买新设备,那么你很幸运。因为大多数 Linux 发行版(以及 MacOS)都使用通用 Unix 打印系统([CUPS][1]),它包含了当今大多数打印机的驱动程序。这意味着 Linux 为打印机提供了比 Windows 更广泛的支持。 +我们在传闻已久的无纸化社会方面取得了重大进展,但我们仍需要不时打印文件。如果你是 Linux 用户,并有一台没有 Linux 安装盘的打印机,或者你正准备在市场上购买新设备,那么你很幸运。因为大多数 Linux 发行版(以及 MacOS)都使用通用 Unix 打印系统([CUPS][1]),它包含了当今大多数打印机的驱动程序。这意味着 Linux 为打印机提供了比 Windows 更广泛的支持。 ### 选择打印机 如果你需要购买新打印机,了解它是否支持 Linux 的最佳方法是查看包装盒或制造商网站上的文档。你也可以搜索 [Open Printing][2] 数据库。它是检查各种打印机与 Linux 兼容性的绝佳资源。 以下是与 Linux 兼容的佳能打印机的一些 Open Printing 结果。 + ![](https://opensource.com/sites/default/files/uploads/linux-printer_2-openprinting.png) -下面的截图是 Open Printing 的 Hewlett-Packard LaserJet 4050 的结果 - 根据数据库,它应该“完美”工作。列出了建议驱动以及通用说明,让我了解它适用于 CUPS、行式打印守护程序(LPD)、LPRng 等。 +下面的截图是 Open Printing 的 Hewlett-Packard LaserJet 4050 的结果 —— 根据数据库,它应该可以“完美”工作。这里列出了建议驱动以及通用说明,让我了解它适用于 CUPS、行式打印守护程序(LPD)、LPRng 等。 + ![](https://opensource.com/sites/default/files/uploads/linux-printer_3-hplaserjet.png) 在任何情况下,最好在购买打印机之前检查制造商的网站并询问其他 Linux 用户。 ### 检查你的连接 -有几种方法可以将打印机连接到计算机。如果你的打印机是通过 USB 连接的,那么可以在 Bash 提示符下输入 **lsusb** 来轻松检查连接。 +有几种方法可以将打印机连接到计算机。如果你的打印机是通过 USB 连接的,那么可以在 Bash 提示符下输入 `lsusb` 来轻松检查连接。 ``` $ lsusb ``` -该命令返回 **Bus 002 Device 004: ID 03f0:ad2a Hewlett-Packard** - 这没有太多信息,但可以得知打印机已连接。我可以通过输入以下命令获得有关打印机的更多信息: +该命令返回 “Bus 002 Device 004: ID 03f0:ad2a Hewlett-Packard” —— 这没有太多价值,但可以得知打印机已连接。我可以通过输入以下命令获得有关打印机的更多信息: ``` $ dmesg | grep -i usb ``` 结果更加详细。 + ![](https://opensource.com/sites/default/files/uploads/linux-printer_1-dmesg.png) -如果你尝试将打印机连接到并口(假设你的计算机有并口 - 如今很少见),你可以使用此命令检查连接: +如果你尝试将打印机连接到并口(假设你的计算机有并口 —— 如今很少见),你可以使用此命令检查连接: ``` $ dmesg | grep -i parport @@ -44,11 +49,11 @@ $ dmesg | grep -i parport ### 设置你的打印机软件 -Fedora Linux 和 Ubuntu Linux 都包含简单的打印机设置工具。[Fedora][3] 为打印问题的答案维护了一个出色的 wiki。可以在 GUI 中的设置轻松启动这些工具,也可以在命令行上调用 **system-config-printer**。 +Fedora Linux 和 Ubuntu Linux 都包含简单的打印机设置工具。[Fedora][3] 为打印问题的答案维护了一个出色的 wiki。可以在 GUI 中的设置轻松启动这些工具,也可以在命令行上调用 `system-config-printer`。 ![](https://opensource.com/sites/default/files/uploads/linux-printer_4-printersetup.png) -惠普支持 Linux 打印的 [HP Linux 成像和打印][4] (HPLIP) 软件可能已安装在你的 Linux 系统上。如果没有,你可以为你的发行版[下载][5]最新版本。打印机制造商 [Epson][6] 和 [Brother][7] 也有带有 Linux 打印机驱动程序和信息的网页。 +HP 支持 Linux 打印的 [HP Linux 成像和打印][4] (HPLIP) 软件可能已安装在你的 Linux 系统上。如果没有,你可以为你的发行版[下载][5]最新版本。打印机制造商 [Epson][6] 和 [Brother][7] 也有带有 Linux 打印机驱动程序和信息的网页。 你最喜欢的 Linux 打印机是什么?请在评论中分享你的意见。 @@ -59,7 +64,7 @@ via: https://opensource.com/article/18/11/choosing-printer-linux 作者:[Don Watkins][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 diff --git a/sources/talk/20180817 Mixing software development roles produces great results.md b/sources/talk/20180817 Mixing software development roles produces great results.md deleted file mode 100644 index e47aaaec51..0000000000 --- a/sources/talk/20180817 Mixing software development roles produces great results.md +++ /dev/null @@ -1,73 +0,0 @@ -Translating by lixinyuxx - -Mixing software development roles produces great results -====== - -![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/checklist_hands_team_collaboration.png?itok=u82QepPk) - -Most open source communities don’t have a lot of formal roles. There are certainly people who help with sysadmin tasks, testing, writing documentation, and translating or developing code. But people in open source communities typically move among different roles, often fulfilling several at once. - -In contrast, team members at most traditional companies have defined roles, working on documentation, support, QA, and in other areas. - -Why do open source communities take a shared-role approach, and more importantly, how does this way of collaborating affect products and customers? - -[Nextcloud][1] has adopted this community-style practice of mixing roles, and we see large benefits for our customers and our users. - -### 1\. Better product testing - -Testing is a difficult job, as any tester can tell you. You need to understand the products engineers develop, and you need to devise test plans, execute them, and return the results to the developers. When that process is done, the developer makes changes, and you repeat the process, going back-and-forth as many times as necessary until the job is done. - -In a community, contributors typically feel responsible for the projects they develop, so they test and document them extensively before handing them to users. Users close to the project often help test, translate, and write documentation in collaboration with developers. This creates a much tighter, faster feedback loop, speeding up development and improving quality. - -When developers continuously confront the results of their work, it encourages them to write in a way that minimizes testing and debugging. Automated testing is an important element in development, and the feedback loop ensures that it is done right: Developers are organically motivated to automate what should be automated—no more and no less. Sure, they might _want_ others to do more testing or test automation, but when testing is the right thing to do, they do it. Moreover, they review each others' code because they know that issues tend to come back bite them later. - -So, while I won't argue that it's better to forgo dedicated testers, certainly in a project without community volunteers who test, testers should be developers and closely embedded in the development team. The result? Customers get a product that was tested and developed by people who are 100% motivated to ensure that it is stable and reliable. - -### 2\. Close alignment between development and customer needs - -It is extraordinarily difficult to align product development with customer needs. Every customer has their own unique needs, there are long- and short-term factors to consider—and of course, as a company, you have ideas on where you want to go. How do you integrate all these ideas and visions? - -Companies typically create roles like product management, support, QA, and others, which are separate from engineering and product development. The idea behind this is that people do best when they specialize, and engineers shouldn't be bothered with "simple" tasks like testing or support. - -In effect, this role separation is a cost-cutting measure. It enables management to micromanage and feel more in control as they can simply order product management, for example, to prioritize items on the roadmap. (It also creates more meetings!) - -In communities, on the other hand, "those who do the work decide." Developers are often also users (or are paid by users), so they align with users’ needs naturally. When users help with testing (as described above), developers work with them constantly, so both sides fully understand what is possible and what is needed. - -This open way of working closely aligns users and projects. Without management interference and overhead, users' most pressing needs can be quickly met because engineers already intimately understand them. - -At Nextcloud, customers never need to explain things twice or rely on a junior support team member to accurately communicate issues to an engineer. Our engineers continuously calibrate their priorities based on real customer needs. Meanwhile, long-term goals are set collaboratively, based on a deep knowledge of our customers. - -### 3\. The best support - -Unlike proprietary or [open core][2] vendors, open source vendors have a powerful incentive to offer the best possible support: It is a key differentiator from other companies in their ecosystem. - -Why is the driving force behind a project—think [Collabora][3] behind [LibreOffice][4], [The Qt Company][5] behind [Qt][6], or [Red Hat][7] behind [RHEL][8]—the best source of customer support? - -Direct access to engineers, of course. Rather than walling off support from engineering, many of these companies offer customers access to engineers' expertise. This helps ensure that customers always get the best answers as quickly as possible. While some engineers may spend more time than others on support, the entire engineering team plays a role in customer success. Proprietary vendors might provide customers a dedicated on-site engineer for a considerable cost, for example, but an open source company like [OpenNMS][9] offers that same level of service in your support contract—even if you’re not a Fortune 500 customer. - -There's another benefit, which relates back to testing and customer alignment: Sharing roles ensures that engineers deal with customer issues and wishes daily, which motivates them to fix the most common problems quickly. They also tend to build extra tools and features to save customers from asking. - -Put simply, folding QA, support, product management, and other engineering roles into one team ensures that the three famous virtues of great developers—[laziness, impatience, and hubris][10]—closely align with customers. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/18/8/mixing-roles-engineering - -作者:[Jos Poortvliet][a] -选题:[lujun9972](https://github.com/lujun9972) -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:https://opensource.com/users/jospoortvliet -[1]:https://nextcloud.com/ -[2]:https://en.wikipedia.org/wiki/Open_core -[3]:https://www.collaboraoffice.com/ -[4]:https://www.libreoffice.org/ -[5]:https://www.qt.io/ -[6]:https://www.qt.io/developers/ -[7]:https://www.redhat.com/en -[8]:https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux -[9]:https://www.opennms.org/en -[10]:http://threevirtues.com/ diff --git a/sources/talk/20181116 Akash Angle- How do you Fedora.md b/sources/talk/20181116 Akash Angle- How do you Fedora.md index 4930b7d82c..1c5fe612cf 100644 --- a/sources/talk/20181116 Akash Angle- How do you Fedora.md +++ b/sources/talk/20181116 Akash Angle- How do you Fedora.md @@ -1,3 +1,5 @@ +translating---geekpi + Akash Angle: How do you Fedora? ====== ![](https://fedoramagazine.org/wp-content/uploads/2018/11/akash-angle-816x345.jpg) diff --git a/sources/tech/20180807 5 reasons the i3 window manager makes Linux better.md b/sources/tech/20180807 5 reasons the i3 window manager makes Linux better.md index 8ad6a4ac7d..fb4329f9a8 100644 --- a/sources/tech/20180807 5 reasons the i3 window manager makes Linux better.md +++ b/sources/tech/20180807 5 reasons the i3 window manager makes Linux better.md @@ -1,3 +1,5 @@ +translating by lixinyuxx + 5 reasons the i3 window manager makes Linux better ====== diff --git a/translated/talk/20180817 Mixing software development roles produces great results.md b/translated/talk/20180817 Mixing software development roles produces great results.md new file mode 100644 index 0000000000..d753f6f027 --- /dev/null +++ b/translated/talk/20180817 Mixing software development roles produces great results.md @@ -0,0 +1,71 @@ +混合软件开发角色效果更佳 +====== + +![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/checklist_hands_team_collaboration.png?itok=u82QepPk) + +大多数开源社区没有很多正式的角色。当然, 也有一些固定人员帮助处理系统管理员任务、测试、编写文档以及翻译或开发代码。但开源社区的人员通常在不同的角色之间流动, 往往同时履行几个角色的职责。 + +相反, 大多数传统公司的团队成员都定义了角色,例如, 负责文档、技术支持、质量检验和其他领域。 + +为什么开源社区采取共享角色的方法, 更重要的是, 这种协作方式如何影响产品和客户? + +[Nextcloud][1] 采用了这种社区式的混合角色的做法, 我们看到了我们的客户和用户受益颇多。 + +### 1\.更好的产品测试 + + 任何测试人员都会说测试是一项困难的工作。你需要了解工程师开发的产品, 并且需要设计测试案例、执行测试案例并将结果返回给开发人员。完成该过程后, 开发人员将进行更改, 然后重复该过程, 根据需要来回进行多次,直到任务完成。 + +在社区中, 贡献者通常会对他们开发的项目负责, 因此他们会对这些项目进行广泛的测试和记录, 然后再将其交给用户。贴近项目的用户通常会与开发人员协作, 帮助测试、翻译和编写文档。这将创建一个更紧密、更快的反馈循环, 从而加快开发速度并提高质量。 + +当开发人员不断面对他们的工作结果时, 它鼓励他们以最大限度地减少测试和调试的方式去书写。自动化测试是开发中的一个重要元素, 反馈循环可以确保正确地完成操作: 开发人员主观能动的来实现自动化--而不过于简化也不过于复杂。当然, 他们可能希望别人做更多的测试或自动化的测试 但当测试是正确的选择时, 他们就会这样做。此外, 他们还审查对方的代码, 因为他们知道问题往往会在以后让他们付出代价。 + +因此, 虽然我不认为放弃专用测试人员更好, 但在没有社区志愿者进行测试的项目中, 测试人员应该是开发人员, 并密切嵌入到开发团队中。结果如何?客户得到的产品是由100% 有动机的人测试和开发的, 以确保它是稳定和可靠的。 + +### 2\. 开发和客户需求之间的密切协作 + +要使产品开发与客户需求保持一致是非常困难的。每个客户都有自己独特的需求, 有长期和短期的因素需要考虑--当然, 作为一家公司, 你对你的方向有想法。你如何整合所有这些想法和愿景? + +公司通常创建与工程和产品开发分开的角色, 如产品管理、支持、质量检测等。这背后的想法是, 人们在专攻的时候做得最好, 工程师不应该为测试或支持等 "简单" 的任务而烦恼。 + +实际上, 这种角色分离是一项削减成本的措施。它使管理层能够进行微观管理, 并更能掌握全局, 因为他们可以简单地进行产品管理, 例如, 确定路线图项目的优先次序。(它还创建了更多的会议!) + +另一方面, 在社区, "决定权在工作者手上"。开发人员通常也是用户 (或由用户支付报酬), 因此他们自然地与用户的需求保持一致。当用户帮助进行测试时 (如上所述), 开发人员会不断地与他们合作, 因此双方都完全了解什么是可行的, 什么是需要的。 + +这种开放的合作方式使用户和项目紧密协作。在没有管理层干涉和指手画脚的情况下, 用户最迫切的需求可以迅速得到满足, 因为工程师已经非常了解这些需求。 + +在 nextcloud 中, 客户永远不需要解释两次, 也不需要依靠初级支持团队成员将问题准确地传达给工程师。我们的工程师根据客户的实际需求不断调整他们的优先级。同时, 基于对客户的深入了解, 合作制定长期目标。 + +### 3\. 最佳支持 + +与专有的或 [open core][2](开放源核心)的开发商不同, 开源供应商有强大的动力提供尽可能最好的支持: 它是与其他公司在其生态系统中的关键区别。 + +为什么项目背后有动力?—比如 [Collabora][3] 在 [LibreOffice][4] 背后, [The Qt Company][5] 在 [Qt][6] 背后, 或者 [Red Hat][7] 在 [RHEL][8] 背后—最佳来源于客户的支持? + +当然, 直接接触工程师。许多公司并阻断工程的支持, 而是为客户提供了获得工程师专业知识的机会。这有助于确保客户始终尽快获得最佳答案。虽然一些工程师可能比其他人在支持上花费更多的时间, 但整个工程团队在客户成功方面发挥着作用。自营供应商可能会为客户提供一个专门的现场工程师, 费用相当高, 例如,但一个开源公司, 如 [OpenNMS][9] 在您的支持合同中提供相同级别的服务, 即使您不是财富500强客户也是如此。 + +还有一个好处, 那就是与测试和客户协作有关: 共享角色可确保工程师每天处理客户问题和愿望, 从而促使他们快速解决最常见的问题。他们还倾向于构建额外的工具和功能, 以满足客户预期。 + +简单地说, 将 质量检测、支持、产品管理和其他工程角色合并为一个团队, 可确保优秀开发人员的三大优点--[laziness, impatience, and hubris][10](从简,精益求精,高度自我要求)—与客户紧密保持一致。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/18/8/mixing-roles-engineering + +作者:[Jos Poortvliet][a] +选题:[lujun9972](https://github.com/lujun9972) +译者:[lixinyuxx](https://github.com/lixinyuxx) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]:https://opensource.com/users/jospoortvliet +[1]:https://nextcloud.com/ +[2]:https://en.wikipedia.org/wiki/Open_core +[3]:https://www.collaboraoffice.com/ +[4]:https://www.libreoffice.org/ +[5]:https://www.qt.io/ +[6]:https://www.qt.io/developers/ +[7]:https://www.redhat.com/en +[8]:https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux +[9]:https://www.opennms.org/en +[10]:http://threevirtues.com/ diff --git a/translated/tech/20180814 Top Linux developers- recommended programming books.md b/translated/tech/20180814 Top Linux developers- recommended programming books.md deleted file mode 100644 index 28725009db..0000000000 --- a/translated/tech/20180814 Top Linux developers- recommended programming books.md +++ /dev/null @@ -1,110 +0,0 @@ - -顶级 Linux 开发者推荐的编程书籍 -====== - -毫无疑问,Linux 是由那些拥有深厚计算机知识背景而且才华横溢的程序员发明的。让那些大名鼎鼎的 Linux 程序员向今日的开发者分享一些曾经带领他们登堂入室的好书和技术参考吧,你会不会也读过其中几本呢? - -Linux,毫无争议的属于21世纪的操作系统。虽然Linus Torvalds 在建立开源社区这件事上做了很多工作和社区决策,不过那些网络专家和开发者愿意接受Linux的原因还是因为它卓越的代码质量和高可用性。Torvalds 是个编程天才,同时必须承认他还是得到了很多其他同样极具才华的开发者的无私帮助。 - -就此我咨询了Torvalds 和其他一些顶级Linux开发者,有哪些书籍帮助他们走上了成为顶级开发者的道路,下面请听我一一道来。 - -### 熠熠生辉的 C语言 - -Linux 是在大约90年代开发出来的,与它一起问世的还有其他一些完成基础功能的开源软件。与此相应,那时的开发者使用的工具和语言反映了那个时代的印记。可能[C 语言不再流行了][1],可对于很多已经建功立业的开发者来说,C 语言是他们的第一个实际开发中使用的语言,这一点也在他们推选的对他们有着深远影响的书单中反映出来。 - -Torvalds 说,“你不应该再选用我那个时代使用的语言或者开发方式”,他的开发道路始于BASIC,然后转向机器码(“甚至都不是汇编语言,而是真真正正的’二进制‘机器码”,他解释道),再然后转向汇编语言和 C 语言。 - -“任何人都不应该再从这些语言开始进入开发这条路了”,他补充道。“这些语言中的一些今天已经没有什么意义(如 BASIC 和机器语言)。尽管 C 还是一个主流语言,我也不推荐你从它开始你的开发工作”。 - -并不是他不喜欢 C。不管怎样,Linux 是用[C语言GNU C][2]写就的。“我始终认为 C 是一个伟大的语言,它有着非常简单的语法,对于很多方向的开发都很合适,但是我怀疑你会挫折重重,从你的第一个'Hello World'程序开始到你真正能开发出能用的东西当中有很大一步要走”。他认为,如果用现在的标准,如果作为现在的入门语言的话,从 C语言开始的代价太大。 - -在他那个时代,Torvalds 的唯一选择的书就只能是Brian W. Kernighan 和Dennis M. Ritchie 合著的[C 编程语言C Programming Language, 2nd Edition][3],在编程圈内也被尊称为K&R。“这本书简单精炼,但是你要先有编程的背景才能欣赏它”。Torvalds 说到。 - -Torvalds 并不是唯一一个推荐K&R 的开源开发者。以下几位也同样引用了这本他们认为值得推荐的书籍,他们有:Linux 和 Oracle 虚拟化开发副总裁,Wim Coekaerts;Linux 开发者Alan Cox; Google 云 CTO Brian Stevens; Canonical 技术运营部副总裁Pete Graner。 - - -如果你今日还想同 C 语言较量一番的话,Jeremy Allison,Samba 的共同发起人,推荐[21世纪的 C 语言21st Century C: C Tips from the New School][4]。他还建议,同时也去阅读一本比较旧但是写的更详细的[C专家编程Expert C Programming: Deep C Secrets][5]和有着20年历史的[UNIX POSIX多线程编程Programming with POSIX Threads][6]。 - - -### 如果不选C 语言, 那选什么? - - Linux 开发者推荐的书籍自然都是他们认为适合今时今日的开发项目的语言工具。这也折射了开发者自身的个人偏好。例如, Allison认为年轻的开发者应该在[Go 编程语言The Go Programming Language ][7]和[Rust 编程Rust with Programming Rust][8]的帮助下去学习 Go 语言和 Rust 语言。 - - -但是超越编程语言来考虑问题也不无道理(尽管这些书传授了你编程技巧)。今日要做些有意义的开发工作的话,"要从那些已经完成了99%显而易见工作的框架开始,然后你就能围绕着它开始写脚本了", Torvalds 推荐了这种做法。 - - -“坦率来说,语言本身远远没有围绕着它的基础架构重要”,他继续道,“可能你会从 Java 或者Kotlin 开始,但那是因为你想为自己的手机开发一个应用,因此安卓 SDK 成为了最佳的选择,又或者,你对游戏开发感兴趣,你选择了一个游戏开发引擎来开始,而通常它们有着自己的脚本语言”。 - - -这里提及的基础架构包括那些和操作系统本身相关的编程书籍。 -Garner 在读完了大名鼎鼎的 K&R后又拜读了W. Richard Steven 的[Unix 网络编程Unix: Network Programming][10]。特别的是,Steven 的[TCP/IP详解,卷1:协议TCP/IP Illustrated, Volume 1: The Protocols][11]在出版了30年之后仍然被认为是必读的。因为 Linux 开发很大程度上和[和网络基础架构有关][12],Garner 也推荐了很多 O’Reilly 的书,包括[Sendmail][13],[Bash][14],[DNS][15],以及[IMAP/POP][16]。 - -Coekaerts也是Maurice Bach的[UNIX操作系统设计The Design of the Unix Operation System][17]的书迷之一。James Bottomley 也是这本书的推崇者,作为一个 Linux 内核开发者,当 Linux 刚刚问世时James就用Bach 的这本书所传授的知识将它研究了个底朝天。 - -### 软件设计知识永不过时 - -尽管这样说有点太局限在技术领域。Stevens 还是说到,“所有的开发者都应该在开始钻研语法前先研究如何设计,[日常物品的设计The Design of Everyday Things][18]是我的最爱”。 - -Coekaerts 喜欢Kernighan 和 Rob Pike合著的[程序设计实践The Practic of Programming][19]。这本关于设计实践的书当 Coekaerts 还在学校念书的时候还未出版,他说道,“但是我把它推荐给每一个人”。 - - -不管何时,当你问一个长期认真对待开发工作的开发者他最喜欢的计算机书籍时,你迟早会听到一个名字和一本书: -Donald Knuth和他所著的[计算机程序设计艺术(1-4A)The Art of Computer Programming, Volumes 1-4A][20]。Dirk Hohndel,VMware 首席开源官,认为这本书尽管有永恒的价值,但他也承认,“今时今日并非及其有用”。(译注:不代表译者观点) - - -### 读代码。大量的读。 - -编程书籍能教会你很多,也请别错过另外一个在开源社区特有的学习机会:[如何阅读代码Code Reading: The Open Source Perspective][21]。那里有不可计数的代码例子阐述如何解决编程问题(以及如何让你陷入麻烦...)。Stevens 说,谈到磨炼编程技巧,在他的书单里排名第一的“书”是 Unix 的源代码。 - -"也请不要忽略从他人身上学习的各种机会。", Cox道,“我是在一个计算机俱乐部里和其他人一起学的 BASIC,在我看来,这仍然是一个学习的最好办法”,他从[精通 ZX81机器码Mastering machine code on your ZX81][22]这本书和 Honeywell L66 B 编译器手册里学习到了如何编写机器码,但是学习技术这点来说,单纯阅读和与其他开发者在工作中共同学习仍然有着很大的不同。 - - -Cox 说,“我始终认为最好的学习方法是和一群人一起试图去解决你们共同关心的一些问题并从中找到快乐,这和你是5岁还是55岁无关”。 - - -最让我吃惊的是这些顶级 Linux 开发者都是在非常底层级别开始他们的开发之旅的,甚至不是从汇编语言或 C 语言,而是从机器码开始开发。毫无疑问,这对帮助开发者理解计算机在非常微观的底层级别是怎么工作的起了非常大的作用。 - - -那么现在你准备好尝试一下硬核 Linux 开发了吗?Greg Kroah-Hartman,这位 Linux 内核过期分支的维护者,推荐了Steve Oualline 的[实用 C 语言编程Practical C Programming][23]和Samuel harbison 以及Guy Steels 合著的[C语言参考手册C: A Reference Manual][24]。接下来请阅读“[如何进行 Linux 内核开发HOWTO do Linux kernel development][25]”,到这时,就像Kroah-Hartman所说,你已经准备好启程了。 - -于此同时,还请你刻苦学习并大量编码,最后祝你在跟随顶级 Linux 开发者脚步的道路上好运相随。 - - --------------------------------------------------------------------------------- - -via: https://www.hpe.com/us/en/insights/articles/top-linux-developers-recommended-programming-books-1808.html - -作者:[Steven Vaughan-Nichols][a] -选题:[lujun9972](https://github.com/lujun9972) -译者:DavidChenLiang(https://github.com/DavidChenLiang) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]:https://www.hpe.com/us/en/insights/contributors/steven-j-vaughan-nichols.html -[1]:https://www.codingdojo.com/blog/7-most-in-demand-programming-languages-of-2018/ -[2]:https://www.gnu.org/software/gnu-c-manual/ -[3]:https://amzn.to/2nhyjEO -[4]:https://amzn.to/2vsL8k9 -[5]:https://amzn.to/2KBbWn9 -[6]:https://amzn.to/2M0rfeR -[7]:https://amzn.to/2nhyrnMe -[8]:http://shop.oreilly.com/product/0636920040385.do -[9]:https://www.hpe.com/us/en/resources/storage/containers-for-dummies.html?jumpid=in_510384402_linuxbooks_containerebook0818 -[10]:https://amzn.to/2MfpbyC -[11]:https://amzn.to/2MpgrTn -[12]:https://www.hpe.com/us/en/insights/articles/how-to-see-whats-going-on-with-your-linux-system-right-now-1807.html -[13]:http://shop.oreilly.com/product/9780596510299.do -[14]:http://shop.oreilly.com/product/9780596009656.do -[15]:http://shop.oreilly.com/product/9780596100575.do -[16]:http://shop.oreilly.com/product/9780596000127.do -[17]:https://amzn.to/2vsCJgF -[18]:https://amzn.to/2APzt3Z -[19]:https://www.amazon.com/Practice-Programming-Addison-Wesley-Professional-Computing/dp/020161586X/ref=as_li_ss_tl?ie=UTF8&linkCode=sl1&tag=thegroovycorpora&linkId=e6bbdb1ca2182487069bf9089fc8107e&language=en_US -[20]:https://amzn.to/2OknFsJ -[21]:https://amzn.to/2M4VVL3 -[22]:https://amzn.to/2OjccJA -[23]:http://shop.oreilly.com/product/9781565923065.do -[24]:https://amzn.to/2OjzgrT -[25]:https://www.kernel.org/doc/html/v4.16/process/howto.html diff --git a/translated/tech/20181030 How Do We Find Out The Installed Packages Came From Which Repository.md b/translated/tech/20181030 How Do We Find Out The Installed Packages Came From Which Repository.md deleted file mode 100644 index 8cda009eff..0000000000 --- a/translated/tech/20181030 How Do We Find Out The Installed Packages Came From Which Repository.md +++ /dev/null @@ -1,365 +0,0 @@ -# 我们如何得知安装的包来自哪个仓库? - -有时候你可能想知道安装的软件包来自于哪个仓库。这将帮助你在遇到包冲突问题时进行故障排除。 - -因为[第三方仓库][1]拥有最新版本的软件包,所以有时候当你试图安装一些包的时候会出现兼容性的问题。 - -在 Linux 上一切都是可能的,因为你可以安装一个即使在你的发行版系统上不能使用的包。 - -你也可以安装一个最新版本的包即使你的发行版系统仓库还没有这个版本,怎么做到的呢? - -这就是为什么出现了第三方仓库。它们允许用户从库中安装所有可用的包。 - -几乎所有的发行版系统都允许第三方软件库。一些发行版还会官方推荐一些不会取代基础仓库的第三方仓库,例如 CentOS 官方推荐安装 [EPEL 库][2]。 - -下面是常用的仓库列表和它们的详细信息。 - - * **`CentOS:`** [EPEL][2], [ELRepo][3] 等是 [Centos 社区认证仓库](4)。 - * **`Fedora:`** [RPMfusion repo][5] 是经常被很多 [Fedora][6] 用户使用的仓库。 - * **`ArchLinux:`** ArchLinux 社区仓库包含了来自于 Arch 用户仓库的已经被信任用户 ( Trusted User ) 审核通过的软件包。 - * **`openSUSE:`** [Packman repo][7] 为 openSUSE 提供了各种附加的软件包,特别是但不限于那些在 openSUSE Build Service 应用黑名单上的与多媒体相关的应用和库。它是 openSUSE 软件包的最大外部软件库。 - * **`Ubuntu:`** Personal Package Archives (PPAs) 是一种软件仓库。开发者们可以创建这种仓库来分发他们的软件。你可以在 PPA 导航页面( PPA’s Launchpad page )找到相关信息。同时,你也可以启用 Cananical 合作伙伴软件仓库。 - -### 仓库是什么? - -软件仓库是存储特定的应用程序的软件包的集中场所。 - -所有的 Linux 发行版都在维护他们自己的仓库,并允许用户在他们的机器上获取和安装包。 - -每个厂商都提供了各自的包管理工具来管理它们的仓库,例如搜索、安装、更新、升级、删除等等。 - -大部分 Linux 发行版除了 RHEL 和 SUSE 以外都是免费的。要访问付费的仓库,你需要购买订阅。 - -### 为什么我们需要启用第三方仓库? - -在 Linux 里,并不建议从源代码安装包,因为这样做可能会在升级软件和系统的时候产生很多问题,这也是为什么我们建议从库中安装包而不是从源代码安装。 - -### 在 RHEL/CentOS 系统上我们如何得知安装的软件包来自哪个仓库? - -这可以通过很多方法实现。我们会给你所有可能的选择,你可以选择一个对你来说最合适的。 - -### 方法-1:使用 Yum 命令 - -RHEL 和 CentOS 系统使用 RPM 包因此我们能够使用 [Yum 包管理器][8] 来获得信息。 - -YUM 即 Yellodog Updater,Modified 是适用于基于 RPM 的系统例如 Red Hat Enterpise Linux (RHEL)和 CentOS 的一个开源命令行前端包管理工具。 - -Yum 是从发行版仓库和其他第三方库中获取、安装、删除、查询和管理 RPM 包的一个主要工具。 - -``` -# yum info apachetop -Loaded plugins: fastestmirror -Loading mirror speeds from cached hostfile - * epel: epel.mirror.constant.com -Installed Packages -Name : apachetop -Arch : x86_64 -Version : 0.15.6 -Release : 1.el7 -Size : 65 k -Repo : installed -From repo : epel -Summary : A top-like display of Apache logs -URL : https://github.com/tessus/apachetop -License : BSD -Description : ApacheTop watches a logfile generated by Apache (in standard common or - : combined logformat, although it doesn't (yet) make use of any of the extra - : fields in combined) and generates human-parsable output in realtime. -``` - - -**`apachetop`** 包来自 **`epel repo`**。 - -### 方法-2:使用 Yumdb 命令 - -Yumdb info 提供了类似于 yum info 的信息但是它又提供了包校验和数据、类型、用户信息(谁安装的软件包)。从 yum 3.2.26 开始,yum 已经开始在 rpmdatabase 之外存储额外的信息( user 表示软件是用户安装的,dep 表示它是作为依赖项引入的)。 - -``` -# yumdb info lighttpd -Loaded plugins: fastestmirror -lighttpd-1.4.50-1.el7.x86_64 - checksum_data = a24d18102ed40148cfcc965310a516050ed437d728eeeefb23709486783a4d37 - checksum_type = sha256 - command_line = --enablerepo=epel install lighttpd apachetop aria2 atop axel - from_repo = epel - from_repo_revision = 1540756729 - from_repo_timestamp = 1540757483 - installed_by = 0 - origin_url = https://epel.mirror.constant.com/7/x86_64/Packages/l/lighttpd-1.4.50-1.el7.x86_64.rpm - reason = user - releasever = 7 - var_contentdir = centos - var_infra = stock - var_uuid = ce328b07-9c0a-4765-b2ad-59d96a257dc8 -``` - -**`lighttpd`** 包来自 **`epel repo`**。 - -### 方法-3:使用 RPM 命令 - -[RPM 命令][9] 即 Red Hat Package Manager 是一个适用于基于 Red Hat 的系统(例如 RHEL, CentOS, Fedora, openSUSE & Mageia)的强大的命令行包管理工具。 - -这个工具允许你在你的 Linux 系统/服务器上安装、更新、移除、查询和验证软件。RPM 文件具有 .rpm 后缀名。RPM 包是用必需的库和依赖关系构建的,不会与系统上安装的其他包冲突。 - -``` -# rpm -qi apachetop -Name : apachetop -Version : 0.15.6 -Release : 1.el7 -Architecture: x86_64 -Install Date: Mon 29 Oct 2018 06:47:49 AM EDT -Group : Applications/Internet -Size : 67020 -License : BSD -Signature : RSA/SHA256, Mon 22 Jun 2015 09:30:26 AM EDT, Key ID 6a2faea2352c64e5 -Source RPM : apachetop-0.15.6-1.el7.src.rpm -Build Date : Sat 20 Jun 2015 09:02:37 PM EDT -Build Host : buildvm-22.phx2.fedoraproject.org -Relocations : (not relocatable) -Packager : Fedora Project -Vendor : Fedora Project -URL : https://github.com/tessus/apachetop -Summary : A top-like display of Apache logs -Description : -ApacheTop watches a logfile generated by Apache (in standard common or -combined logformat, although it doesn't (yet) make use of any of the extra -fields in combined) and generates human-parsable output in realtime. -``` - -**`apachetop`** 包来自 **`epel repo`**。 - -### Method-4: Using Repoquery Command - -repoquery 是一个从 YUM 库查询信息的程序,类似于 rpm 查询。 -``` -# repoquery -i httpd - -Name : httpd -Version : 2.4.6 -Release : 80.el7.centos.1 -Architecture: x86_64 -Size : 9817285 -Packager : CentOS BuildSystem -Group : System Environment/Daemons -URL : http://httpd.apache.org/ -Repository : updates -Summary : Apache HTTP Server -Source : httpd-2.4.6-80.el7.centos.1.src.rpm -Description : -The Apache HTTP Server is a powerful, efficient, and extensible -web server. -``` - -**`httpd`** 包来自 **`CentOS updates repo`**。 - -### 在 Fedora 系统上我们如何得知安装的包来自哪个仓库? - -DNF 是 Dandified yum 的缩写。我们可以说 DNF 是使用 hawkey/libsolv 库作为后端的下一代 yum 包管理器( yum 的分支)。从 Fedora 18 开始 Aleš Kozumplík 开始开发 DNF 并最终在 Fedora 22 上得以应用/启用。 - -[Dnf 命令][10] 用于在 Fedora 22 以及之后的系统上安装、更新、搜索和删除包。它会自动解决依赖并使安装包的过程变得顺畅,不会出现任何问题。 - -``` -$ dnf info tilix -Last metadata expiration check: 27 days, 10:00:23 ago on Wed 04 Oct 2017 06:43:27 AM IST. -Installed Packages -Name : tilix -Version : 1.6.4 -Release : 1.fc26 -Arch : x86_64 -Size : 3.6 M -Source : tilix-1.6.4-1.fc26.src.rpm -Repo : @System -From repo : updates -Summary : Tiling terminal emulator -URL : https://github.com/gnunn1/tilix -License : MPLv2.0 and GPLv3+ and CC-BY-SA -Description : Tilix is a tiling terminal emulator with the following features: - : - : - Layout terminals in any fashion by splitting them horizontally or vertically - : - Terminals can be re-arranged using drag and drop both within and between - : windows - : - Terminals can be detached into a new window via drag and drop - : - Input can be synchronized between terminals so commands typed in one - : terminal are replicated to the others - : - The grouping of terminals can be saved and loaded from disk - : - Terminals support custom titles - : - Color schemes are stored in files and custom color schemes can be created by - : simply creating a new file - : - Transparent background - : - Supports notifications when processes are completed out of view - : - : The application was written using GTK 3 and an effort was made to conform to - : GNOME Human Interface Guidelines (HIG). -``` - -**`tilix`** 包来自 **`Fedora updates repo`**。 - -### 在 openSUSE 系统上我们如何得知安装的包来自哪个仓库? - -Zypper 是一个使用 libzypp 的命令行包管理器。[Zypper 命令][11] 提供了存储库访问、依赖处理、包安装等功能。 -``` -$ zypper info nano - -Loading repository data... -Reading installed packages... - - -Information for package nano: ------------------------------ -Repository : Main Repository (OSS) -Name : nano -Version : 2.4.2-5.3 -Arch : x86_64 -Vendor : openSUSE -Installed Size : 1017.8 KiB -Installed : No -Status : not installed -Source package : nano-2.4.2-5.3.src -Summary : Pico editor clone with enhancements -Description : - GNU nano is a small and friendly text editor. It aims to emulate - the Pico text editor while also offering a few enhancements. -``` - -The **`nano`** package is coming from **`openSUSE Main repo (OSS)`**. -**`nano`** 包来自于 **`openSUSE Main repo(OSS)`**。 - -### 在 ArchLinux 系统上我们如何得知安装的包来自哪个仓库? - -[Pacman 命令][12] 即包管理器工具( package manager utility ),是一个简单的用来安装、构建、删除和管理 Arch Linux 软件包的命令行工具。Pacman 使用 libalpm( Arch Linux Package Managment ( ALPM )library)作为后端来执行所有的操作。 - -``` -# pacman -Ss chromium -extra/chromium 48.0.2564.116-1 - The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser -extra/qt5-webengine 5.5.1-9 (qt qt5) - Provides support for web applications using the Chromium browser project -community/chromium-bsu 0.9.15.1-2 - A fast paced top scrolling shooter -community/chromium-chromevox latest-1 - Causes the Chromium web browser to automatically install and update the ChromeVox screen reader extention. Note: This - package does not contain the extension code. -community/fcitx-mozc 2.17.2313.102-1 - Fcitx Module of A Japanese Input Method for Chromium OS, Windows, Mac and Linux (the Open Source Edition of Google Japanese - Input) -``` - -**`chromium`** 包来自 **`ArchLinux extra repo`**。 - -或者,我们可以使用以下选项获得关于包的详细信息。 - -``` -# pacman -Si chromium -Repository : extra -Name : chromium -Version : 48.0.2564.116-1 -Description : The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser -Architecture : x86_64 -URL : http://www.chromium.org/ -Licenses : BSD -Groups : None -Provides : None -Depends On : gtk2 nss alsa-lib xdg-utils bzip2 libevent libxss icu libexif libgcrypt ttf-font systemd dbus - flac snappy speech-dispatcher pciutils libpulse harfbuzz libsecret libvpx perl perl-file-basedir - desktop-file-utils hicolor-icon-theme -Optional Deps : kdebase-kdialog: needed for file dialogs in KDE - gnome-keyring: for storing passwords in GNOME keyring - kwallet: for storing passwords in KWallet -Conflicts With : None -Replaces : None -Download Size : 44.42 MiB -Installed Size : 172.44 MiB -Packager : Evangelos Foutras -Build Date : Fri 19 Feb 2016 04:17:12 AM IST -Validated By : MD5 Sum SHA-256 Sum Signature -``` - -**`chromium`** 包来自 **`ArchLinux extra repo`**。 - -### 在基于 Debian 的系统上我们如何得知安装的包来自哪个仓库? - -在基于 Debian 的系统例如 Ubuntu,LinuxMint 上可以使用两种方法实现。 - -### 方法-1:使用 apt-cache 命令 - -[apt-cache 命令][13] 可以显示存储在 APT 内部数据库的很多信息。这些信息是一种缓存,因为它们是从列在 source.list 文件里的不同的源中获得的。这个过程发生在 apt 更新操作期间。 - -``` -$ apt-cache policy python3 -python3: - Installed: 3.6.3-0ubuntu2 - Candidate: 3.6.3-0ubuntu3 - Version table: - 3.6.3-0ubuntu3 500 - 500 http://in.archive.ubuntu.com/ubuntu artful-updates/main amd64 Packages - * 3.6.3-0ubuntu2 500 - 500 http://in.archive.ubuntu.com/ubuntu artful/main amd64 Packages - 100 /var/lib/dpkg/status -``` - -**`python3`** 包来自 **`Ubuntu updates repo`**。 - -### 方法-2:使用 apt 命令 - -[APT 命令][14] 即 Advanced Packaging Tool(APT)是 apt-get 命令的替代品,就像 DNF 是如何取代 YUM 一样。它是具有丰富功能的命令行工具并将所有的功能例如 apt-cache、apt-search、dpkg、apt-cdrom、apt-config、apt-ket 等包含在一个命令(APT)中,并且还有几个独特的功能。例如我们可以通过 APT 轻松安装 .dpkg 包但我们不能使用 Apt-Get 命令安装,更多类似的功能都被包含进了 APT 命令。APT-GET 因缺失了很多未被解决的特性而被 apt 取代。 - -``` -$ apt -a show notepadqq -Package: notepadqq -Version: 1.3.2-1~artful1 -Priority: optional -Section: editors -Maintainer: Daniele Di Sarli -Installed-Size: 1,352 kB -Depends: notepadqq-common (= 1.3.2-1~artful1), coreutils (>= 8.20), libqt5svg5 (>= 5.2.1), libc6 (>= 2.14), libgcc1 (>= 1:3.0), libqt5core5a (>= 5.9.0~beta), libqt5gui5 (>= 5.7.0), libqt5network5 (>= 5.2.1), libqt5printsupport5 (>= 5.2.1), libqt5webkit5 (>= 5.6.0~rc), libqt5widgets5 (>= 5.2.1), libstdc++6 (>= 5.2) -Download-Size: 356 kB -APT-Sources: http://ppa.launchpad.net/notepadqq-team/notepadqq/ubuntu artful/main amd64 Packages -Description: Notepad++-like editor for Linux - Text editor with support for multiple programming - languages, multiple encodings and plugin support. - -Package: notepadqq -Version: 1.2.0-1~artful1 -Status: install ok installed -Priority: optional -Section: editors -Maintainer: Daniele Di Sarli -Installed-Size: 1,352 kB -Depends: notepadqq-common (= 1.2.0-1~artful1), coreutils (>= 8.20), libqt5svg5 (>= 5.2.1), libc6 (>= 2.14), libgcc1 (>= 1:3.0), libqt5core5a (>= 5.9.0~beta), libqt5gui5 (>= 5.7.0), libqt5network5 (>= 5.2.1), libqt5printsupport5 (>= 5.2.1), libqt5webkit5 (>= 5.6.0~rc), libqt5widgets5 (>= 5.2.1), libstdc++6 (>= 5.2) -Homepage: http://notepadqq.altervista.org -Download-Size: unknown -APT-Manual-Installed: yes -APT-Sources: /var/lib/dpkg/status -Description: Notepad++-like editor for Linux - Text editor with support for multiple programming - languages, multiple encodings and plugin support. -``` -**`notepadqq`** 包来自 **`Launchpad PPA`**。 - --------------------------------------------------------------------------------- - -via: https://www.2daygeek.com/how-do-we-find-out-the-installed-packages-came-from-which-repository/ - -作者:[Prakash Subramanian][a] -选题:[lujun9972][b] -译者:[zianglei](https://github.com/zianglei) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://www.2daygeek.com/author/prakash/ -[b]: https://github.com/lujun9972 -[1]: https://www.2daygeek.com/category/repository/ -[2]: https://www.2daygeek.com/install-enable-epel-repository-on-rhel-centos-scientific-linux-oracle-linux/ -[3]: https://www.2daygeek.com/install-enable-elrepo-on-rhel-centos-scientific-linux/ -[4]: https://www.2daygeek.com/additional-yum-repositories-for-centos-rhel-fedora-systems/ -[5]: https://www.2daygeek.com/install-enable-rpm-fusion-repository-on-centos-fedora-rhel/ -[6]: https://fedoraproject.org/wiki/Third_party_repositories -[7]: https://www.2daygeek.com/install-enable-packman-repository-on-opensuse-leap/ -[8]: https://www.2daygeek.com/yum-command-examples-manage-packages-rhel-centos-systems/ -[9]: https://www.2daygeek.com/rpm-command-examples/ -[10]: https://www.2daygeek.com/dnf-command-examples-manage-packages-fedora-system/ -[11]: https://www.2daygeek.com/zypper-command-examples-manage-packages-opensuse-system/ -[12]: https://www.2daygeek.com/pacman-command-examples-manage-packages-arch-linux-system/ -[13]: https://www.2daygeek.com/apt-get-apt-cache-command-examples-manage-packages-debian-ubuntu-systems/ -[14]: https://www.2daygeek.com/apt-command-examples-manage-packages-debian-ubuntu-systems/