分类归档: Linux

Arch Linux 哲学

Arch Linux 哲学

摘自:http://www.archlinux.org.cn/main/node/79?q=node/57#philosophy

Arch Linux背后的哲学,也是开发者遵循的原则就是“简单”。事实上,也就是“保持简单”。开发者们希望由于用复杂的方式做简单的事情浪费大量时间。 这就是为什么Arch的所有配置都是通过修改配置文件来完成的原因,也是为什么只有最新的系统被提供支持的原因。这也是下面将要提到的一些问题的最终决定的理由。

这个哲学给用户们做更多的是“能力”。你的系统是你自己的。这个Linux发行版不会帮你做什么事情,它会给你做事情的“能力”。

作为一个发行版,Arch Linux没有必要作许多事情,但是她将她需要做的事情做得很好。一个发行版的作用并不是提供软件包--发行版所必须要提供的是一个软件包管理系统。Arch 再这方面是优秀的。她给你提供了二进包的管理工具 pacman ,也提供了源码创建软件包的 ABS。Arch提供了简单而强大的启动例程和初始化脚本。除了这些,许多的配置工作都留给了软件开发者。如果开发者开发的软件是独立运行于一个单独的目录下的话,这个软件就被放在/opt下面。如果这个软件是要被其它软件共享的,它就被放置在/usr下。这就是Arch软件包打包的方式。这样无论是对开发者还是对用户都可以保持一切简单化。如此,那些你要配置或使用到的文件被放置在程序文档中说明的地方,而不是发行版说的他们“应该”在的地方。

使用Arch的典型方法是使用pacman安装所有的软件包,除非没有这个软件包,你可以自己制作自己的软件包。我们希望你用pacman -Syu保持你的系统是最新的,而不是选择性的升级软件包。甚至在/etc/pacman.conf使用IgnorePkg也是不被推荐的。

你可能会按照你自己的方式对这种典型方式进行发挥,需要注意的是这样你的系统工作不正常的几率会高一些,也许会破坏你的系统。大部分问题都是来自选择性升级或进行了不正常的编译。

———————————————美丽的分隔线———————————————

The Arch Way

From ArchWiki

Jump to: navigation, search

i18n
Dansk
English
Español
Lietuviškai
Polski
Português de Portugal
Русский
Česky
Italiano
Français
Deutsch
繁體中文
简体中文

The following four principles comprise what is commonly referred to as the Arch Way, or the Arch Philosophy, best summarized by the acronym KISS for Keep It Simple, Stupid.

Contents

[hide]

Simple

Many GNU/Linux distributions define themselves as “simple”. However, simplicity itself has many definitions.

Arch Linux defines simplicity as a lightweight base structure without unnecessary additions, modifications, or complications, that allows an individual user to shape the system according to their own needs. In short; an elegant, minimalist approach.

A lightweight base structure does not mean that the base system is small. Rather, the base system is devoid of all clutter that may obscure important parts of the system, or make access to them difficult or convoluted. It has a streamlined set of configuration files that are arranged for quick access and editing, with no cumbersome graphical configuration tools that tend to hide possibilities from the user. An Arch Linux system is therefore readily configurable to the very last detail.

On the other hand, Arch Linux keeps the inherent complexities of a GNU/Linux system intact, while exposing them to the user at the same time. Arch Linux developers and users believe that trying to hide the complexities of a system actually results in an even more complex system, and is therefore to be avoided.

Code-correctness over convenience

The Arch Linux system places precedence upon elegance of design, rather than unnecessary automation or "user-friendliness".

Simplicity, elegance, code-correctness and minimalism shall always remain the reigning priorities of Arch development.

Concepts, designs and features are generated and implemented by using the Arch Way principles as a guide, rather than bowing to external influences. The development team are resolute in their commitment to the Arch Way philosophy.

Open

Openness goes hand in hand with simplicity, and is also one of the guiding principles of Arch Linux development.

Arch Linux uses simple tools, that are selected or built with openness of the sources and their output in mind.

While openness may be overwhelming to many new GNU/Linux users, experienced Arch Linux users find it welcoming and practical. It removes all boundaries between the user and the system, giving users more control over the system, while simultaneously simplifying system maintenance.

