`
rainytooo
  • 浏览: 38943 次
  • 性别: 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 安装 笔记

    3. **分区与格式化**:根据需要对硬盘进行分区,并格式化用于安装Gentoo的分区(如使用ext4文件系统)。 4. **配置环境变量**:编辑`/etc/make.conf`文件来设定编译参数,例如使用`CFLAGS`和`CXXFLAGS`来指定编译器...

    gentoo安装文档.doc.rar

    Gentoo推荐使用LVM(逻辑卷管理)或者Btrfs这样的高级文件系统,以提供更灵活的磁盘管理。 5. **挂载文件系统**: 挂载你的分区,通常包括根目录(/)、交换分区(/swap)以及可能的其他挂载点,如/home和/var。 6....

    gentoo手册(学习gentoo的参考手册)

    - **安装方式概述**:手册详细介绍了多种安装Gentoo的方法,特别强调了使用最小安装光盘进行安装的过程。这为用户提供了一个灵活的选择范围,以适应不同的硬件配置和个人偏好。 - **网络配置**: - **网络设置**...

    Gentoo Linux 安装文档

    在使用Gentoo时,你需要掌握Portage的使用: 1. **Portage入门**:了解如何更新软件包、安装新软件以及管理依赖关系。 2. **USE标记**:USE标记是Gentoo的一大特色,它控制软件包的编译选项,影响系统行为。 3. *...

    Gentoo Linux 安装手册

    ### Gentoo Linux 安装与使用详解 #### 一、Gentoo Linux 安装步骤概览 **Gentoo Linux** 是一款高度可定制化的 Linux 发行版,以其强大的包管理系统 **Portage** 而闻名。对于新用户而言,安装过程可能会显得有些...

    gentoo硬盘安装文档.doc.rar

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

    Gentoo-linux-入门.pdf

    这一步是安装 Gentoo 的基础,确保所使用的介质能正常启动计算机。 2. **检查硬件配置** 使用 `lspci` 命令来查看系统的硬件设备配置情况,包括 CPU、硬盘、内存等。如果需要加载新硬件(如网卡),可以通过 `...

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

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

    这一个Gentoo Linux文档指南。

    1. **Portage**:Gentoo的包管理系统,类似于其他Linux发行版的APT或YUM,但Portage使用ebuild脚本从源代码编译软件,提供高度的可定制性。用户可以调整编译选项以优化性能或适应特定硬件。 2. **Stage系统**:...

    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...

    x220-gentoo-foo:Lenovo x220,i3WM的一些脚本和配置

    标题中的“x220-gentoo-foo”可能指的是一个特定的项目或者代码库,它专注于在联想ThinkPad X220笔记本上配置Gentoo Linux操作系统,并使用i3窗口管理器。Gentoo Linux是一款高度自定制的源代码型Linux发行版,用户...

    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的超级快速笔记命令除了有关其方法的所有技术术语外...

    pymol学习笔记

    标题“pymol学习笔记”告诉我们,这份资料是关于如何学习和使用pymol软件的。Pymol是一款用于分子三维结构显示的开源软件,尤其适合处理生物大分子,如蛋白质的三维结构。由于其广泛的运用和重要性,在科学研究尤其...

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

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

    Ubuntu Linux实用学习笔记.doc

    ### Ubuntu Linux 实用学习笔记知识点概览 #### 一、Ubuntu简介 - **定义与适用范围**:Ubuntu是...以上内容涵盖了Ubuntu学习笔记中的关键知识点,旨在帮助初学者快速入门并深入了解Ubuntu系统的核心功能和使用技巧。

    Linux安装笔记.pdf

    Gentoo强调自由和选择的原则,并且使用一种名为Portage的技术,允许用户根据需求打造适合自己的系统,无论是在安全性、性能,还是在作为服务器、工作站、桌面系统或嵌入式解决方案方面。 Debian是Linux社区的一个...

Global site tag (gtag.js) - Google Analytics