分类 教程 下的文章

RedHat Enterprise Linux 8 上 Python 环境默认是不预装的, 因此, 用户需要根据自己需要选择安装 Python 3 还是 Python 2.官方源中默认对 Python 3.6 有全面的支持. 接下来我们看看如何安装需要的 Python 版本.

注: 大多情况下, yum 包管理器是需要依赖 Python 和 一些基础包, 早期的发行版是将系统依赖的 Python 和 用户应用软件 公用 Python 环境, 这样就容易造成系统和用户环境对 Python 环境的冲突. 从 RedHat Enterprise Linux 8 将系统 Python 环境独立出来作为 Platform-Python, 即系统平台 Python 环境, 用户将不能使用该 Python 环境, 仅有系统功能使用, 有官方统一维护. 当然, 用户可以编写一些系统使用的 Python 程序有 Platform-Python 使用.

## 安装 Python 3

RedHat Enterprise Linux 8 开始启用新的包管理工具 dnf, 我们使用 dnf 来安装 python3

dnf install python3

因为官方支持的 3.6 版本, 因此随同 python3 的安装, 也将同时将 pipsetuptools 等依赖将一并安装好.

- 阅读剩余部分 -

httpd 是 Apache HTTP 服务器, 运行于常见操作系统(包括UNIX和Windows)HTTP服务器, httpd 安全,高效且可扩展,该服务器提供与当前HTTP标准同步的HTTP服务。

安装

安装 httpd 比较简单, 各个发行版本的默认仓库中均包含该程序, 少量发行版需要手动编译安装, 依据项目描述的 README.md 文档, 可快速安装到目标系统.

  • Debian/Ubuntu
apt -y install apache2
  • REHL/CentOS
yum -y install httpd
  • Gentoo
emerge www-servers/apache

- 阅读剩余部分 -

MySQL 5.0.37 以上开始支持 MySQL Query Profiler, 可以查询到此 SQL 会执行多少时间, 并看出 CPU/Memory 使用量, 执行过程中 System lock, Table lock 花多少时间等等.

启用 MySQL Query Profile

mysql> set profiling=1;
Query OK, 0 rows affected (0.00 sec)

测试查询语句

mysql> select count(*) from user;
+----------+
| count(*) |
+----------+
|      200 |
+----------+
1 row in set (0.00 sec)

查看 Profiles

mysql> show profiles;
+----------+------------+-----------------------------------------------+
| Query_ID | Duration   | Query                                         |
+----------+------------+-----------------------------------------------+
|        0 | 0.00007300 | set profiling=1                               |
|        1 | 0.00048366 | select count(*) from user |
+----------+------------+-----------------------------------------------+
2 rows in set (0.00 sec)

- 阅读剩余部分 -

二分查找算法

二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。

算法

  1. 假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;
  2. 否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。
  3. 重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。

- 阅读剩余部分 -

字节流和字符流

Guava使用术语“stream”来表示I/O数据的可关闭流,这些数据在底层资源中具有位置状态。术语“byte stream”指的是InputStreamOutputStream,而“char stream”指的是阅读器或写入器(尽管它们的ReadableAppendable常用作方法参数)。相应的实用程序分为ByteStreamsCharStreams实用程序类。

大多数Guava流工具一次处理一个完整的流,并且为了效率自己处理缓冲。还要注意到,接受流为参数的Guava方法不会关闭这个流:关闭流的职责通常属于打开流的代码块。

- 阅读剩余部分 -

flv 是flash video的简称,flv流媒体格式是随着flash mx的推出发展而来的视频格式。相对来说在各个设备上, 支持mp3的更普遍,将 flv 格式转换为 mp3 格式就有了需求.

ffmpeg 是一个速度极快的视频/音频转换器, 甚至能捕获一个实时的音视频流,功能非常强大,我们这里先仅仅介绍下,如何将 flv 转换为 mp3.

ffmpeg 基本使用格式为:

ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url}

flv 转换为 mp3 也相对较简单:

ffmpeg -i example.flv example.mp3

有空我们详细展开下 ffmpeg 的使用教程.

- 阅读剩余部分 -

有些时候, 我们在 Shell 脚本中, 添加 Yes or No 选项, 便于用户决策某些流程, 可以使用下面的示例逻辑.

while true
do
    echo -n "请确认您的选择是或否。 (Y(y)表示是,N(n)表示否): "
    echo ' '
    read CONFIRM
    case $CONFIRM in
        y|Y) break ;;
        n|N)
        echo "你选择了 : " $CONFIRM
    exit
;;
*) echo "请只输入 Y(y)/N(n)"
esac
done

- 阅读剩余部分 -

我们在平常在开发环境使用 MySQL 的过程中,经常需要命令行登录, 比如:

mysql -h localhost -P 3306 -u root -D steel_server -p
******

mysql>
  • -h 服务地址
  • -P 服务端口
  • -u 服务用户
  • -D 默认数据库
  • -p 输入密码

在开发环境每次都输入这么长的内容, 也挺不方便的,于是看了下, mysql 命令是否支持本地配置的功能, man mysql 中有这部分描述

       ·   Use an option file.  You can set the prompt option in the [mysql] group of any MySQL option file, such as /etc/my.cnf or the .my.cnf file in your home directory. For example:

               [mysql]
               prompt=(\\u@\\h) [\\d]>\\_

- 阅读剩余部分 -

一般我们在执行系统安装过程,可能会定制安装ISO, 在ISO中集成我们自定义的一些软件包或者源码代码等等,需要在Kickstart中从cdrom中加载该内容,以便完成后续的系统配置或者软件包的安装.

一般我们会在 %post 部分来定义自定义配置逻辑, 但是在该环节,无法访问cdrom, 因为已经 chroot 到目标OS.

%post --log=/tmp/ks-post.log

yum -y update
yum -y upgrade

%end

- 阅读剩余部分 -