Akagi201
4/13/2014 - 2:33 PM

gentoo-config.md

config

emerge -C

不建议使用emerge -C,因为它可能移除其他软件包的依赖,导致其他包无法使用。建议改用emerge -cv package-XXX; 
多读手册,呃,RTFM。 
emerge -avuDN会重新安装你移除了的包,是因为这个包被你的world(/var/lib/portage/world)文件中某一个包(直接或间接)依赖。可以用emerge的--tree选项查看: 
代码:
emerge -avuDN --tree @world

install

  • 使用U盘下载好 install.iso(刻录到U盘), stage3, portage(这两个拷贝到U盘根目录)

配置网络

  • 在virtualbox下, 不用eth0, 用enp0s3
  • 我在服务器上配置, 不用eth0, 用enp3s0

软件

/etc/systemd/system/smbd.service
[Unit]
Description=Samba SMB/CIFS server
After=network.target nmbd.service winbindd.service

[Service]
Type=forking
PIDFile=/var/run/samba/smbd.pid
ExecStart=/usr/sbin/smbd -D 
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
  • sudo pdbedit -a -u akagi201

/etc/samba/smb.conf

security = user
[home]
browseable = yes
read only = no
create mask = 0644
directory mask = 0755
  • emerge --ask sudo /etc/sudoers -- akagi201 all=(all) all
  • emerge net-misc/curl
  • emerge wget
  • usermod -s /bin/zsh root usermod -s /bin/zsh akagi201
  • emerge --ask zsh zsh-completion
  • emerge dev-vcs/git
  • oh my zsh
  • spf13-vim
  • emerge subversion
  • http://wiki.openwrt.org/doc/howto/buildroot.exigence
  • 升级git: emerge --sync emerge -avt git
  • libnet libnids libpcap doxygen m4
  • emerge mercurial
  • emerge go
  • emerge bzr
  • emerge app-text/tree
  • emerge git-flow
  • emerge -avt boost
  • emerge texinfo
  • emerge u-boot-tools
  • emerge ccache
  • emerge uuid
  • emerge eix
  • emerge dosfstools

升级

  • emerge -uDNav world

