`
rainytooo
  • 浏览: 38198 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

gentoo使用笔记

阅读更多

*************************************************************************

Portage相关

*************************************************************************

使用以下命令同步更新Portage树
#emerge --sync  

查看安装软件的依赖树
#emerge -pv xxx
#emerge -pvt xxx(以树的形式)

查找名字包含pdf的软件包--search (-S)
#emerge -S xxx

查找与xxx相关的软件包  --searchdesc

#emerge --searchdesc xxx

安装自己下载的package
先查看相关的依赖包 找到相应的版本号
然后
#emerge xxx


查看要从哪里下载源码
#emerge -pf xxx

只下载源代码包 不安装--fetchonly (-f)
#emerge -f xxx

从系统中删除xxx  --unmerge (-C)
#emerge -C xxx

 

尝试强行编译安装包:
#emerge --nodeps xxx

假装删除软件看看会删除什么依赖的包:
#emerge --pretend unmerge xxx

更新系统 --update --ask (-ua)
#emerge --update --ask world       
Portage树更新后,可以用emerge --update world命令来更新系统 --ask将会询问是否真的更新

执行完整更新--update --deep --newuse (-uDN)
#emerge -uDN world

模拟系统升级
#emerge -uDNpv world

查询XXX包用了什么USE
#equery uses XXX (请先 emerge gentoolkit)


*************************************************************************
gentoo服务相关
*************************************************************************
default 是 gentoo 启动用的 runlevel,类似一般系统的 runlevel 3。

往 default runlevel 里边加入 XXX 服务 (add)

#rc-update -a XXX default

从 default runlevel 里边删除 XXX 服务 (delete)

#rc-update -d XXX default

列出 default runlevel 所有的服务 (show)

#rc-update -s default

*************************************************************************
设置主机名和域名
*************************************************************************
livecd / # cd /etc
livecd etc # echo "127.0.0.1 ergal.cic.tsinghua ergal localhost" > hosts
livecd etc # sed -i -e 's/HOSTNAME.*/HOSTNAME="ergal"/' conf.d/hostname
(使用指定的主机名并检查)
livecd etc # hostname ergal
livecd etc # hostname -f

*************************************************************************
Gentoo的初始化脚本
*************************************************************************

简单总结

1 启动过程

init 进程通过/etc/inittab来决定启动的顺序和工作流程 init会执行所有/etc/runlevels/boot目录下的符号链接所指向的/etc/init.d目录下的脚本,/etc/runlevels/boot目录所引用的脚本都执行完毕后,将继续运行/etc/runlevels/default目录下的符号链接所指向的脚本

   相关说明

在inittab有运行级别的定义

l1:S1:wait:/sbin/rc single     
l2:2:wait:/sbin/rc nonetwork
l3:3:wait:/sbin/rc default      
l4:4:wait:/sbin/rc default      
l5:5:wait:/sbin/rc default      
l6:6:wait:/sbin/rc reboot       

下面的定义
si::sysinit:/sbin/rc sysinit
这是init进程将初始化交给rc  由/sbin/rc sysinit来初始化系统,/sbin/rc脚本是负责系统初始化的

在rc::bootwait:/sbin/rc boot中

rc脚本的参数(boot)和要用的/etc/runlevels的子目录是一样的。

rc 执行完了以后 init将会决定哪些虚拟终端需要被激活以及每个终端需要运行什么样的命令:

在inittab中有以下定义

c1:12345:respawn:/sbin/agetty 38400 tty1 linux
c2:12345:respawn:/sbin/agetty 38400 tty2 linux
c3:12345:respawn:/sbin/agetty 38400 tty3 linux
c4:12345:respawn:/sbin/agetty 38400 tty4 linux
c5:12345:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux

这段代码定义了当运行在某个运行级别上的时候哪些虚拟终端需要被激活以及每个终端需要运行什么样的命令

 2 启动服务和调整

/etc/init.d/xxxx status 查看服务运行状态     
/etc/init.d/xxxx zap    手动把信息设置为停止
/etc/init.d/xxxx ineed  查看依赖服务
/etc/init.d/xxxx needsme哪些服务需要这个服务(needsme)或者哪些服务可以使用这个服务(usesme
rc-update add xxx default 添加服务到default 级别
rc-update del xxx default 删除服务


rc-update -v show 命令将会显示出所有已存在的初始化脚本,并列出它们在哪个运行级别中运行

增加独立的额外配置 这样做的好处是重装某个软件后不会覆盖自己的配置
gentoo的配置是在/etc/conf.d

gentoo官方文档的参考

www.gentoo.org/doc/zh_cn/handbook/handbook-x86.xml

首先,你的引导程序会把你在引导程序配置文件中定义的内核镜像加载到内存中,之后它就告诉CPU可以运行内核了。当内核被加载且运行后,内核会初始化所有内核专有的结构体和任务,并开启init进程。

然后,这个进程确保所有的文件系统(在/etc/fstab中定义的)都已被挂载且能使用。接着,该进程会执行位于/etc/init.d下的一些脚本,这些脚本会启动一些你需要的服务,以使你能获得一个成功启动的系统。

最终,当所有的脚本执行完毕,init将激活终端(大多情况下只是激活虚拟终端,可以使用Alt-F1Alt-F2等来访问),并把一个叫agetty的特殊进程附于其上。这个进程会确保你可以通过运行login从这些终端登录到你的系统中。

 gentoo不会随机的执行/etc/init.d下的脚本。甚至,它不会运行/etc/init.d下所有的脚本,只会去执行/etc/runlevels 下的

init会运行所有/etc/runlevels/boot目录下的符号链接所指向的/etc/init.d目录下的脚本。通常,它会按照字母顺序执行这些脚本,但是有些脚本中含有依赖关系,意味着系统要在执行另一个脚本之后才能运行此脚本。

/etc/runlevels/boot目录所引用的脚本都执行完毕后,init将继续运行/etc/runlevels/default目录下的符号链接所指向的脚本。同样它们会按照字母顺序执行这些脚本,除非一个脚本有依赖关系,那样的话现有次序就会被改变以使启动顺序更加合理。

当然init自己不会决定所有的启动顺序。它需要一个配置文件来指定它的工作流程。这个配置文件就是/etc/inittab

如果你还记得我们刚刚描述的启动顺序,你会记得init首先做的是挂载所有的文件系统。这个功能其实是在/etc/inittab这个配置文件中定义好的。如下:

si::sysinit:/sbin/rc sysinit

这一行告诉init必须运行/sbin/rc sysinit来初始化系统。/sbin/rc脚本是负责系统初始化的,所以你可能会说init它本身并没做太多的事情——它只是把初始化系统任务交给了另一个进程。

接下来,init会执行所有在/etc/runlevels/boot目录下的具有符号链接的脚本。这是由下面这行定义的:

rc::bootwait:/sbin/rc boot

 

什么是运行级别

已经看到init使用一种数字的方式来决定需要激活的运行级别。运行级别表示你系统运行的状态,它包含了你进入或退出一个运行级别时需要执行的一组脚本(运行级别脚本或者初始化脚本)。

在Gentoo中定义了七种运行级别:三个内部运行级别和四个用户自定义运行级别。这些内部运行级别分别叫做sysinitshutdownreboot,它们所做的就如同像它们的名字那样:初始化系统、关闭系统和重启系统。

用户定义的运行级别都在/etc/runlevels目录下有同名的子目录:bootdefaultnonetworksingle。运行级别boot会启动所有其他运行级别必须要使用到的系统服务。其余的三个运行级别的不同之处主要在于它们要启动的服务:default是用来日常工作用的;nonetwork是在无网络的情况下使用的;还有single是用户修复系统时用的。

使用初始化脚本

实际上rc进程调用的脚本都称为初始化脚本。每个在/etc/init.d下的脚本都可以在执行时带上以下参数,如:startstoprestartpausezapstatusineediuseneedsmeusesme或者broken

要启动、停止或者重启一个服务(和所有依赖于它的服务),应该用参数

start

stop

restart

如果状态信息告诉你服务正在运行,但是你知道它实际上没有运行,这种情况下你可以使用参数zap将状态信息重设为“停止” 


Gentoo的初始化系统使用依赖关系树(dependency-tree)来决定什么服务会首先被启动。因为这是个很乏味的工作,我们不想让我们的用户去手动来完成它,所以我们创建了简化运行级别和初始化脚本的管理工具(rc-update)。

使用rc-update你可以从一个运行级别中添加或删除初始化脚本。rc-update工具会自动调用/sbin/depscan.sh脚本来重新创建依赖关系树。

添加和删除服务

在Gentoo的安装过程中你已经添加初始化脚本到“default”运行级别。那时你可能还不清楚“default”是干什么的,但是现在你应该知道了。rc-update脚本需要由第二个参数来决定其行为:adddel或者是show

要添加或删除一个初始化脚本,只需要给rc-update add或者del参数,并随后跟上初始化脚本和运行级别。如下:

代码 2.1: 从default级别中删除Postfix服务

# rc-update del postfix default

rc-update -v show命令将会显示出所有已存在的初始化脚本,并列出它们在哪个运行级别中运行:

代码 2.2: 获得初始化脚本的信息

# rc-update -v show

你也可以运行rc-update show(没有-v参数)来只查看已经启用的初始化脚本和他们的运行级别。

*************************************************************************
启动时挂载设备 文件系统
*************************************************************************

/etc/fstab

一个例子说明

/dev/sda1        /boot   ext3    defaults                1 2
/dev/sda2        none            swap            sw              0 0
/dev/sda3        /       ext3    defaults                0 1
none        /proc     proc    defaults          0 0
none        /dev/shm  tmpfs   defaults          0 0



1. 需要挂载的设备或者文件系统

       The first field, (fs_spec), describes the block special device or remote filesystem to be mounted.

       For ordinary mounts it will hold (a link to) a block special device node (as created by mknod(8)) for the device to  be  mounted,  like  `/dev/cdrom'  or  `/dev/sdb7'.  For NFS mounts one will have <host>:<dir>, e.g., `knuth.aeb.nl:/'.  For procfs, use `proc'.


