用wget加快ports下载

1.安装wget
#cd /usr/ports/ftp/wget/
#make install clean
 
2.修改/etc/make.conf
FETCH_CMD=wget -c -t 1
DISABLE_SIZE=yes #这行是必要的,否则…
 
如果你要wget穿透代理服务器,请加上下面两行
FETCH_ENV=http_proxy=http://proxy2.zsu.edu.cn:3128
FETCH_ENV=ftp_proxy=http://proxy2.zsu.edu.cn:3128
或者使用其他的穿越代理工具例如proxychains 或者socks5(runsocks)
则FETCH_CMD=proxychains wget或者runsocks wget

ports中的make命令的可用参数

我们经常使用ports来安装程序,ports中的make命令还可以有很多的功能:

引用
fetch – Retrieves ${DISTFILES} (and ${PATCHFILES} if defined) into ${DISTDIR} as necessary.
fetch-list – Show list of files that would be retrieved by fetch.
fetch-recursive – Retrieves ${DISTFILES} (and ${PATCHFILES} if defined), for port and dependencies into ${DISTDIR} as necessary.
fetch-recursive-list – Show list of files that would be retrieved by fetch-recursive.

fetch-required – Retrieves ${DISTFILES} (and ${PATCHFILES} if defined), for port and dependencies that are not already installed into ${DISTDIR}.
all-depends-list – Show all directories which are dependencies for this port.
build-depends-list – Show all directories which are build-dependencies for this port.
package-depends-list – Show all directories which are package-dependencies for this port.
run-depends-list – Show all directories which are run-dependencies for this port.
extract – Unpacks ${DISTFILES} into ${WRKDIR}.
patch – Apply any provided patches to the source.
configure – Runs either GNU configure, one or more local configure scripts or nothing, depending on what’s available.
build – Actually compile the sources.
install – 安装编译结果.
reinstall – 安装编译结果,忽略“已经安装”错误.
deinstall – 卸载这个安装.
deinstall-all – Remove all installations with the same PKGORIGIN.
package – Create a package from an _installed_ port.
package-recursive – Create a package for a port and _all_ of its dependancies.
describe – Try to generate a one-line description for each port for use in INDEX files and the like.
checkpatch – Do a “patch -C” instead of a “patch”. Note that it may give incorrect results if multiple patches deal with the same file.
checksum – Use distinfo to ensure that your distfiles are valid.
checksum-recursive – Run checksum in this port and all dependencies.
makesum – Generate distinfo (only do this for your own ports!).
clean – Remove ${WRKDIR} and other temporary files used for building.
clean-depends – Do a “make clean” for all dependencies.
config – Configure options for this port (using ${DIALOG}). Automatically run prior to extract, patch, configure, build, install, and package.
showconfig – 显示这个port的config选项
rmconfig – 从这个port移除config选项

FreeBSD7 Apache2.2 PHP5 PostgreSQL8.3 Ports安装笔记

1、安装PostgreSQL8.3

用PREFIX指定安装路径/home/developer/opt/postgresql

#cd /usr/ports/databases/postgresql83-server
#make install clean PREFIX=/home/developer/opt/postgresql

2、安装apache2.2
#cd /usr/ports/www/apache22
#make install clean PREFIX=/home/developer/opt/apache
针对自己需要选择,如果需要支持pgsql,需要选中pgsql这项。可以使用make config命令重新选择。

3、安装php5
#cd /usr/ports/lang/php5
#make install clean PREFIX=/home/developer/opt/php
针对自己需要选择,一般选择apache,suhosin,multibyte这三项即可。可以使用make config命令重新选择。

4、安装php5扩展
#cd /usr/ports/lang/php5-extensions
#make install clean
针对自己需要选择所需的扩展,需要使用postgresql,请选中pgsql项。其它根据自己需要选择。如果拿不准选择什么,可以用默认值,以后需要什么,可以重新到此ports 里单独选中需要的扩展安装。

5、安装ZendOptimizer
cd /usr/ports/devel/ZendOptimizer
make install clean

6、最后的准备工作

(1)到你的安装目录拷贝php.ini-dist到/usr/local/etc/php.ini,由于偶指定了安装目录,所以像下面这样做:
#cp /home/developer/opt/php/etc/php.ini-dist /usr/local/etc/php.ini

