网络
重启网络的命令
sh /etc/rc.conf或者 /etc/netstart
重启ipfw: sh /etc/rc.firewall
重启网卡:
ifconfig vr0 down
ifconfig vr0 up
1.基本网络配置
#vi /etc/rc.conf hostname="mail.bolaninfo.com" ifconfig_le0="inet 192.168.1.108 netmask 255.255.255.0" defaultrouter="192.168.1.1"
也可以 ifconfig_re0="inet 192.168.0.16 netmask 255.255.255.0"
其中re0为网卡标识
添加ip操作
ifconfig re0 inet 192.168.0.77 netmask 255.255.255.0 alias
临时改变ip命令 ifconfig re0 192.168.0.77 255.255.255.0
系统网关 defaultrouter="192.168.0.1"
或者route adddefault 192.168.0.1
nfs为网络文件系统 一般是freebsd用 修改上面的文件中添加
nfs_client_enable="YES"
再修改etc/fstab 添加nfs分区
例如remote_server:/path/to/export /local/mount/point nfs rw,late 0 0
再次执行/etc/rc.d/nfsclient start
2.dns域名服务器
#vi /etc/resolv.conf nameserver 210.5.4.116 nameserver 210.51.176.71
/etc/hosts文件为域名查询文件
系统默认查询域名的顺序是先hosts文件再dns服务器查询,所以可以将常用的域名ip地址对应写道/etc/hosts里面来以加快网络的访问速度
3.packages和ports安装软件
packages以编译的文件的副本 二进制文件文件包
pkg_add -r packagename
-r选项迫使程序自动决定目标文件的正确格式和版本,后自动从ftp站点寻找和安装package
指定freebsdpackage的镜像站点替换原站点,设置PACKAGESITE环境变量 覆盖原来的设置。
setenv命令,还包括FTP_PASSIVE_MODE FTP_PROXY和FTP_PASSWORD
管理
pkg_info 列出已经安装的所有软件包列表和描述的程序
pkg_version 列出版本
删除
pkg_delete name* 利用通配符删除以name为开头的package都会被删除掉
所有已经安装的package信息都保存在/var/db/pkg目录下,
两种方式安装ports collection2.postsnap方式
1.下载压缩的ports套件快照到/var/db/portsnap
portsnap fetch
2.如果首次运行 需要将快照释放到/usr/ports
portsnap extract
如果已经装好/usr/ports 只是更新则
portsanp update
3.sysinstall方式 从介质安装
接下来安装ports
更换更新源
portsnap fetch -s portsnap.tw.freebsd.org 和portsnap.cn.freebsd.org
SERVERNAME=portsnap.cn.FreeBSD.org
portsnap fetch extract 直接下载ports并且解压缩 将ports系统以及解压到usr下面了
portsnap update 更新系统中ports tree
ee /etc/make.conf编辑文件
MASTER_SITE_BACKUP?=ftp://tw.freebsd.org/pub/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}
或者
MASTER_SITE_OVERRIDE= ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} ftp://tw.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}
例子cd /usr/ports/
make search name=软件名
cd /usr/ports/name/ 进入软件包目录
make install clean 安装
make deinstall clean 卸载
make deinstall reinstall clean 升级
安装axel 加快下载速度
cd /usr/ports/ftp/axel
make install clean
修改make.conf
加入以下内容
FETCH_CMD=AXEL
FETCH_BEFORE_ARGS= -n 10 -a
FETCH_AFTER_ARGS=
DISABLE_SIZE=yes
安装xorg etc/make.conf 中加入 WITH_KMS=yes WITH_NEW_XORG=yes 用以支持intel的集成显卡
cd /usr/ports/x11/xorg && make BATCH=YES install clean
生成xorg.conf.new
Xorg -configure
mv xorg.conf.new /etc/X11/xorg.conf
在etc/rc.conf内加入hald_enable="YES"和dbus_enable="YES"
port skeleton是程序在freebsd上简洁编译并安装的所需文件的最小的组合
包括: 一个makefile文件 指出程序如何编译及安装位置
一个distinfo文件 对下载后的文件校验
一个file目录 补丁 和编译port用到的其他文件
一个pkg-descr文件 提供更多细节 有软件的多行描述
一个pkg-plist文件,即将被安装的所有文件的列表
注意必须用root用户登录安装ports
在安装新的port之前,先运行portaudit -F 抓取最新的漏洞数据库 在每天的周期性系统安全检查时,数据库会被自动更新,并且会在这之后实施安全审计。
{例子
开始操作 安装lsof软件 编译的过程
cd /usr/ports/sysutils/lsof
make
编译完成后 再安装port
make install
make clean 删除用过的临时文件 防更新软件版本的port时带来麻烦
以上的编译,安装和清除命令可用 make install clean 一条命令来代替
rehash命令 清除某些shell中缓存环境变量PATH中指定的可执行文件 需要在安装port之后需要执行此命令
注意多个环境变量的设置
再来改变默认的ports目录
WRKDIRPREFIX 和PREFIX这两个变量来改变默认的目录
make WRKDIRPREFIX=/usr/hoome/example/ports install
将在/usr/home/example/ports中编译port并把所有的文件都安装到/usr/local
make PREFIX=/usr/home/example/local install
将在/usr/ports编译它并安装到/usr/home/example/local
处理imake 一些port使用imake 会忽略prefix并将文件安装到perl的目录中
重新配置ports
编译选项菜单ncurses 通常用户希望能够在一个port被编译安装了以后还能再次访问这份菜单以添加删除或修改这些选项make config 或者 make showconfig 或者 make rmconfig
卸载已经安装的ports
ports deinstlal xxx
pkg_delete name
升级ports
使用pkg_version -v
/usr/ports/UPDATING 介绍升级时用户应该注意的问题
1.使用portupgrade来更新ports 此工具是设计来简化升级已经安装的port的操作。 使用make install clean
例如 cd /usr/ports/ports-mgmt/portupgrade
make install clean
pkgdb -F 来扫描已经安装port的列表
portupgrade -ai 升级所有过时的port
portupgrade -R firefox 制定应用程序
portupgrade -pp name 使用预编译的package而不是ports来进行安装
使用portmanager来升级ports
cd /usr/ports/ports-mgmt/portmaster
make install clean
-L列出所有已经安装的ports和查找存在更新的ports
-a
ports树的目录结构 假设你的ports树安装在默认位置/usr/ports
文件
/usr/ports/CHANGES # ports 开发者、维护者等的记录文档。 /usr/ports/COPYRIGHT # ports 树的版权。 /usr/ports/GIDs # 一些 port 可能用到的组名称。 /usr/ports/INDEX-xxx # 每个 port 的摘要 /usr/ports/KNOBS # 编译 port 时需要的一些环境变量与解释。 /usr/ports/LEGAL # 某些 port 的协议限制。 /usr/ports/MOVED # 被移动/删除了的 port 列表。 /usr/ports/Makefile # ports 树总的 BSD Makefile。 /usr/ports/README /usr/ports/UIDs # 一些 port 可能用到的用户名称。 /usr/ports/UPDATING # ports 树的更新记录以及建议。
目录
/usr/ports/Mk # 编译 port 需要的 Makefile 集合。 /usr/ports/Templates # 一些模板。 /usr/ports/Tools # 一些工具。 /var/db/ports # 包含所有进行过配置的可定制 port 的可选变量。每一个 port 占用一个目录。 /var/db/pkg # 包含所有已经安装的 port 的记录。用 pkg_add 安装的预编译好的包也会在此留下记录。
除了以上的文件和目录以外,其他所有的目录都是ports。一个port的目录结构:
/usr/ports/分类/名称
比如firefox 被分类在www,所以firefox在ports树中的位置就是/usr/ports/www/firefox
ports 源代码形式的可编译成应用程序的文件集合 使用ports系统
查找port软件
whereis file file为想安装的软件名字
也可以用简单的echo语句来查找某个port是否存在于ports树中
#echo /usr/ports/*/*lsof*
/usr/ports/sysutils/lsof 此命令返回下载到/usr/Ports/distfiles目录中所有符合条件的文件。
另一个方法是ports collection内嵌的搜索机制:
cd /usr/ports 切换目录
运行 make search name=program-name
或者make quicksearch name=php 仅显示路径和软件名称
更加深入的搜索
make search key=string 其中string为部分内容 ,可以是ports名字 描述 注释和从属关系等
在使用ports之前,必须先获得ports collection 本质是/usr/ports目录下的一堆makefile,补丁和描述文件。
安装需要超级用户root的权限下安装
cd /usr/ports/www/firefox
make install clean
卸载方法
cd /usr/ports/www/firefox
make deinstall clean
如果想卸载掉所有已经安装的ports
cd /var/db/pkg
pkg_delete
reboot
想单独升级firefox
cd /usr/ports/www/firefox
make deinstall reinstall clean
定制ports系统
1设定ports树的位置
默认为/usr/ports 修改方法 export PORTSDIR=/opt/ports 或者/root/.cshrc里如果想让普通用户也能用到
这个环境变量可以考虑放到/etc/porfile或者/etc/csh.cshrc里面
2.设定dist文件的位置
即port源码的文职,一般情况都是tar打包然后bzip2压缩。默认位置为$PORTSDIR/distfiles
修改的环境变量为DISTDIR 同1中的设置方法
3.设定工作目录
举例:firefox默认的工作目录为/usr/ports/www/firefox
那么默认将在/usr/ports/www/firefox/work下编译firefox
更改的方法:设定环境变量WRKDIRPREFIX
export WRKDIRPREFIX=/opt/obj/portbld
这时ports系统就会到/opt/obj/portbld/usr/ports/www/firefox/work下编译firefox
推荐的第三方工具
主要工具
portupgrade
portmaster 较纯 不依赖其他ports的工具
配置文件portmaster 配置文件 /usr/local/etc/portmaster.rc 手
portmaster -aG 更新所有ports并防止make config
ALWAYS_SCRUB_DISTFILES=dopt 更新完一个ports后自动删除旧版本的源代码
PM_LOG=/var/log/portmaster.log 日志
工具 pkg包管理的工具
pkg_add
pkg_create
pkg_delete
pkg_info
pkg_updating
pkg_version
pkg_rmleaves删除
pkg_cleanup
pkg_cutleaves
pkg_rmleaf
pkg_search
pkgsearch
portconf