The open nature of Arch Linux also implies a fairly steep learning curve, but experienced Arch Linux users tend to find the other more closed systems much more difficult to control.

The Openness principle extends to its community members as well. Arch Linux users are known to be very open with help and advice, as well as with package contributions to the community maintained Arch User Repository.

User-centric

Whereas many GNU/Linux distributions attempt to be more ‘user-friendly’, Arch Linux has always been, and will always remain ‘user-centric’.

Arch Linux targets and accommodates competent GNU/Linux users by giving them full, and only full, control over the system.

Arch Linux users fully manage the system on their own. The system itself will offer little assistance, except for a simple set of maintenance tools that are designed to perfectly relay the user’s commands to the system.

The user-centric design also implies a certain “do it yourself” approach. Rather than requesting a new feature be implemented by developers, Arch Linux users have a tendency to solve problems themselves and share the results with the community and development team — a "Do first, then ask" philosophy. This is especially true for user-contributed packages found in the Arch User Repository — the official Arch Linux repository for community-maintained packages.

Free

Another guiding principle of Arch Linux development is freedom of choice. The users are not only permitted to make all decisions concerning system configuration, but also get to choose what their system will *be*.

By keeping the system simple, Arch Linux provides the freedom to make any choice about the system.

A freshly installed Arch Linux system contains only basic core components with no automatic configuration performed. Users are able to configure the system as they wish, from the CLI. Right from the start of the installation procedure, every component of the system is 100% transparent and accessible for instant removal or replacement by alternative components.

The large number of packages in the various Arch Linux repositories also support freedom of choice. Further, in comparison to other GNU/Linux distributions, the process of creating a new package is itself a simple, open, user-centric, and free process. New packages can be created easily with a little knowhow using the Arch Build System (ABS).

As Judd Vinet, the founder of the Arch Linux project said: "[Arch Linux] is what you make it."

Read: 886

[转]ArchLinux

src:http://wiki.archlinux.org/index.php/ArchLinux_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#Arch_Linux_.E6.98.AF.E4.BB.80.E4.B9.88.3F

Arch Linux 是什么?

Arch Linux 是个 针对 i686 优化的 linux 发行版。最初灵感源于 Per Lidén 开发的一个非常不错的 CRUX 发行版。

优势

Arch 基本理念是快速、轻巧、弹性与简单。这并非华而不实的行话,他们都是事实。Arch 是为 i686 处理器优化的, 所以可以为你取得更多的cpu cycle(快速)。他相较于 RedHat 或是其他的 Linux 而言是轻巧的, 而且简单的设计使他富有弹性并且可以成为任何你想建立的系统的模型。

特有的包管理

通过可以轻松使用的二进制包系统 – pacman – 一个命令就让您升级整个系统。Arch 同时也拥有一个类似 ports 的包构建系统(Arch Build System),通过它可以轻松构建软件包。它也是一个命令就可完成同步。哦,是的,您也可以用一个命令重新构建(rebuild)整个系统。所有事情都 是在一个非常简单、明了的情况下完成的。

只要最好的

Arch Linux 的使用者和发展者也很有效率的支持维护 current 与 extra 集,让Arch Linux的软件维持在最新的稳定版。

简单是关键

Arch 要达到的目标是简单和轻巧,我已经省去于 linux 系统无用的相关部分,比如 /usr/doc 和 info pages。按我个人经验,这些都是没多大用处的,而且真的需要时,可以从网络上获取等价的信息。Man pages 就足够了…

时髦的工具

Arch Linux 努力采用用户可以使用的更新的特性,比如 Ext3/ReiserFS 和 udev 等。Arch Linux 0.7 (Wombat) 缺省使用 2.6 的 linux 内核,而且支持 XFS/JFS。

进一步了解

Arch 的主页在 http://www.archlinux.org/ ,在那里您可以找到 用户论坛的链接,官方文档,和所有其他 Arch 相关的东西。也可以通过阅读 Arch之道

Read: 928

[原创]Fedora8 + Nginx 0.6.3 + PHP 5.2.5

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。尽管还是测试版,但是,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。

对于高负载web服务器强烈推荐

