Gentoo 命令手册

更新Portage树

Portage树存放位置:/usr/portage

从镜像站更新Portage树

root # emerge --sync

从Gentoo的每日Portage树快照更新

root # emerge --webrsync

查询、下载、安装、更新软件

查询软件

标题全部或部分匹配关键词

user $ emerge --search something

查询描述匹配关键字

user $ emerge --searchdesc something

也可以使用

user $ emerge -S something

安装软件

root # emerge --ask dev-something/something

查询某个包没有安装的依赖包

root # emerge --pretend something

软件的二进制包下载位置:/usr/portage/distfiles/

只下载二进制文件,不安装

root # emerge --fetchonly something

卸载软件

root # emerge --unmerge something

如果配置文件被修改过将会保留下来,下次安装直接使用

安装此包时所安装的所有依赖包都会保留下来,如需删除使用如需命令

root # emerge --umerge --depclean something

更新系统

root # emerge --update --ask @world

此命令会展示并询问升级清单,但是不会升级它们的依赖包

已安装软件的清单:/var/lib/portage/world

升级软件及其依赖包(不包含编译及安装时所需的依赖包)使用命令:

root # emerge --update --deep @world

如果同样需要升级编译及安装时的依赖包,使用命令:

root # emerge --update --deep --with-bdeps=y @world

一些系统的安全升级可以一同使用

root # emerge --update --deep --with-bdeps=y --newuse @world

元数据包

删除孤立包的流程:

root # emerge --update --deep --newuse @world

root # emerge --depclean

root # revdep-rebuild

其中revdep-rebuild命令是由app-portage/gentookit包提供,需要提前安装:

root # emerge --ask app-portage/gentookit

Gentoo 安装Git教程

自从看到上篇文章《Archlinux Vs Gentoo》开始,彻底着了Gentoo的道。在一番折腾之后把能换的系统全装了Gentoo,之前的常用软件要一个个的重装。真是生命不止,折腾不休!

本篇主要记录在Gentoo系统上安装git,及基本的配置,主要参考Gentoo wiki Git篇。同时也会介绍怎样设置ssh,让每次的push、pull简单高效。

安装git

安装dev-vcs/git:

root # emerge --ask dev-vcs/git

git基本设置

每个用户必须首先设置用户名及邮箱,例如:

user  git config --global user.name "rqc"   user  git config --global user.email "hi@rqc.im"  

至此,git基本设置已经完成。不过,每次使用git push、git pull等命令时,都需要频繁的输入用户名及密码,如此繁琐完全不符合git的简单高效。建议还是按照以下步骤进行设置,以ssh方式连接git。

ssh方式连接git

  1. 查看本地是否存在ssh密钥:

user $ ls -al ~/.ssh

如果存在删除或直接进行步骤③

  1. 生成ssh密钥:

user $ ssh-keygen -t rsa -C "hi@rqc.im"

  1. 复制 ~/.ssh/id_rsa.pub 文档内容至github或coding账户中。
  2. 测试连通性

user $ ssh -T git@git.coding.net

至此已经完成设置,不过还是要确认远程仓库的地址是否是ssh地址

  1. 查看远程连接地址

user $ git remote -v

如果是https地址,需要通过以下命令更换:

user $ git remote set-url origin git@git.coding.net:rqc/test.git

Archlinux Vs Gentoo

Archlinux Vs Gentoo

最近把阿里云服务器的系统换成了Gentoo,因为之前玩了几年的Archlinux 对这类滚动升级型系统比较熟悉,但是阿里云不提供Archlinux!百般纠结之后还是决定选择Gentoo!
于是,在中外各大网站博客中搜集Gentoo 的教程,感觉此篇很有见地,所以翻译出来分享给大家。
本文翻译自:http://blog.srvthe.net/archlinux-vs-gentoo/

为什么我离开

不久之前,我还在赞美Archlinux 的优点呢,特别是在和Ubuntu 进行比较的时候。 我不得不说,其中大部分的说法依然成立,就像我坚信Archlinux 是一款轻量级、可高度自定义的发行版一样。

