0%

  1. 设置打包目录
    a) 查看当前设置:

    1
    rpmbuild --showrc | grep topdir

    b) 设置目录:

    1
    2
    3
    4
    5
    6
    vim ~/.rpmmacros
    %_topdir /root/src/rpmbuild

    > mkdir rpmbuild
    > cd ./rpmbuild
    > mkdir -pv {BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
  2. 拷贝源代码source 目录

    1
    >cp  /root/src/tengine-2.0.3.tar.gz SOURCES/
  3. 建立spec文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    > cd SPECS
    > vim tengine-2.0.3.spec
    Name: tengine
    Version: 2.0.3
    Release: 1%{?dist}
    Summary: tengine from Taobao

    Group: System Environment/Daemons
    License: GPLv2
    URL: http://blog.zhangwenjin.com
    Source0: %{name}-%{version}.tar.gz
    BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

    BuildRequires: gcc,make
    Requires: openssl,pcre,pcre-devel,lua,lua-devel

    %description
    It is a Nginx from Taobao.

    %prep
    %setup -q


    %build
    ./configure --with-http_lua_module --with-pcre --user=nginx --group=nginx
    make %{?_smp_mflags}


    %install
    rm -rf %{buildroot}
    make install DESTDIR=%{buildroot}


    %clean
    rm -rf %{buildroot}


    %files
    %defattr(-,root,root,-)
    %doc
  4. rpmbuild 打包

rpmbuild

  • -ba 既生成src.rpm又生成二进制rpm
  • -bs 只生成src的rpm
  • -bb 只生二进制的rpm
  • -bp 执行到pre
  • -bc 执行到 build段
  • -bi 执行install段
  • -bl 检测有文件没包含
1
> rpmbuild -bb tengine-2.0.3.spec

应用场景:
很多相同机器需要安装同样的软件包,全部通过apt-get网络安装很不划算。
可以考虑把同步服务器的安装包作为apt-get的离线源。

步骤:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#安装打包工具
apt-get install dpkg-dev
#生成离线目录
mkdir offlinePackage
#复制所有apt-get已有软件包
cp -r /var/cache/apt/archives /offlinePackage
#更改文件权限
chmod 777 -R /offlinPackage/
#建立deb包依赖关系
dpkg-scanpackages /offlinePackage/ /dev/null |gzip >/offlinePackage/Packages.gz
#将生成的Packages.gz包复制到和deb同目录下
cp /offlinePackage/Packages.gz /offlinePackage/archives/Packages.gz
#打包快速传输
tar cvzf offlinePackage.tar.gz offlinePackage/

其他机器使用方式:

1
2
3
4
5
6
7
vim /etc/apt/sources.list
添加以下两行至文件末尾:
deb file:///offlinePackage archives/
deb-src file:///offlinePackage archives/
#将所有的其他deb全部注销掉(#)
apt-get update
sudo apt-get install XXXXX

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
class Fib implements Iterator{
var $a = 0;
var $b = 1;
var $i = 0;
var $max = 100;

public function __construct($n=100){
$this->max = $n;
}

public function rewind(){
$this->a = 0;
$this->b = 1;
$this->i = 0;
}

public function next(){
$tmp = $this->a + $this->b;
$this->a = $this->b;
$this->b = $tmp;
$this->i = $this->i + 1;
}

public function current(){
return $this->b;
}

public function key(){
return $this->i;
}

public function valid(){
return $this->b < $this->max;
}
}

$a = new Fib(100);
foreach($a as $k=>$v){
echo sprintf("%d\t%d\n", $k, $v);
}

?>

git地址:https://gist.github.com/wjzhangq/838433

转载:http://blog.csdn.net/net_lover/archive/2010/01/11/5172509.aspx
Cross-Origin Resource Sharing 跨域资源共享,该规范地址:http://www.w3.org/TR/access-control/和http://dev.w3.org/2006/waf/access-control/
该规范提供了一种更安全的跨域数据交换方法。具体规范的介绍可以访问上面提供的网站地址。值得注意的是:该规范只能应用在类似 XMLHttprequest 这样的 API 容器内。IE8、Firefox 3.5 及其以后的版本、Chrome浏览器、Safari 4 等已经实现了 Cross-Origin Resource Sharing 规范,已经可以进行跨域请求了。
最新版本的浏览器中,跨域ajax请求时候,浏览也会向服务器发送请求,当服务器响应头部设置了Access-Control-Allow-Origin项,那么ajax请求能正确完成.

Request Header:

1
2
3
Origin:http://localhost
Referer:http://localhost/cross/cross.html
User-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.53 Safari/534.3

Response Headers:

1
2
3
Access-Control-Allow-Origin:http://localhost
Server:Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/1.0.0a DAV/2 PHP/5.3.3
X-Powered-By:PHP/5.3.3

php 代码

1
2
3
4
<?php
header(“Access-Control-Allow-Origin: http://localhost”);
echo ‘cross is ok’;
?>