2. 没啥说的挂载点 注意swap等
       The second field, (fs_file), describes the mount point for the filesystem.  For swap partitions, this field should be specified as `none'. If the name of  the mount point contains spaces these can be escaped as `\040'.
3. 文件系统的格式

        The third field, (fs_vfstype), describes the type of the filesystem.  Linux supports lots of filesystem types, such as adfs, affs, autofs,  coda,  coher-ent, cramfs, devpts, efs, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, ntfs, proc, qnx4, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs,umsdos, vfat, xenix, xfs, and possibly others. For more details, see mount(8).  For the filesystems  currently  supported  by  the  running  kernel,  see /proc/filesystems.   An  entry  swap  denotes a file or partition to be used for swapping, cf. swapon(8).  An entry ignore causes the line to be ignored.This is useful to show disk partitions which are currently unused.

4. 挂载之后的访问状态
        The fourth field, (fs_mntops), describes the mount options associated with the filesystem.

        It is formatted as a comma separated list of options.  It contains at least the type of mount plus any additional options appropriate to  the  filesystem type.   For  documentation on the available options for non-nfs file systems, see mount(8).  For documentation on all nfs-specific options have a look at nfs(5).  Common for all types of file system are the options ``noauto'' (do not mount when "mount -a" is given, e.g., at boot time),  ``user''  (allow  a user  to  mount),  and  ``owner'' (allow device owner to mount), and ``comment'' (e.g., for use by fstab-maintaining programs).  The ``owner'' and ``com-ment'' options are Linux-specific.  For more details, see mount(8).

