lfs(systemv)学习笔记-第1页 的地址:https://www.cnblogs.com/renren-study-notes/p/10199344.html

六.构建工具链

1.书中第五章节中构建的所有包不建议进行测试。

2.这时你的命令行或终端的环境应该是:
1.变量:export LFS=/mnt/lfs
2.已经挂载你为lfs创建的所有分区
3.切换到lfs用户。

第5.4章节

构建binutils包

1.根据上一章节的构建要求,首先进入$LFS/sources/目录

cd $LFS/sources/

2.解压Binutils包并进入binutils包的目录:

tar -xvf binutils-2.32.tar.xz
cd binutils-2.32

3.运行书中的构建过程

4.创建编译用的目录并进入

mkdir -v build
cd build

5.设置Binutils进行编译

../configure --prefix=/tools            \
--with-sysroot=$LFS \
--with-lib-path=/tools/lib \
--target=$LFS_TGT \
--disable-nls \
--disable-werror

6.编译包

make -j8 (这里使用笔记1中的4.5章节所介绍的make -j(n)参数多线程编译)

7.如果构建x64的系统需要创建符号链接

case $(uname -m) in
x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;;
esac

8.安装包

make install

9.返回sources目录并删除binutils包的解压目录

cd $LFS/sources/

rm -rf binutils-2.32

第5.5章节

第一遍编译gcc

1.解压gcc并进入gcc的解压目录

tar -xvf gcc-8.2.0.tar.xz
cd gcc-8.2.0

2.运行书中的编译安装过程

tar -xf ../mpfr-4.0..tar.xz
mv -v mpfr-4.0. mpfr
tar -xf ../gmp-6.1..tar.xz
mv -v gmp-6.1. gmp
tar -xf ../mpc-1.1..tar.gz
mv -v mpc-1.1. mpc for file in gcc/config/{linux,i386/linux{,}}.h
do
cp -uv $file{,.orig}
sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
-e 's@/usr@/tools@g' $file.orig > $file
echo '
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
touch $file.orig
done case $(uname -m) in
x86_64)
sed -e '/m64=/s/lib64/lib/' \
-i.orig gcc/config/i386/t-linux64
;;
esac mkdir -v build
cd build ../configure \
--target=$LFS_TGT \
--prefix=/tools \
--with-glibc-version=2.11 \
--with-sysroot=$LFS \
--with-newlib \
--without-headers \
--with-local-prefix=/tools \
--with-native-system-header-dir=/tools/include \
--disable-nls \
--disable-shared \
--disable-multilib \
--disable-decimal-float \
--disable-threads \
--disable-libatomic \
--disable-libgomp \
--disable-libmpx \
--disable-libquadmath \
--disable-libssp \
--disable-libvtv \
--disable-libstdcxx \
--enable-languages=c,c++ make -j8 make install

3.返回sources目录,并删除gcc的解压包目录。

cd $LFS/sources/

rm -rf  gcc-8.2.

第5.6章节

1.Linux API Headers在linux-4.18.5.tar.xz中,需要解压并操作的包是linux-4.18.5.tar.xz软件包。

2.解压linux包并进入linux的解压目录

tar -xvf linux-4.20.12.tar.xz
cd linux-4.20.12

3.运行书中的编译命令

make mrproper