uname -a
Linux gk 2.6.24.4-64.fc8 #1 SMP Sat Mar 29 09:54:46 EDT 2008 i686 athlon i386 GNU/Linux

一、先编译安装PCRE, 我用的是当时最新的版本 7.7
nginx的rewrite需要pcre库的支持,如果你不用rewrite也可以不装这个
CFLAGS=’-O2 -Wall’ ./configure –prefix=/usr/local/pcre
make -j 4 (此项根据个人机器而定 一般来说cpu * 2是没有问题的,多任务编译,机器扛得住就越多越快)
make install

(其实貌似不装也可以,nginx配置的时候设定的路径是源码包。。。。)

二、编译安装nginx 0.6.3

  • gzip 模块需要 zlib

  • rewrite 模块需要 pcre

  • ssl 功能需要 openssl

这里的用户(www)应该有对document_root完全操作权限(777)
md5和sha1系统应该是都有带了的,但是不指定的话它会找不到,还是得给个路径
openssl根据个人需要装吧 yum install openssl 就行,不知道是什么就别装了, 用来支持https的
./configure
        –prefix=/usr/local/nginx
        –user=www
        –group=www
        –with-http_ssl_module
        –with-http_stub_status_module
        –with-pcre=/workspace/software/pcre-7.7
        –with-md5=/usr
        –with-sha1=/usr
make -j 4
make install

三、编译安装PHP
PHP的配置是比较复杂的,不过网上的资料太多了,我就不多说了
注意两点:必须添加
–enable-fastcgi
–enable-force-cgi-redirect
不能保留(sapi / cli|cgi 貌似不能共存还是同时编译?如果有需要就弄到两个目录去好了)
–with-apxs2
下面是我的配置,仅供参考
./configure
        –prefix=/usr/local/php
        –with-config-file-path=/usr/local/php
        –with-mysql=/usr/local/mysql
        –with-iconv-dir=/usr/local
        –with-xsl –disable-rpath
        –enable-discard-path
        –enable-safe-mode
        –enable-bcmath
        –enable-shmop
        –enable-sysvsem
        –enable-inline-optimization
        –with-libexpat-dir=/usr/lib
        –with-gmp
        –with-curl
        –with-curlwrappers
        –enable-mbregex
        –enable-ftp
        –with-gd=/usr/local/gd2035
        –enable-zip
        –enable-sockets
        –enable-soap
        –enable-mbstring=all
        –enable-gd-native-ttf
        –with-freetype-dir
        –with-jpeg-dir
        –with-png-dir
        –with-zlib
        –with-pdo-mysql=/usr/local/mysql
        –without-pdo-sqlite
        –enable-fastcgi
        –enable-force-cgi-redirect

make -j 4
make install

复制 php.ini-(dis|recommended) 到 –with-config-file-path 设定的目录下
修改,去处其注释
cgi.fix_pathinfo=1
保持doc_root的值为空或者注释掉

其他根据需要设定即可,这里只提有别与普通设置的地方

四、我们需要ligthttpd 的 spawn-fcgi来启动php-cgi。。。
先down下来ligthttpd源码 。。
然后编译(对,就是编译,咱不装他)
configure && make -j 4 (省事的做法。。)

编译完成后 进入src目录
复制 spawn-fcgi 到 /usr/local/php/bin 目录下

然后可以先启动我们的fastcgi喽,用下面这个命令
/usr/local/php/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 20 -u www -g www -f /usr/local/php/bin/php-cgi

-f cgi程序路径
-a 绑定到的IP
-p 端口
-C 启动进程数, 内存大的话(3G以上推荐250,如果服务器内存小于3GB,可以只开启25个进程,性能损失不到一倍)
(作为root 启动才能用的参数)
-u <user>    使用指定的用户启动
-g <group>   指定组群。。。

千万要记住,这里的 用户和组都要有php文件目录(你的document_root)的读写权限噢…最好跟nginx设定的一样
血的教训阿…
如果出现什么 "No input file specified" 可能就是这个问题了

然后编辑
/usr/local/nginx/conf/fastcgi_params