perl 问题

  • perl-cleaner --reallyall -- -av
  • emerge -uDNav world
  • No problem :) If that doesn't work for you, you may need to go into your package.accept_keywords file and make some changes.
  • Have you tried 'emerge -aC $(qlist -IC 'perl-core/*') && emerge -uD1a $(qlist -IC 'virtual/perl-*') && perl-cleaner --all
 
在吗
Akagi201 21:50:58 
akagi201@akgentoo ~/akwetalk (master*) $ sudo emerge dev-vcs/git-flow
Password: 
Calculating dependencies... done!
[ebuild  N    ~] dev-util/shflags-1.0.3  USE="-examples" 
[ebuild  N    ~] dev-vcs/git-flow-0.4.1 

The following keyword changes are necessary to proceed:
 (see "package.accept_keywords" in the portage(5) man page for more details)
# required by dev-vcs/git-flow (argument)
=dev-vcs/git-flow-0.4.1 ~amd64
# required by dev-vcs/git-flow-0.4.1
# required by dev-vcs/git-flow (argument)
=dev-util/shflags-1.0.3 ~amd64

Use --autounmask-write to write changes to config files (honoring
CONFIG_PROTECT). Carefully examine the list of proposed changes,
paying special attention to mask or keyword changes that may expose
experimental or unstable packages.
Akagi201 21:51:02 
这个是什么问题?
Akagi201 21:51:06 
好解决吗
Yokit 21:51:57 
-autounmask-write
Akagi201 21:52:00 
您好,我现在有事不在,一会再和您联系。
Akagi201 21:52:13 
什么意思
Akagi201 21:52:15 
不敢用啊
Yokit 21:52:15 
sudo emerge --autounmask-write dev-vcs/git-flow
Yokit 21:52:32 
然后etc-update 更新一下
Yokit 21:52:57 
就会将
# required by dev-vcs/git-flow (argument)
=dev-vcs/git-flow-0.4.1 ~amd64
# required by dev-vcs/git-flow-0.4.1
# required by dev-vcs/git-flow (argument)
=dev-util/shflags-1.0.3 ~amd64
这些写入 /etc/portage/package.use的了
Akagi201 21:53:02 
这个软件我第一次装
Yokit 21:53:02 
然后就可以装了.
Yokit 21:53:16 
The following keyword changes are necessary to proceed:
 (see "package.accept_keywords" in the portage(5) man page for more details)
# required by dev-vcs/git-flow (argument)
=dev-vcs/git-flow-0.4.1 ~amd64
# required by dev-vcs/git-flow-0.4.1
# required by dev-vcs/git-flow (argument)
=dev-util/shflags-1.0.3 ~amd64
Yokit 21:53:20 
原因是这个.
Yokit 21:53:38 
你的make.conf的标记用的是amd64
Yokit 21:53:48 
而这个包要~amd64
Akagi201 21:54:03 
~amd64表示非amd64吗
Akagi201 21:54:15 
我cpu是amd64的
Yokit 21:54:23 
一般稳定版才是amd64, 而最新版都是~amd64
Yokit 21:54:42 
软件版本这个表示
Yokit 21:55:04 
amd64表示那些已经stable的软件包了, 相对比较旧可能.
Yokit 21:55:20 
而如果用最新的软件包时, 一般都是~amd64的.
Yokit 21:55:48 
~amd64也是没问题的, 而且是最新版软件这是.
Yokit 21:56:04 
只是软件的开发阶段不一样罢了.
Akagi201 21:56:08 
akagi201@akgentoo ~/akwetalk (master*) $ sudo emerge --autounmask-write dev-vcs/git-flow
Calculating dependencies... done!
[ebuild  N    ~] dev-util/shflags-1.0.3  USE="-examples" 
[ebuild  N    ~] dev-vcs/git-flow-0.4.1 

The following keyword changes are necessary to proceed:
 (see "package.accept_keywords" in the portage(5) man page for more details)
# required by dev-vcs/git-flow (argument)
=dev-vcs/git-flow-0.4.1 ~amd64
# required by dev-vcs/git-flow-0.4.1
# required by dev-vcs/git-flow (argument)
=dev-util/shflags-1.0.3 ~amd64

Autounmask changes successfully written.

 * IMPORTANT: config file '/etc/portage/package.accept_keywords' needs updating.
 * See the CONFIGURATION FILES section of the emerge
 * man page to learn how to update config files.
Yokit 21:56:22 
etc-update
Akagi201 21:56:59 
akagi201@akgentoo ~/akwetalk (master*) $ sudo etc-update
Scanning Configuration files...
The following is the list of files which need updating, each
configuration file is followed by a list of possible replacement files.
1) /etc/portage/package.accept_keywords (1)
Please select a file to edit by entering the corresponding number.
              (don't use -3, -5, -7 or -9 if you're unsure what to do)
              (-1 to exit) (-3 to auto merge all files)
                           (-5 to auto-merge AND not use 'mv -i')
                           (-7 to discard all updates)
                           (-9 to discard all updates AND not use 'rm -i'): 
Yokit 21:57:10 
-3
Akagi201 21:57:33 
akagi201@akgentoo ~/akwetalk (master*) $ sudo etc-update
Scanning Configuration files...
The following is the list of files which need updating, each
configuration file is followed by a list of possible replacement files.
1) /etc/portage/package.accept_keywords (1)
Please select a file to edit by entering the corresponding number.
              (don't use -3, -5, -7 or -9 if you're unsure what to do)
              (-1 to exit) (-3 to auto merge all files)
                           (-5 to auto-merge AND not use 'mv -i')
                           (-7 to discard all updates)
                           (-9 to discard all updates AND not use 'rm -i'): -3
Replacing /etc/portage/package.accept_keywords with /etc/portage/._cfg0000_package.accept_keywords
Exiting: Nothing left to do; exiting. :)
Yokit 21:57:42 
嗯, 再装就可以了.
Akagi201 21:58:11 
双击查看原图
Yokit 21:58:35 
这是针对性地对这个软件包指定最用新版本..
Akagi201 21:58:56 
哦
Akagi201 21:59:02 
我是第一次装
Akagi201 21:59:27 
以前遇到过一次这种, 后来不会解决了
Yokit 22:00:02 
有些软件包开发活跃, 没等stable版就直接开发下一个版本了.
Akagi201 22:01:17 
哦
Akagi201 22:03:30 
多谢了双击查看原图
  • emerge --ask mysql
  • /bin/bash emerge --config =dev-db/mysql-[version]
  • rc-update add mysql default
  • rc-service mysql start
  • mysql_secure_installation 进行安全配置

$ vim .zshrc export GOPATH=$HOME/akgo export PATH=$HOME/akgo/bin:$PATH


## Problems
*
  • IMPORTANT: 1 news items need reading for repository 'gentoo'.
  • Use eselect news to read news items.

`eselect news read new`


### Gentoo says "config files in /etc need updating"
<http://www.lyratechnicalsystems.com/pivot/entry.php?id=38>

### Warning: Cannot open ConsoleKit session: Unable to open session: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory.

rc-update add dbus default rc-update add consolekit default


<http://forums.gentoo.org/viewtopic-t-889460-start-0.html>

### KDE xdm
* rc-update: service `xdm' does not exist
* /etc/conf.d/xdm doesn't exist.
* `emerge xdm` doesn't work.
* Solution: `emerge xorg-server`
* `etc-update` 选择 -5

* 安装/卸载指定版本软件 <http://blog.sloger.info/linux/emerge-in-gentoo.html>

### 中文化
1. 修改/etc下的locale.gen文件,加入下面内容

en_US ISO-8859-1 en_US.UTF-8 UTF-8 zh_CN GB18030 zh_CN.GBK GBK zh_CN.GB2312 GB2312 zh_CN.UTF-8 UTF-8


2. `locale-gen`
3. `eselect locale list`
4. `eselect locale set <value>` // en_US.utf8
5. `env-update && source /etc/profile`
6. cross-compile: <http://www.gentoo.org/proj/en/base/embedded/handbook/cross-compiler.xml?style=printable>
## 软件包管理
* <http://kenwublog.com/gentoo-emerge-manual-and-skills>
* `/usr/bin/ip`命令不存在, 要`emerge iproute`

## systemd下网络接口问题
<http://www.freedesktop.org/software/systemd/man/systemd.network.html>
1. configuration file for the systemd service

/etc/conf.d/network@enp0s3 address=192.168.1.102 netmask=24 broadcast=192.168.1.255 gateway=192.168.1.1


2. a systemd unit file

/etc/systemd/system/network@.service [Unit] Description=Network connectivity (%i) Wants=network.target Before=network.target BindsTo=sys-subsystem-net-devices-%i.device After=sys-subsystem-net-devices-%i.device

[Service] Type=oneshot RemainAfterExit=yes EnvironmentFile=/etc/conf.d/network@%i

ExecStart=/bin/ip link set dev %i up ExecStart=/bin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev %i ExecStart=/bin/sh -c 'test -n ${gateway} && /bin/ip route add default via ${gateway}'

ExecStop=/bin/ip addr flush dev %i ExecStop=/bin/ip link set dev %i down

[Install] WantedBy=multi-user.target


3. `systemctl enable network@enp0s3`

* `emerge -v net-dialup/pptpclient`
* <http://www.gentoo-wiki.info/HOWTO_PPTP_VPN_client>

* `sudo emerge gengetopt`

## libtinfo.so.5 problem
* `cd lib; ln -s libncurses.so.5 libtinfo.so.5`
* <http://www.linuxforums.org/forum/installation/6251-libtinfo-so-5-a.html>
* <http://forums.opensuse.org/showthread.php/446927-missing-library-libtinfo-so-5>

## ip
* `/etc/dhcpcd.conf`

static ip_address=192.168.2.8/24 static routers=192.168.2.1 static domain_name_servers=192.168.2.1


## Refs
* <https://wiki.archlinux.org/index.php/Network_configuration#Persistent_configuration_on_boot_using_systemd_and_udev_rules>
* <http://wiki.gentoo.org/wiki/Polkit>