src_install
| 函数 | src_install | 
|---|---|
| 用途 | 将软件包安装到 ${D} | 
| 沙盒 | 启用 | 
| 权限 | root | 
| 调用时机 | ebuild | 
默认 src_install
对于 EAPI 4 及更高版本,默认的 src_install 函数如下所示
src_install() {
	if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]] ; then
		emake DESTDIR="${D}" install
	fi
	if ! declare -p DOCS >/dev/null 2>&1 ; then
		local d
		for d in README* ChangeLog AUTHORS NEWS TODO CHANGES THANKS BUGS \
				FAQ CREDITS CHANGELOG ; do
			[[ -s "${d}" ]] && dodoc "${d}"
		done
	elif [[ $(declare -p DOCS) == "declare -a"* ]] ; then
		dodoc "${DOCS[@]}"
	else
		dodoc ${DOCS}
	fi
}
对于 EAPI 6 及更高版本,默认的 src_install 函数如下所示
src_install() {
	if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]] ; then
		emake DESTDIR="${D}" install
	fi
	einstalldocs
}
简单安装
通常,尤其是在使用 autotools 驱动的软件包时,会有一个 Makefile install 目标,它将遵守 DESTDIR 变量以告知它安装到非根目录位置。如果可能,应该使用此方法。
	emake DESTDIR="${D}" install
注意: 这里应该使用 
emake 来进行并行化。有些安装并非设计为并行化,如果遇到错误,请使用 emake -j1 或 make。通常,软件包的构建系统不会安装 README、ChangeLog 等文件,因此需要为它们包含额外的 dodoc 语句。
	emake DESTDIR="${D}" install
	dodoc README CHANGES
	dodoc -r doc
dodoc 支持 -r 作为第一个参数,这允许递归安装目录。
注意: 无需 
dodoc COPYING!许可证属于存储库的 licenses/ 目录。但是,有时您可能希望无论如何都安装 COPYING,例如,如果它解释了如何将不同的许可证应用于应用程序的不同部分。基本安装
对于一些没有 Makefile 且仅安装少量文件的软件包,使用 cp 手动安装是最简单的选择。例如,要简单安装一些(无需编译)主题
	dodir /usr/share/foo-styles/
	cp -R "${S}/" "${D}/" || die "Install failed!"
或者有时 insinto 和 doins(以及相关函数 - 请参阅 安装函数参考)的组合 - 以下内容基于 sys-fs/udev 安装
src_install() {
	dobin udevinfo
	dobin udevtest
	into /
	dosbin udev
	dosbin udevd
	dosbin udevsend
	dosbin udevstart
	dosbin extras/scsi_id/scsi_id
	dosbin extras/volume_id/udev_volume_id
	exeinto /etc/udev/scripts
	doexe extras/ide-devfs.sh
	doexe extras/scsi-devfs.sh
	doexe extras/cdsymlinks.sh
	doexe extras/dvb.sh
	insinto /etc/udev
	newins "${FILESDIR}/udev.conf.post_050" udev.conf
	doins extras/cdsymlinks.conf
	# For devfs style layout
	insinto /etc/udev/rules.d/
	newins etc/udev/gentoo/udev.rules 50-udev.rules
	# scsi_id configuration
	insinto /etc
	doins extras/scsi_id/scsi_id.config
	# set up symlinks in /etc/hotplug.d/default
	dodir /etc/hotplug.d/default
	dosym ../../../sbin/udevsend /etc/hotplug.d/default/10-udev.hotplug
	# set up the /etc/dev.d directory tree
	dodir /etc/dev.d/default
	dodir /etc/dev.d/net
	exeinto /etc/dev.d/net
	doexe etc/dev.d/net/hotplug.dev
	doman *.8
	doman extras/scsi_id/scsi_id.8
	dodoc ChangeLog FAQ HOWTO-udev_for_dev README TODO
	dodoc docs/{overview,udev-OLS2003.pdf,udev_vs_devfs,RFC-dev.d,libsysfs.txt}
	dodoc docs/persistent_naming/* docs/writing_udev_rules/*
	newdoc extras/volume_id/README README_volume_id
}
当然,这比简单的 Makefile 驱动的安装要难处理得多。