(2)修改apache 的httpd.conf,让他支持php5
#vim /home/developer/opt/apache/etc/apache22/httpd.conf
如果httpd.conf中没有下面三行,则加入
AddType application/x-httpd-php .php .phtml
AddType applicatoin/x-httpd-php-source .phps
LoadModule php5_module libexec/apache22/libphp5.so

修改DirectoryIndex为:DirectoryIndex index.html index.php
这样默认首页可以设成index.php

修改默认web主目录位置。

(3)修改php.ini文件,让他支持zendoptimizer.
#vim /usr/local/etc/php.ini
在最下面加入:

zend_optimizer.optimization_level=15
zend_extension_manager.optimizer=”/usr/local/lib/php/20060613/Optimizer”
zend_extension_manager.optimizer_ts=”/usr/local/lib/php/20060613/Optimizer_TS”
zend_extension=”/usr/local/lib/php/20060613/ZendExtensionManager.so”
zend_extension_ts=”/usr/local/lib/php/20060613/ZendExtensionManager_TS.so”

(4)建立pgsql数据库位置
#mkdir /home/developer/opt/postgresql/pgsql/data
#su root
#chown -R pgsql /home/developer/opt/postgresql/pgsql/data

7、启动测试
(1)启动postgresql
#/home/developer/opt/postgresql/bin/pg_ctl -D /home/developer/opt/postgresql/pgsql/data

(2)启动apache
#/home/developer/opt/apache/sbin/apachectl start

(3)在apache的web目录,放一个phpinfo文件,测试一下成功了没~

8、自启动
(1)apache
#cp /home/developer/opt/apache/etc/rc.d/apache22 /usr/local/etc/rc.d

在/etc/rc.conf中加入:
apache22_enable=”YES”

(2)PostgreSQL
#cp /home/developer/opt/postgresql/etc/rc.d/postgresql /usr/local/etc/rc.d/

在/etc/rc.conf中加入:
postgresql_enable=”YES”
postgresql_data=”/home/developer/opt/postgresql/pgsql/data”
postgresql_flags=”-w -s -m fast”
postgresql_initdb_flags=”–encoding=utf-8 –lc-collate=C”
postgresql_class=”default”

9、其它
OK,这样基本就行了,因为偶装的时候定义了安装目录,所以上面的命令都是按偶的安装目录打的,可以改成自己的安装目录:)

偶装php5-extensions时,里面的pgsql扩展没有安装成功,如果你也没有成功,可以到 /usr/ports/databases/php5-pgsql 里重新安装一下~

管理postgresql:
pgsql的bin目录有psql这个脚本可以管理,偶这里运行失败。。

偶装了pgadmin3
/usr/ports/databases/pgadmin3

基于web的phppgadmin,类似phpmyadmin这样的东东。
/usr/ports/databases/phppgadmin

来源:http://blog.chinaunix.net/u2/84304/showart.php?id=1681712

[推荐]用portsnap升级FreeBSD 6.0的port tree

感觉FreeBSD 6.0最方便的改进就是增加了portsnap这个很方便的升级port tree软件,以前用恼人的portupgrade做port tree升级的时候总是感觉有点缺陷,方便性不够,而且做成crontab总是担心。现在FreeBSD 6.0下有了portsnap这个方便的工具,升级port tree就十分方便。

以下就是portsnap的几种简单用法:
第一次使用可以:portsnap fetch extract
以后使用只要:portsnap fetch update
放在cron里运行:portsnap cron Continue reading

FreeBSD在安装ports时缩短下载时间

方法A: 使用代理。

在/etc/make.conf中设置:
FETCH_ENV= "HTTP_PROXY=IP[:端口]"
如果需要,在FETCH_ENV值后面加入空格,
HTTP_PROXY_AUTH=basic:*:user:password

方法B: 在其它机器上fetch

make fetch-recursive
...
然后将/usr/ports/distfiles拿走。

方法c:使用wget/axel加速你的port下载

以下所述功能均通过修改make.conf实现

对于wget
========
FETCH_CMD= wget
FETCH_BEFORE_ARGS= -c -t 1
FETCH_AFTER_ARGS=
DISABLE_SIZE=yes #这行是必要的,否则...

前面3行也可以换成
FETCH_CMD=wget -c -t 1

如果你要wget穿透代理服务器,请加上下面两行
FETCH_ENV=http_proxy=http://proxy2.zsu.edu.cn:3128
FETCH_ENV=ftp_proxy=http://proxy2.zsu.edu.cn:3128