如果你下的版本跟我一样呢,只要加上
fastcgi_param SCRIPT_FILENAME    $document_root$fastcgi_script_name;
这一句就好了, 就加在
fastcgi_param SCRIPT_NAME        $fastcgi_script_name;
的上面就可以了(顺序不重要..主要是要好看嘛…)

关于nginx.conf的设置我就懒得多说了(关键是我还没怎么弄明白呢)

有问题的跟帖说吧….(估计也没人问..哈…写给自己看的…人老了..就怕忘东西)

附上两篇我参考的文章地址:
Nginx 0.5.31 + PHP 5.2.4(FastCGI)搭建可承受3万以上并发连接数,胜过Apache 10倍的Web服务器[原创]
http://blog.s135.com/read.php/297.htm

利用Nginx替代apache实现高性能的Web环境
http://www.linuxpk.com/391/viewspace-7616.html

Read: 969

ulimit使用简介

src: http://www.chinaitpower.com/2005September/2005-09-13/204427.html

1,说明:
ulimit用于shell启动进程所占用的资源.
2,类别:
shell内建命令
3,语法格式:
ulimit [-acdfHlmnpsStvw] [size]

4,参数介绍:

-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes 5,简单实例:

1]在RH8的环境文件/etc/profile中,我们可以看到系统是如何配置ulimit的:
#grep ulimit /etc/profile
ulimit -S -c 0 > /dev/null 2>&1
这条语句设置了对软件资源和对core文件大小的设置
2]如果我们想要对由shell创建的文件大小作些限制,如:
#ll h
-rw-r–r– 1 lee lee 150062 7月 22 02:39 h
#ulimit -f 100 #设置创建文件的最大块(一块=512字节)
#cat h>newh
File size limit exceeded
#ll newh
-rw-r–r– 1 lee lee 51200 11月 8 11:47 newh
文件h的大小是150062字节,而我们设定的创建文件的大小是512字节x100块=51200字节
当然系统就会根据你的设置生成了51200字节的newh文件.
3]可以像实例1]一样,把你要设置的ulimit放在/etc/profile这个环境文件中.

Read: 750

Monkeys Audio (APE) for gstreamer 0.10

src:http://www.linuxsir.org/bbs/thread320386.html

内容原文:
可以在rhythmbox和exaile里播放ape文件了。请大家下载测试

我写了一个monkeys audio的gst 0.10的插件,在我这里基本可用了。一年前我跟0.82插件的作者联系过,他比较忙没空移植,我当时写了一个结果总是崩溃,工作上脱不开身就忘记了。最 近想起来仔细阅读了一下gstreamer plugin developer’s guide,参考了flac的代码写了这个 gstmonkeysdec。编译前请安装mac和mac-devel包,在哪装的我也忘了,rpmfind.net找一下吧。

请把代码下载在目录下执行

代码:
$./configure --prefix=/usr
$su -c "make install"

另外需要安装我打过补丁的gstreamer-plugins-base包,补丁也一并奉上。这是因为gstreamer-plugins- good中已经有一个apetag插件,而且在typefind中的优先级极高,会导致rhythmbox等程序优先调用apetag插件匹配 application/x-apetag类型解析apetag,而不是先匹配application/x-ape来调用 gstapemonkeysdec,就放不了歌曲啦。搞笑的是即使调用了它rhythmbox也显示不出ape tag来。。

还存在两个问题:
1、在seeking的时候反应太慢。经过我的测试,每次seeking需要处理两次EVENT_SEEK,每次都要调用libmac里的CIO->Seek,每次Seek耗费cpu 800,000次,折合0.8秒,这样每次seeking需要近两秒的时间,这是libmac的问题,我无法解决了~
2、在rhythmbox里无法显示apetag。我的插件中已经注册了ape的tag并且实现了读取,使用gst-launch播放时可 以显示tag已经正确解析完毕,但是rhythmbox里就不行,可以在以下对比图中看出。还可以看到ogg的tag也显示不了,flac和mp3正常。 不知道rhythmbox是不是有其他的机制没有使用gstreamer的tag接口,谁乐意的话hack一下rhythmbox吧 ^_^

下载地址

http://gforge.oss.org.cn/projects/gstmac/

Read: 1359