make INSTALL_HDR_PATH=dest headers_install
cp -rv dest/include/* /tools/include

4.返回sources目录并删除linux的解压包

cd $LFS/sources/

rm -rf  linux-4.20.12

第5.7章节

1.解压并进入glibc软件包的解压目录

tar -xvf glibc-2.29.tar.xz

cd glibc-2.29

2.运行书中的编译安装命令

mkdir -v build
cd build ../configure \
--prefix=/tools \
--host=$LFS_TGT \
--build=$(../scripts/config.guess) \
--enable-kernel=3.2 \
--with-headers=/tools/include make -j1 make install

3.执行完整性检查核对输出内容并清理测试文件

echo 'int main(){}' > dummy.c
$LFS_TGT-gcc dummy.c
readelf -l a.out | grep ': /tools' rm -v dummy.c a.out

4.返回sources目录并删除glibc目录

cd $LFS/sources/

rm -rf glibc-2.29

第5.8章节

1.Libstdc ++在gcc软件包中,解压gcc-8.2.0包,并进入gcc目录进行构建

tar -xvf gcc-8.2.0.tar.xz

cd gcc-8.2.0

2.运行书中的编译安装命令

mkdir -v build
cd build ../libstdc++-v3/configure \
--host=$LFS_TGT \
--prefix=/tools \
--disable-multilib \
--disable-nls \
--disable-libstdcxx-threads \
--disable-libstdcxx-pch \
--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/8.2.0 make -j8 make install

3.返回sources目录并删除解压包目录

cd $LFS/sources/

rm -rf  gcc-8.2.0

第5.9章节

binutils的第二次编译安装

1.解压并进入binutils软件包目录

tar -xvf binutils-2.32.tar.xz

cd binutils-2.32

2.运行书中的编译安装命令

mkdir -v build
cd build CC=$LFS_TGT-gcc \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-ranlib \
../configure \
--prefix=/tools \
--disable-nls \
--disable-werror \
--with-lib-path=/tools/lib \
--with-sysroot make -j8 make install

3.准备链接

make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib
cp -v ld/ld-new /tools/bin

4.返回并删除binutils包

cd $LFS/sources/

rm -rf binutils-2.32

第5.10章节

gcc的第二次编译安装

1.解压并进入gcc包目录

tar -xvf gcc-8.2..tar.xz

cd gcc-8.2.

2.运行书中的编译安装命令,建立工具链并检查工具链

cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include-fixed/limits.h for file in gcc/config/{linux,i386/linux{,}}.h
do
cp -uv $file{,.orig}
sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
-e 's@/usr@/tools@g' $file.orig > $file
echo '
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
touch $file.orig
done case $(uname -m) in
x86_64)
sed -e '/m64=/s/lib64/lib/' \
-i.orig gcc/config/i386/t-linux64
;;
esac tar -xf ../mpfr-4.0.2.tar.xz
mv -v mpfr-4.0.2 mpfr
tar -xf ../gmp-6.1..tar.xz
mv -v gmp-6.1. gmp
tar -xf ../mpc-1.1..tar.gz
mv -v mpc-1.1. mpc mkdir -v build
cd build CC=$LFS_TGT-gcc \
CXX=$LFS_TGT-g++ \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-ranlib \
../configure \
--prefix=/tools \
--with-local-prefix=/tools \
--with-native-system-header-dir=/tools/include \
--enable-languages=c,c++ \
--disable-libstdcxx-pch \
--disable-multilib \
--disable-bootstrap \
--disable-libgomp make -j8 make install ln -sv gcc /tools/bin/cc echo 'int main(){}' > dummy.c
cc dummy.c
readelf -l a.out | grep ': /tools' rm -v dummy.c a.out

3.返回sources目录并删除目录

cd $LFS/sources/

rm -rf gcc-8.2.

第5.11章节

构建安装tcl

1.解压并进入tcl包

tar -xvf tcl8.6.9-src.tar.gz

cd tcl8.6.9-src

2.按照书中的说明编译安装

cd unix
./configure --prefix=/tools make -j8 make install

3.配置tcl

chmod -v u+w /tools/lib/libtcl8..so

make install-private-headers

ln -sv tclsh8. /tools/bin/tclsh

4.返回sources目录并删除目录

cd $LFS/sources/

rm -rf tcl8.6.9-src

第5.12章节

编译安装expect包

1.解压并进入expect目录

tar -xvf expect5.45.4.tar.gz
cd expect5.45.4

2.按照书中的编译说明进行编译安装

cp -v configure{,.orig}
sed 's:/usr/local/bin:/bin:' configure.orig > configure ./configure --prefix=/tools \
--with-tcl=/tools/lib \
--with-tclinclude=/tools/include make -j8 make SCRIPTS="" install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf expect5.45.4

第5.13章节

编译安装dejagnu包

1.解压并进入dejagnu包

tar -xvf dejagnu-1.6.2.tar.gz

cd dejagnu-1.6.2

2.参照书中方法编译安装

./configure --prefix=/tools

make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf  dejagnu-1.6.2

第5.14章节

编译安装m4包

1.解压并进入m4包目录

tar -xvf m4-1.4..tar.xz

cd  m4-1.4.

2.参照书中说明编译安装

sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h ./configure --prefix=/tools make -j8 make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf  m4-1.4.18

第5.15章节

编译安装ncurses包

1.解压并进入ncurses包

tar -xvf ncurses-6.1.tar.gz

cd  ncurses-6.1

2.参照书中说明编译安装

sed -i s/mawk// configure

./configure --prefix=/tools \
--with-shared \
--without-debug \
--without-ada \
--enable-widec \
--enable-overwrite make -j8 make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf ncurses-6.1

第5.16章节

编译安装bash

1.解压并进入bash包目录

tar -xvf bash-5.0.tar.gz

cd bash-5.0

2.参照书中内容编译安装

/configure --prefix=/tools --without-bash-malloc

make -j8

make install

ln -sv bash /tools/bin/sh

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf bash-5.0

第5.17章节

编译安装bison

1.解压并进入bison包目录

tar -xvf bison-3.3.2.tar.xz

cd bison-3.3.2

2.参照书中内容编译安装

./configure --prefix=/tools

make -j8

make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf bison-3.3.2

第5.18章节

编译安装bzip2包

1.解压并进入bzip2包目录

tar -xvf bzip2-1.0..tar.gz

cd  bzip2-1.0.

2.参照书中说明编译安装

make -j8

make PREFIX=/tools install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf bzip2-1.0.6

第5.19章节

编译安装coreutils包

1.解压并进入coreutils包目录

tar -xvf coreutils-8.30.tar.xz

cd  coreutils-8.30

2.参照书中说明编译安装

./configure --prefix=/tools --enable-install-program=hostname

make -j8

make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf coreutils-8.30

第5.20章节

编译安装diffutils包

1.解压并进入diffutils包目录

tar -xvf diffutils-3.7.tar.xz

cd  diffutils-3.7

2.参照书中内容编译安装

./configure --prefix=/tools

make -j8

make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf diffutils-3.7

第5.21章节

编译安装file包

1.解压并进入file包目录

tar -xvf file-5.36.tar.gz

cd  file-5.36

2.参照书中说明编译安装

./configure --prefix=/tools

make -j8

make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf file-5.36

第5.22章节

编译安装findutils包

1.解压并进入findutils包目录

tar -xvf findutils-4.6..tar.gz

cd  findutils-4.6.

2.参照书中说明编译安装

sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' gl/lib/*.c
sed -i '/unistd/a #include <sys/sysmacros.h>' gl/lib/mountlist.c
echo "#define _IO_IN_BACKUP 0x100" >> gl/lib/stdio-impl.h ./configure --prefix=/tools make -j8 make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf findutils-4.6.0

第5.23章节

编译安装gawk包

1.解压并进入gawk包目录

tar -xvf gawk-4.2..tar.xz

cd gawk-4.2.

2.参照书中的说明编译安装

./configure --prefix=/tools

make -j8

make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf gawk-4.2.1

第5.24章节

编译安装gettext包

1.解压并进入gettext包目录

tar -xvf gettext-0.19.8.1.tar.xz

cd gettext-0.19.8.1

2.参照书中说明编译安装

cd gettext-tools
EMACS="no" ./configure --prefix=/tools --disable-shared make -C gnulib-lib
make -C intl pluralx.c
make -C src msgfmt
make -C src msgmerge
make -C src xgettext cp -v src/{msgfmt,msgmerge,xgettext} /tools/bin

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf gettext-0.19.8.1

第5.25章节

编译安装grep包

1.解压并进入grep包目录

tar -xvf grep-3.3.tar.xz

cd  grep-3.3

2.参照书中说明编译安装

./configure --prefix=/tools

make -j8

make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf grep-3.3

第5.26章节

编译安装gzip包

1.解压并进入gzip包目录

tar -xvf gzip-1.10.tar.xz

cd  gzip-1.10

2.参照书中说明编译安装

./configure --prefix=/tools

make -j8

make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf gzip-1.10

第5.27章节

编译安装make包

1.解压并进入make包目录

tar -xvf make-4.2..tar.bz2

cd make-4.2.

2.参照书中说明编译安装

sed -i '211,217 d; 219,229 d; 232 d' glob/glob.c

./configure --prefix=/tools --without-guile

make -j8

make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf make-4.2.1

第5.28章节

编译安装patch包

1.解压并进入patch包

tar -xvf patch-2.7..tar.xz

cd patch-2.7.

2.参照书中说明编译安装

./configure --prefix=/tools

make -j8

make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf patch-2.7.6

第5.29章节

编译安装perl包

1.解压并进入perl包目录

tar -xvf perl-5.28.1.tar.xz

cd perl-5.28.1

2.参照书中说明编译安装

sh Configure -des -Dprefix=/tools -Dlibs=-lm -Uloclibpth -Ulocincpth

make -j8

cp -v perl cpan/podlators/scripts/pod2man /tools/bin
mkdir -pv /tools/lib/perl5/5.28.1
cp -Rv lib/* /tools/lib/perl5/5.28.1

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf perl-5.28.1

第5.30章节

编译安装python包

1.解压并进入python包目录

tar -xvf Python-3.7.2.tar.xz

cd Python-3.7.2

2.参照书中说明编译安装

sed -i '/def add_multiarch_paths/a \        return' setup.py
./configure --prefix=/tools --without-ensurepip make -j8 make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf Python-3.7.2

第5.31章节

编译安装sed包

1.解压并进入sed包目录

tar -xvf sed-4.7.tar.xz

cd sed-4.7

2.参照书中说明编译安装

./configure --prefix=/tools

make -j8

make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf sed-4.7

第5.32章节

编译安装tar包

1.解压并进入tar包目录

tar -xvf tar-1.31.tar.xz

cd tar-1.31

2.参照书中说明编译安装

./configure --prefix=/tools

make -j8

make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf tar-1.31

第5.33章节

编译安装texinfo包

1.解压并进入texinfo包目录

tar -xvf texinfo-6.5.tar.xz

cd texinfo-6.5

2.参照书中说明编译安装

./configure --prefix=/tools

make -j8

make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf texinfo-6.5

第5.34章节

编译安装xz包

1.解压并进入xz包目录

tar -xvf xz-5.2..tar.xz

cd xz-5.2.

2.参照书中内容编译安装

./configure --prefix=/tools

make -j8

make install

3.返回sources目录并删除解压目录

cd $LFS/sources/

rm -rf xz-5.2.4

退出lfs用户,进入root用户

exit

第5.35章节

删除没有用的链接及文档(可选)

1.删除调试符号

strip --strip-debug /tools/lib/*
/usr/bin/strip --strip-unneeded /tools/{,s}bin/*

2.删除不需要的文件及文档

rm -rf /tools/{,share}/{info,man,doc}
find /tools/{lib,libexec} -name \*.la -delete

第5.36章节

改变文件所有权

1.将文件的所有权限改为root

chown -R root:root $LFS/tools

此时删除创建的lfs用户及用户组

1.运行以下命令删除用户和用户组

userdel -r lfs

第6.2章节

创建虚拟内核文件系统

mkdir -pv $LFS/{dev,proc,sys,run}

mknod -m  $LFS/dev/console c
mknod -m $LFS/dev/null c mount -v --bind /dev $LFS/dev mount -vt devpts devpts $LFS/dev/pts -o gid=,mode=
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
mount -vt tmpfs tmpfs $LFS/run if [ -h $LFS/dev/shm ]; then
mkdir -pv $LFS/$(readlink $LFS/dev/shm)
fi

第6.4章节

进入chroot环境

chroot "$LFS" /tools/bin/env -i \
HOME=/root \
TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
/tools/bin/bash --login +h

第6.5章节

创建lfs系统的目录结构

mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib/firmware,mnt,opt}
mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}
install -dv -m /root
install -dv -m /tmp /var/tmp
mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
mkdir -v /usr/{,local/}share/{misc,terminfo,zoneinfo}
mkdir -v /usr/libexec
mkdir -pv /usr/{,local/}share/man/man{..} case $(uname -m) in
x86_64) mkdir -v /lib64 ;;
esac mkdir -v /var/{log,mail,spool}
ln -sv /run /var/run
ln -sv /run/lock /var/lock
mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}

第6.6章节

创建基本文件和符号

ln -sv /tools/bin/{bash,cat,chmod,dd,echo,ln,mkdir,pwd,rm,stty,touch} /bin
ln -sv /tools/bin/{env,install,perl,printf} /usr/bin
ln -sv /tools/lib/libgcc_s.so{,.} /usr/lib
ln -sv /tools/lib/libstdc++.{a,so{,.}} /usr/lib install -vdm755 /usr/lib/pkgconfig ln -sv bash /bin/sh
ln -sv /proc/self/mounts /etc/mtab
cat > /etc/passwd << "EOF"
root:x:::root:/root:/bin/bash
bin:x:::bin:/dev/null:/bin/false
daemon:x:::Daemon User:/dev/null:/bin/false
messagebus:x:::D-Bus Message Daemon User:/var/run/dbus:/bin/false
nobody:x:::Unprivileged User:/dev/null:/bin/false
EOF
cat > /etc/group << "EOF"
root:x::
bin:x::daemon
sys:x::
kmem:x::
tape:x::
tty:x::
daemon:x::
floppy:x::
disk:x::
lp:x::
dialout:x::
audio:x::
video:x::
utmp:x::
usb:x::
cdrom:x::
adm:x::
messagebus:x::
systemd-journal:x::
input:x::
mail:x::
nogroup:x::
users:x::
EOF

删除我没有名字的提示

exec /tools/bin/bash --login +h

创建登录日志文件

touch /var/log/{btmp,lastlog,faillog,wtmp}
chgrp -v utmp /var/log/lastlog
chmod -v /var/log/lastlog
chmod -v /var/log/btmp

lfs(systemv版本)学习笔记-第3页 的地址:https://www.cnblogs.com/renren-study-notes/p/10199965.html

lfs(systemv版本)学习笔记-第2页的更多相关文章

  1. lfs(systemv版本)学习笔记-第4页

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs(systemv版本)学习笔记第3页:https://www.cnblogs.com/renren-study-notes ...

  2. lfs(systemv版本)学习笔记-第3页

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs(systemv版本)学习笔记-第2页的地址:https://www.cnblogs.com/renren-study-n ...

  3. lfs(systemv版本)学习笔记-第1页

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一名linux爱好者,记录构建Linux From Scratch的过程 经博客园-骏马金龙前辈介绍,开始接触学习lfs,用博客 ...

  4. lfs(systemd版本)学习笔记-第3页

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs(systemd)学习笔记-第2页 的地址:https://www.cnblogs.com/renren-study-no ...

  5. lfs(systemd版本)学习笔记-第1页

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一名linux爱好者,记录构建Linux From Scratch的过程 经博客园-骏马金龙前辈介绍,开始接触学习lfs,用博客 ...

  6. lfs(systemd版本)学习笔记-第4页

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs(systemd版本)学习笔记-第3页 的地址:https://www.cnblogs.com/renren-study- ...

  7. lfs(systemd版本)学习笔记-第2页

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs(systemd)学习笔记-第1页 的地址:https://www.cnblogs.com/renren-study-no ...

  8. 关于Angular.js Routing 的学习笔记(实现单页应用)

    最近开始学习angular.js,发现angular.js确实很方便,也很强大.在看到 AngularJS Routing and Multiple Views 这一部分的时候,有点乱.现在通过记录一 ...

  9. react-router 4.0版本学习笔记

    Router 所有路由组件的底层接口,一般情况都不使用,而是使用更加高级的路由. 最常用的有两种<BrowserRouter>.<HashRouter> <Browser ...

随机推荐

  1. http响应头里没有或者有content-length的几种可能性

    对于http的请求返回结果要进行内容的长度校验主要有两种方式,二者互斥使用 1.客户端在http头(head)加Connection:keep-alive时,服务器的response是Transfer ...

  2. UNIGUI与UNIURLFRAME的互动

    UniSession.JSCode('name_'+MainForm.UniURLFrame1.name+'_'+MainForm.UniURLFrame1.JSName+'.myinput4.inn ...

  3. XE下显示托盘图标(TrayIcon)

    https://www.cnblogs.com/studypanp/p/4930619.html XE下显示托盘图标(TrayIcon)   1.拖一个TrayIcon控件 2.拖一个Applicat ...

  4. poj3281构图题

    题目大意:有F种食物,D种饮料N头奶牛,只能吃某种食物和饮料(而且只能吃特定的一份)一种食物被一头牛吃了之后,其余牛就不能吃了第一行有N,F,D三个整数接着2-N+1行代表第i头牛,前面两个整数是Fi ...

  5. ES6-字符串扩展-padStart(),padEnd()

    ES6 引入了字符串补全长度的功能,如果某个字符串不够指定长度,会在头部活尾部补全. padStart() 用于头部补全: padEnd() 用于尾部补全. 上面代码中,padStart 和 padE ...

  6. ELKstack简介及环境部署

    ELK工作流程图 环境准备 安装Logstash依赖包JDK Logstash的运行依赖于Java运行环境, Logstash 1.5以上不低于java 7推荐使用最新版本的Java.由于只是运行Ja ...

  7. jvm-class文件简介

    jvm全称 java virtual machine (java虚拟机),也就是在计算机上再虚拟一个计算机,它存在于计算机内存中并运行在操作系统之上的. javap -v class文件名 > ...

  8. 【xsy2479】counting 生成函数+多项式快速幂

    题目大意:在字符集大小为$m$的情况下,有多少种构造长度为$n$的字符串$s$的方案,使得$C(s)=k$.其中$C(s)$表示字符串$s$中出现次数最多的字符的出现次数. 对$998244353$取 ...

  9. LDA-线性判别分析(三)推广到 Multi-classes 情形

    本来是要调研 Latent Dirichlet Allocation 的那个 LDA 的, 没想到查到很多关于 Linear Discriminant Analysis 这个 LDA 的资料.初步看了 ...

  10. HP服务器设置iLO步凑

    HP服务器设置iLO步凑 1.开机出现界面—按下F11进入Boot Menu: 2.选择Generic USB Boot回车: 3.选择System Configuration回车: 4.选择iLO ...