分类 操作系统 下的文章

Ubuntu 17/18 版本默认已经预装 Python 3.6, 系统安装完成之后将直接可用, 而旧版的 Ubuntu, 比如 14/16 默认预装的均不是最新的 Python 3.6 版本, 如果希望通过 apt 包管理器在旧版系统上安装 Python 3.6, 需要添加特殊的软件源才可以. 当然你也可以通过 3.6 版本的 Python 源码来安装, 后续我们抽空再介绍一次, 如何通过源码安装 Python 3.6.

默认情况下, Ubuntu 14.04Ubuntu 16.04 默认安装的是 Python 2.7Python 3.5 版本,要安装最新的 Python 3.6 版本, 需要添加 deadsnakes PPA 软件源.

# add-apt-repository ppa:deadsnakes/ppa
# apt update
# apt install python3.6

而在 Ubuntu 16.10Ubuntu 17.04 版本上直接从仓库源安装即可

# apt update
# apt install python3.6

- 阅读剩余部分 -

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

- 阅读剩余部分 -

Python MySQLdb 库, 查询结果返回的是tuple, 输出的时候不是很方便, 因为只能通过索引读取内容, 查找了下, 可以通过指定 MySQLdb.cursors.DictCursor 返回 dict 内容数据.

默认情况下, 调用过程和返回结果:

import MySQLdb
db  = MySQLdb.connect(host='localhost', user='root', passwd='admin', db='test')
cur = db.cursor()
cur.execute('select * from user')
rs = cur.fetchall()
print rs
# 返回类似如下
# ((1000L, 0L), (2000L, 0L), (3000L, 0L))

- 阅读剩余部分 -

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)

- 阅读剩余部分 -

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

- 阅读剩余部分 -