5. 提供DUMP功能,在系统DUMP时是否需要BACKUP的标志位,其内定值是0。

        The fifth field, (fs_freq), is used for these filesystems by the dump(8) command to determine which filesystems need to be dumped.  If the fifth field is not present, a value of zero is returned and dump will assume that the filesystem does not need to be dumped.

6. 设定此filesystem是否要在开机时做check的动作,除了root的filesystem其必要的check为1之外,其它皆可视需要设定,内定值是0

          The  sixth  field,  (fs_passno),  is  used  by  the  fsck(8) program to determine the order in which filesystem checks are done at reboot time.  The root filesystem should be specified with a fs_passno of 1, and other filesystems should have a fs_passno of 2.  Filesystems within a  drive  will  be  checked sequentially,  but filesystems on different drives will be checked at the same time to utilize parallelism available in the hardware.  If the sixth field  is not present or zero, a value of zero is returned and fsck will assume that the filesystem does not need to be checked.


分享到:
评论
1 楼 imake 2009-01-03  
好文字!谢谢!

相关推荐

    Gentoo Linux 安装 笔记

    Gentoo Linux 安装笔记 Gentoo Linux 安装笔记 Gentoo Linux 安装笔记

    gentoo安装文档.doc.rar

    Gentoo是众多Linux的发行版之一,她具有高效的执行效率和高度的可定制性。但Gentoo的安装对于新手来说不是一件简单的事。为使Gentoo爱好者在安装该系统时少走弯路,节省时间,特制定本文档

    gentoo硬盘安装文档.doc.rar

    gengoo linux硬盘安装的详细文档,安装windows xp和gentoo linux双系统,无需光驱,只要将ISO文件解压到C盘根目录,C可以是NTFS分区

    QOwnNotes-20.3.6.dmg 与Nextcloud集成的纯文本文件笔记

    要为笔记使用Nextcloud / ownCloud获得更多功能,例如版本控制和访问已删除笔记,您可能还希望在Nextcloud / ownCloud服务器上安装QOwnNotesAPI。要从移动设备访问Nextcloud / ownCloud笔记,您可能需要获取以下应用...

    gentoo-doc-ja

    Gentoo 文档日语翻译库该存储库是 Gentoo 官方文档的日语翻译存储库。我们正在这个存储库中进行翻译。本文档描述了以下项目:开始翻译翻译笔记翻译审核提交翻译翻译更新如果您发现翻译错误如果您有任何问题开始翻译...

    QOwnNotes-20.3.7.dmg qownnotes: 20.3.7,b5443-124854 与Nextcloud集成的纯文本文件笔记

    要为笔记使用Nextcloud / ownCloud获得更多功能,例如版本控制和访问已删除笔记,您可能还希望在Nextcloud / ownCloud服务器上安装QOwnNotesAPI。要从移动设备访问Nextcloud / ownCloud笔记,您可能需要获取以下应用...

    谷歌师兄的leetcode刷题笔记-gentoo-overlay:mrpdaemonGentoo覆盖

    谷歌师兄的leetcode刷题笔记mrpdaemon Gentoo 覆盖 请注意,此项目不再维护。 这是我的 Gentoo 覆盖,包含以下包: 我用来维护我的 Gentoo 系统的脚本 (mrpdaemon-gentoo-scripts) 用于 CUPS 的 Brother HL-2270DW ...

    MacBook-Gentoo-Notes:关于如何在MacBook Pro上使用配置文件安装Gentoo的说明

    MacBook Gentoo笔记内核配置文件: /usr/src/linux/.config 复制文件cd /usr/src/linux ,然后make && make modules_install && make install 。 不要生成initramfs genkernel --lvm --mdadm --install --bootloader...

    gentoo:个性化Gentoo安装和内核配置手册

    笔记这些安装说明和内核配置已为我和我的计算机(Lenovo G580)配置。 它可以为您工作,但不必这样做。 请随意遵循我的说明,但是请记住,您可能必须在内核配置时添加一些驱动程序,并在/etc/portage/make.conf使用...

    gentoo-lxd-package-testing:使用lxd在干净的环境中测试软件包

    LXD封装测试在干净的gentoo上使用lxd测试软件包安装LXD 我已经使用以下使用标志安装了LXD [ebuild R ~] app-emulation/lxd-4.0.1::gentoo USE="ipv6 nls"LXC与LXD的超级快速笔记命令除了有关其方法的所有技术术语外...

    NoteCase软件,用于读写.ncd后缀的文件,支持windows和linux安装

    NoteCase 又叫 Outliner(大纲),它是一个按照树状结构来组织文档内容的笔记管理程序,使用 C++ 与 Gtk+ 开发。该程序可以帮助你管理生活、学习笔记。 NoteCase 可以在 Linux/Unix 和 Windows 平台运行,采用 BSD ...

    Linux基础笔记——第一章

    Linux基础学习笔记整理 第一章 虚拟机安装 先下载VMware14 安装完成后下载镜像文件 根据自己需要下载相应的镜像版本 (给大家推荐个网站 ‘阿里云站点’ ) 安装过程中要注意一下内容 点击 sda 创建三个分区 要自己...

    jorgicio:Jorgicio创建的Gentoo存储库

    我很难过地说我必须离开Gentoo(至少在一段不确定的时间内)。 让我解释: 我有一台新笔记本电脑,即Dell G3 153500。由于它具有一些新硬件,因此尝试并安装了Calculate(以及一些其他Live USB),而Kubuntu是唯一...

    Linux视频学习笔记.pdf

    Linux是一类Unix计算机操作系统的...代表版本有: debian, centos, ubuntu, fedora, gentoo等.LNMP中以它作为平台。我们实验楼的环境本身就是ubuntu,可直接进行下一步操作。如果想拥有自己的ubuntu实验环境,赶紧动手实现

    EduSoho网络课堂

    EduSoho网络课堂EduSoho 是协助机构和个人建立在线教育网站的开源... 操作系统:Linux 推荐使用Ubuntu,Fedora,CentOS,Gentoo Web服务器:推荐Nginx或Apache2 MYSQL数据库:推荐5.0以上版本 PHP版本:推荐5.3.17以上

    np-hardass-overlay:NP-Hardass的个人叠加

    欢迎使用NP-Hardass的Gentoo叠加! 回购状态:重要的提示该叠加层包含一些系统软件包,例如glibc。 因此,您可能应该认为此叠加层是“不安全的”,并应如此对待。 为此,请使用cat-egory/pkgname软件包示例:#echo...

    vimrc:vim配置

    测试端子颜色位深度: $ tput colors如果结果为8,则表示您的终端使用的是8位颜色(例如Gentoo上的xterm),请: $ echo "export TERM=xterm-256color" &gt;&gt; ~/.bashrc您可能需要支持unicode的终端才能显示。...

    EduSoho网络课堂 v8.3.1

    操作系统:Linux 推荐使用Ubuntu,Fedora,CentOS,Gentoo Web服务器:推荐Nginx或Apache2 MYSQL数据库:推荐5.0以上版本 PHP版本:推荐5.3.17以上 EduSoho网络课堂 更新日志: 8.3.1(2018-8-02) 修复:被封禁...

    gnu_linux_appunti:意大利语注释将在GNULinux上重新排序

    时间和语言打印和扫描列印文件扫描文件服务器SSH协议网络服务器邮件NFS 桑巴域名解析数据库编译程序核心监控方式笔记型电脑上的笔记嵌入式Linux 特定发行版Gentoo 德比安去做去做各种各样的执照

    toxicblend:Scala、Toxiclibs、Blender、Boost、JBullet 和 google 协议缓冲区的实验性混合

    有毒混合物*** Pre-Alpha 代码 *** ... 依赖关系笔记 2.69 或更高版本Blender中只使用纯python代码,所以Blender插件安装很容易) 支持 Python 3 的 Google protobufs(仅当您想构建和/或修改 .proto 文件时才需要) To

Global site tag (gtag.js) - Google Analytics