但是,对于我来说,Gentoo 给了一个更高程度的可定制性。即使Archlinux 社区也同意这个说法,像Arch wiki的这个比较页面Arch Linux与其他发行版比较指出的,Gentoo 拥有更高的可定制性,尽管它不能很快的去部署。

以我的想法,最主要的卖点是Portage 超越 Pacman。

Portage vs Pacman

Gentoo和Archlinux 都是滚动升级系统,意味着它们都没有截止“最终版”,像我们见到过的其他发行版的版本号,如:Ubuntu、Fedora、CentOS和SuSE。在滚动升级系统中,包管理器只是简单的给你最新的稳定包。然而,Arch 处理滚动升级的方式存在根本上的缺陷。

为什么Pacman 很糟糕

使用Pacman,可能会发生当你安装一个软件的一个依赖库,然后,安装另一款软件时需要一个更新版本的相同依赖库。Pacman 将会让你去安装新的依赖库,也就是说你已经满足这个包的需求!它将会安装这个包没有任何控制,但是,它将不能运行,因为他的依赖没有满足。对我来说,这是最基本的故障。因为包管理器不能很好的处理依赖。

而且,对于这个问题,你会相当多的的去执行这个死穴 pacman –Syu,这将会几乎肯定会发生一些故障,因为它将会升级你系统上所有的包到稳定版,但是这个转换时很少平滑的。在pacman 中时没有办法简单的安装你需要的最新版本即使是手动安装!

为什么Portage 很赞

Portage 没有那么多的限制。使用portage,你可以安装你喜欢的任何版本的任何包,他们是一个ebuild 脚本在portage 中。ebuild 依然很难变成“稳定/不稳定/隐藏的”阶段,因此你可以拥有多种版本包或依赖库的选择,允许你去彻底的修复任何依赖问题(尽管我很少遇到!)。它允许你简单的修复系统而不是杀鸡用宰牛刀(Syu!)。

而且,portage 允许你去定制每个包的顶级特性!这意味着你可以按照需要动态的增加一些包的选择。你可以使用Portage 的“USE”标签完成,它是标准的打包设置选项。

Portage 可以是一个完全自定义的系统,它提供了合适的依赖解决和多版本的包支持。它让升级很简单,并且修复依赖很容易。

Portage 使用的文件称为“ebuilds”,它是非常简单,bash脚本风格去限定怎样构建及安装包,和它的依赖。Ebuilds 通常是非常容易编写的,因此它允许你去追踪任何的程序(甚至是你自己编译的包,在Portage维护树之外!)在Portage中。没有任何的其他的发行版可提供这个。

什么时间编译?

人们喜欢Arch 超过Gentoo的其中一个主要的原因是只需要编译每一个包,而不是仅仅复制一个二进制镜像。这仅仅是部分正确。在make.conf中启用“buildpkg”特性可以简单的设置你自己的二进制仓库。对于我自己,我仅仅需要编译所有的包在一台机器上,然后使用这台机器提供作为其他我的所有64为机器的一个二进制仓库。

而且,portage 已经内置支持distcc(分布式编译),意味着当你不得不编译包是,你可以分享这个工做的负担到其他的你所有拥有的电脑上。这简化了创建原始二进制包的所需要时间,然后你可以很方便的分发到其他机器上。

在Gentoo 上创建一个二进制包仓库相比其他发行版也是非常容易的,我所遇到的它不需要任何的配置在/usr/portage/packages 目录下的文件你可以简单的扔到你的http伺服器生,然后这个链接就是客户机中make.conf 设置项PORTAGE_BINHOST。除此之外,你也可以仅仅拷贝文件夹到另外一台机器上,闪电完成。

你应该更换

如果你渴望一个发行版,能够让你无限期的运行而不需要重装,你应该使用Gentoo。 我已经把我所有的机器切换到Gentoo,并且运行自己的二进制包仓库。如果你也是特别渴望能完全掌控管理包的这类用用户,你应该切换到Gentoo。