或者使用其他的穿越代理工具例如proxychains 或者socks5(runsocks)
则FETCH_CMD=proxychains wget或者runsocks wget

什么?不知道wget是什么?那就先
cd /usr/ports/ftp/wget/
make install clean

对于axel
========
同样,也可以使用axel来替换fetch来进行多线程下载
FETCH_CMD=axel
FETCH_BEFORE_ARGS= -a
FETCH_AFTER_ARGS=
DISABLE_SIZE=yes
或者只写一行
FETCH_CMD=axel -a

axel 穿透代理服务器的方法与wget一致

axel在/usr/ports/ftp/axel位置

添加更快的port下载站点
====================
另外,加上以下两行可以在让make先从更快的站点下载port

MASTER_SITE_OVERRIDE= \
ftp://ftp2.tsinghua.edu.cn/mirror/FreeBSD/ports/distfiles/ \
ftp://freebsd.csie.nctu.edu.tw/pub/FreeBSD/ports/distfiles/ \
ftp://ftp.hk.freebsd.org/pub/FreeBSD/ports/distfiles/ \
ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/
这个是教育网的设置,公网的兄弟可以看着办啦

利用 portupgrade快速更新通过ports安装的软件

  要使用预编译的 package 而不是 ports 来进行安装, 需要指定 -P。 如果指定了这个选项, portupgrade 会搜索 PKG_PATH 中指定的本地目录, 如果没有找到,则从远程站点下载。 如果本地没有找到, 而且远程站点也没有成功地下载预编译包, 则 portupgrade 将使用 ports。 要禁止使用 port, 可以指定 -PP

# portupgrade -PP gnome2

  如果只想下载 distfiles (或者, 如果指定了 -P 的话, 是 packages) 而不想构建或安装任何东西, 可以使用 -F。要了解更多细节, 请参考 portupgrade(1)

以上信息来自FreeBSD手册内容!

==========================================

portupgrade 是一个软件,用于快捷便利地升级软件

cd /usr/ports/sysutils/portupgrade

make install clean

安装上它

然后用cvsup更新ports树

然后运行

portupgrade -r pkg_name

升级单个软件和与其相关的

其中 pkg_name 是 pkg_info 中显示的名字

portupgrade -ar 就会自动更新全部了。

如果加上 P 参数,则先看是否有已经编译好的 pkg 下载,直接从 pkg 升级,省去自己编译。

下载站点可以通过修改 /usr/local/etc/pkgtools.conf 更改

portupgrade -arR 升级所有已经安装的软件,并且检查依赖关系

=======================

1、更新ports

cvsup -gL 2 -h cvsup.freebsdchina.org /usr/share/examples/cvsup/ports-supfile

2、你portupgrade 没有升级多半是你没更新 ports tree

portupgrade -aryP

-a 表示升级全部。如果指定某一项,可以

portupgrade -ryP

建议:既然你之前没升级过,建议用 -a 。-P 会让程序先找有没有编译好的pkg。

建议修改 /usr/local/etc/pkgtools.conf ,将里面 PKG_SITE 加上pkg_site_builder 。

3、从ports安装eclipse3.0

cd /usr/ports/java/eclipse
make install clean

4、设置$JAVA_HOME

vi .profile
export JAVA_HOME=/usr/local/jdk1.4.2

3.设置$CLASSPATH

升级FreeBSD的ports

Xinsoft-BSD# cp /usr/share/examples/cvsup/ports-supfile /root
Xinsoft-BSD# vi /etc/make.conf

# added by root [Xinoft] 2006-02-05 03:52:11
# for cvsup
# Block_CVSUP :: begin

SUP_UPDATE= yes
SUP= /usr/local/bin/cvsup
SUPFLAGS= -g -L 2

# cvsup[1-9].tw.FreeBSD.org
SUPHOST=
ftp.freebsdchina.org

SUPFILE= /usr/share/examples/cvsup/stable-supfile
PORTSSUPFILE= /root/ports-supfile
DOCSUPFILE= /usr/share/examples/cvsup/doc-supfile

MASTER_SITE_BACKUP?= \

ftp://ibm.tju.edu.cn/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/\
ftp://ftp.freebsd.org.cn/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/\
ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/
# Block_CVSUP :: end
Xinsoft-BSD# cd /usr/ports/
Xinsoft-BSD# make update