关于Gentoo系统安装 请参考
https://wiki.gentoo.org/wiki/Handbook:AMD64
https://wiki.gentoo.org/wiki/Gentoo_Cheat_Sheet
常用软件
- 系统常用工具
emerge -a htop atop iotop lsof dstat bind-tools sudo curl wget rsync zsync git python nfs-utils cifs-utils colordiff meld neofetch tmux pcmanfm xfce4-terminal remmina aria2 mlocate pciutils usbutils zram-init xrandr - 编辑器
emerge -a vim visual-studio-code pycharm-community - 输入法
emerge -a fcitx5-rime - 浏览器/办公软件
emerge -a firefox chromium libreoffice mupdf - 截图工具
emerge -a flameshot - 多媒体
emerge -a feh ffmpeg obs-studio mplayer plex-media-server plex-media-player - 字体
emerge -a wqy-bitmapfont - 自动补全
emerge -a bash-completion gentoo-bashcomp zsh zsh-completions zsh-syntax-highlighting gentoo-zsh-completions - 邮件客户端
emerge -a neomutt - 轻量级wiki
emerge -a zim
Portage 用法总结
-
查询软件包
emerge --search [PACKAGE] -
更新 Portage 树
emerge --sync -
预编译
emerge --pretend [PACKAGE]用来查看将要安装到系统中的依赖包 -
只获取源码
emerge --fetchonly [PACKAGE]下载软件及依赖软件的源码到本地 -
安装软件的依赖关系
emerge --onlydeps [PACKAGE] -
更新系统软件包
emerge -avu [PACKAGE] -
更新整个系统
-
卸载软件
emerge --deselect [PACKAGE]; emerge -c -
列出安装到系统的文件和目录(软件已安装)
equery files [PACKAGE]
Package management
-
同步所有repositories
安装emerge --sync # OR eix-sync #(using eix) # OR layman -S #(using layman)app-portage/eixemerge -a app-portage/eix
安装app-portage/layman
`emerge -a app-portage/layman`
-
列出包
qlist命令由app-portage/portage-utils提供 -
列出所有已安装的包 带版本号 带使用的overlay
qlist -IRv -
使用
eix列出@world集包含的包(带版本号)eix --world | lesseix --color -c --world | less -R -
列出一个category下的所有包 (sys-kernel为例)
eix -C sys-kernel -
包安装 以
www-client/firefox为例 -
列出将要安装的包但不安装(预安装)
emerge -pv www-client/firefox -
安装指定版本的包
emerge =www-client/firefox-84.0.2 -
安装包但不添加到world文件(一次安装)
emerge --oneshot www-client/firefox(或者)emerge -1 www-client/firefox4. 包卸载 + 首先将包从world集去掉emerge --deselect www-client/firefox -
接着预卸载
emerge --depclean -vp -
确认无误后
emerge --depclean -v(或者)emerge -cv5. 更新系统emerge --update --changed-use --deep --quiet @world(或者)emerge --ask --verbose --update --deep --changed-use @world当
USEflags仅仅从repository添加或去掉时 这样做可以避免不必要的rebuild 加上--quiet可以更快地执行 -
Troubleshooting
-
检查并修复缺失的libraries (一般情况下不需要)
revdep-rebuild -v -
使用
equery查询已安装的包中哪个包提供了指定的命令equery b `which vim` # OR e-file vimequery由app-portage/gentoolkit提供
app-portage/gentoolkit也提供 eclean euse 等
e-file由 app-portage/pfl提供
+ 使用equery查询哪个包依赖指定的包
`equery d www-client/firefox`
-
使用
eix查询关于某个包的信息eix www-client/firefox+ eclean distfiles 只删除过期的包 7. 安装/更新后perl-cleaner --all
USE flags
-
使用
euse获取USE flagX的描述和使用情况euse -i X+ 检查哪个包有 'mysql' USE flagequery hasuse mysql+ 查询已安装的包中在构建是使用了mysqlUSE flageix --installed-with-use mysql+ 查询指定包的可用 USE flagequery uses [PACKAGE]
升级 Gentoo 系统
升级 Gentoo Kernel
重要的 Portage 文件
/etc/portage/make.conf- 全局设定(USE flags, compiler options)/etc/portage/package.use- 单个包的 USE flags, 也可以是包含多个文件的目录/etc/portage/package.accept_keywords- 单个包的关键字~amd64~x86~arm/etc/portage/package.license- 接受的licenses/var/lib/portage/world- 明确安装的软件包原子列表/var/db/pkg- 包含每个已安装包的信息 以及有关安装的一组文件
Portage日志管理
app-portage/genlop 是Portage日志处理程序,还可以估算出emerge软件包的构建时间
+ 查看最后10个emerges(installs)
`genlop -l | tail -n 10`
-
查看emerge firefox花费的时间(firefox已安装)
genlop -t firefox+ 估算命令emerge -uND --with-bdeps=y @world将花费的时间emerge -pU @world | genlop --pretend+ Watch the latest merging ebuild during system upgradewatch genlop -unc
Overlays
需要安装 app-eselect/eselect-repository
+ 列出所有存在的overlays
`eselect repository list`
-
列出所有安装(启用)的overlays
eselect repository list -i
Layman
需要安装 app-portage/layman
+ 列出所有存在的overlays
`layman -L`
-
列出所有安装(启用)的overlays
layman -l
Yubikey
emerge -av app-crypt/libu2f-host sys-auth/pam_u2f app-crypt/yubikey-manager-qt