周末折腾了一下Arch Linux
,在安装过程中有两点需要注意:
(1)想预先知道Linux kernel
有哪些配置选项被打开,可以参考这里;
(2)默认的base
安装包不含networkmanager
,需要单独安装并启动:
# pacman -S networkmanager
# systemctl enable NetworkManager
周末折腾了一下Arch Linux
,在安装过程中有两点需要注意:
(1)想预先知道Linux kernel
有哪些配置选项被打开,可以参考这里;
(2)默认的base
安装包不含networkmanager
,需要单独安装并启动:
# pacman -S networkmanager
# systemctl enable NetworkManager
Arch Linux: Find Disk Space by Cleaning Filesystem一文介绍如何清理ArchLinux
上的磁盘空间:
(1)删除不用的package
:
$ sudo pacman -Rns $(pacman -Qtdq)
(2)清理package cache
:
$ sudo pacman -Sc
使用Arch Linux差不多有一年的时间了,总体感觉它是一个很不错的Linux
发行版。
Arch Linux
采用的是“滚动发布”(rolling release
)模式,只需一个“pacman -Syu
”命令,就可以用上最新的内核和软件包。这对那些对软件版本“追求极致”的开发者们(比如我),无疑是个“福音”。此外,Arch Linux
的安装包做的很“人性化”。例如,我最近尝试使用clang
开发OpenMP
程序,不同于gcc
,clang
需要安装额外的包。而在安装clang
时,系统会给出详细的提示信息:
# pacman -S clang
......
Optional dependencies for clang
openmp: OpenMP support in clang with -fopenmp
python2: for scan-view and git-clang-format
......
可以看到,除了表明需要openmp
安装包外,系统还指出使用clang
时要使用-fopenmp
选项,这充分反映了安装包“考虑”的很“周全”。而在使用其它的一些Linux
发行版时,安装clang
的OpenMP
开发包时就很费一番周折。
另外,Arch Linux
已经正式宣布不再支持i686
平台了,这也提醒我们,也许是时候考虑和32
位处理器说再见了。
当我在bash
中敲入time
命令时,运行的其实是bash
内置的time
命令:
$ time
real 0m0.000s
user 0m0.000s
sys 0m0.000s
$ type time
time is a shell keyword
这个time
命令有一个-p
选项,表示以posix
格式输出:
$ time -p
real 0.00
user 0.00
sys 0.00
除此以外,还有一个time
命令。不过我当前的机器并没有安装这个程序:
$ which time
which: no time in (/home/xiaonan/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/cuda/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl)
安装一下,对比bash
内置的time
命令:
$ sudo pacman -S time
$ type time
time is a shell keyword
$ which time
/usr/bin/time
单独运行“/usr/bin/time -p
”,只会输出命令的帮助选项:
$ /usr/bin/time -p
Usage: /usr/bin/time [-apvV] [-f format] [-o file] [--append] [--verbose]
[--portability] [--format=format] [--output=file] [--version]
[--help] command [arg...]
需要加上具体的需要度量时间的命令:
$ /usr/bin/time -p echo
real 0.00
user 0.00
sys 0.00
此外也可以给出命令执行的详细信息:
$ /usr/bin/time -v echo
Command being timed: "echo"
User time (seconds): 0.00
System time (seconds): 0.00
Percent of CPU this job got: 0%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1536
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 70
Voluntary context switches: 1
Involuntary context switches: 1
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
@YeimMeMeMes 在其个人社交媒体主页上贴出了一张如何选择Linux
发行版的图(原图链接:https://pbs.twimg.com/media/C3PoAagWMAAe5YT.jpg:large):
因为这幅图上所列举的大部分Linux
发行版我都没怎么使用过,所以我没有资格对这张图是否合理发表评论,仅供读者参考。下面我仅对我曾经使用过的一些Linux
发行版谈些感受:
(1)这个图上并没有出现一些Linux
的商业版本,譬如,RedHat
的Red Hat Enterprise Linux,SuSE
的SUSE Linux Enterprise Server,等等。我以前做过这两个Linux
商业版本上的测试工作,感觉还是很稳定的。给我一个很深的印象就是在Red Hat Enterprise Linux
上编译和安装最新版本的Linux
内核总是非常顺利,而在其它发行版上有时会遇到一些莫名其妙的问题。从去年开始,Red Hat Enterprise Linux
对开发者已经免费了(可参考这篇文章:As in beer: Red Hat offers RHEL free to developers),有兴趣的朋友可以体验一下。
(2)最近两个月,在工作中我主要使用Arch Linux
。Arch Linux
在软件包更新方面非常及时。有时你发现当前软件包不是最新的,只要在其网站上提一个请求,很快就会有维护者响应。如果你总是希望可以使用上最新的软件版本,不妨尝试一下Arch Linux
。