FreeBSD笔记┊ 使用ports来管理软件包
freebsd_java _环境

FreeBSD系统配置Java环境简述Java最早于1998年引入 FreeBSD。
通常我们使用的 JDK 是来自 Sun 的 JDK。
由于授权的原因,目前JDK需要手工下载之后才能安装。
在FreeBSD平台上,最新版本的JRE/JDK为:Diablo JRE/JDK 1.5.0-7。
在FreeBSD中你可以使用多种方式来安装JDK:使用Linux模拟环境来运行For Linux版本的Sun/IBM JDK(以下简称Linux JDK)使用freebsdfoundation提供的binaries package来安装JDK(以下简称Binaries JDK)使用ports来安装JDK(以下简称Ports JDK)这里你可以自己选择使用哪种方式:一般而言,由于已经有了 Diablo JDK,现在已经不再推荐在 FreeBSD 上透过Linux 仿真来使用 Linux JDK 了。
以下就JDK在FreeBSD上的安装方法进行分别的说明,希望你能找到适合你的方法安装一个好用的FreeBSD JDK。
通过 ports 来安装 Diablo JDK这是一个非常快速的方法,因为除去下载的时间,你只需要两分钟就完成了一个可以使用的JDK环境。
如果使用 FreeBSD 6.x,则推荐使用这种方法。
注意:Diablo JDK 在 FreeBSD 7.x 上运行时可能会有一些问题,这时,可以用它作为boostrap JDK来编译自己的native JDK。
通常安装 Diablo JDK 时,应使用 ports 来进行安装。
这主要是因为几个原因:有时,需要对 Diablo JDK 进行小幅度的调整,例如更新时区数据等等。
如果只是下载 FreeBSD 基金会提供的 package 直接安装,则没有这方面的好处。
ports会帮你搞定 Diablo JDK 所需的全部依赖关系。
ports安装几乎和直接pkg_add一样快。
freebsd用ports及pkg

freebsd用ports及pkg①ports的目录在/usr/ports。
②POSTS安装软件有时可能这个包已经安装过了,会有提示,无法继续安装,能够用提示中的参数#make install clean FORCE_PKG_REGISTER=yes这样就能够继续安装了,yes不区分大小写。
③PORTS安装软件时有时能够下载回来的包的md5值不匹配,能够加参数强制安装。
#make install clean NO_CHECKSUM=yes④如何查找安装一个ports软件假如知道文件的详细名字,能够直接用whereis#whereis php5假如不知道细致文件名,能够用:#cd /usr/ports#make search name=php假如只知晓描述性主要字,能够用:#cd /usr/ports/#make search key=php⑤如何查找已完装软件包的信息#pkg_info用管道命令过滤定位#pkg_info grep php⑥如何删除一个软件包#pkg_delete 软件包细致名,细致名称能够用pkg_info grep 管道命令查出。
加上-f 参数,能够删除一人别的软件对其有依靠联系的软件包#pkg_delete -f 软件包细致名⑦PORTS安装软件后,如何修改配置有些POST包安装时会有蓝色配置挑选页,通常选过一次后就不会再显示了#make rmconfig 删除配置,须要有root权限#make reconfig 重新配置,须要有root权限⑧重新安装已安装ports软件包#make reinstall⑨删险已安装ports软件包#make deinstall#make clean⑩如果系统默认的下载地址失效了,你可尝试手动下载tbz软件包,然后用pkg_add 软件包名直接安装。
FreeBsd 系统管理技巧

FreeBsd 系统管理技巧问:如何让FreeBSD像RedHat那样在ls时显示多种颜色的目录?答:在/etc/csh.cshrc里面加入:setenv LSCOLORS ExGxFxdxCxegedabagExExsetenv CLICOLOR yes然后,执行:#set prompt/g /root/.cshrc并重新登录。
2.问:如何让FreeBSD的csh像bash那样按tab列出列出无法补齐的候选文件?答:标准的方法是按Ctrl+D。
但如果一定要用tab的话,在/etc/csh.cshrc中加入:set autolist3.问:如何让FreeBSD的csh显示类似[delphijspirit] ~这样的提示符?答:在/etc/csh.cshrc中加入:set prompt = ''[%B%n%m%b] %B%~%b%# ''然后,执行:sed -i.bak -E s/set prompt/#set prompt/g /root/.cshrc4.问:如何让普通用户也拥有类似root用户那样的命令行编辑能力?答:在/etc/csh.cshrc中加入:bindkey "^W" backward-delete-wordbindkey -k up history-search-backwardbindkey -k down history-search-forward5.让ctr+del+alt 失效Look into your keymap file (taken from /usr/share/syscons/keymaps) and search for boot in it. If it has not the "boot" string in it, replace the lines #083 and #103 by these083 del ''.'' ''.'' ''.'' ''.'' ''.'' boot boot N103 fkey61 fkey61 fkey61 fkey61 fkey61 fkey61 boot fkey61 OThere was talk to enable/disable it via a sysctl(3) parameter but no one ever got around to do it...6. 环境变量:文件/etc/profile,BLOCKSIZE=K; export BLOCKSIZE(通用)文件~.cshrc BLOCKSIZE Ksetenvmy cshrc代理服务器的使用HTTP 的代理:#setenv HTTP_PROXY http://proxyip:portFTP 的代理: #setenv FTP_PROXY http://proxyip:port7、设定开机画面使用 windows 的人,都知道所谓的开机画面,在 FreeBSD 下是否也有此功能呢?答案是肯定的,而且设定更为简便,请照以下 steps:一. 首先制作一个图型文件,档案格式为 logo.pcx 或 logo.bmp,需注意的是 .bmp 的档案存盘时不用压缩,分辨率需为 640 X 480 以内(含),色阶为 256 色..二. 将此档案 copy 到 /boot/ 这个目录下三. 设定 /boot/loader.conf,加入以下资料splash_bmp_load="YES" -> 如果使用 .bmp 格式,此项需设为 YESsplash_pcx_load="YES" -> 使用 .pcx,请将此项设为 YESvera_load="YES"bitmap_load="YES"bitmap_name="/boot/logo.pcx" -> 请依你的档案格式更改bitmap_type="splash_image_data"8.激活你的 screensaver由于 FreeBSD 大多当为主机使用,都是常期不关机的,因此可将屏幕关掉,或使用ScreenSaver 功能..使用 ScreenSaver 请在 /etc/rc.conf 这个档加入以下两行:blanktime="900"=> 以秒数为单位,如以上为 15 分钟saver="logo"=> logo 是 FreeBSD 的吉祥物(图型接口),另也可使用 "daemon",这是文字型式9. 重复使用先前使用过的指令你可以使用以下的方法来重复使用先前使用过的指令:例如,我们先用 history 显示先前输入的指令:# history......10 clear11 cd /usr/local12 ls13 ls etc14 cd ~15 clear1. 用 up down 可用上下一个指令,或是 ctrl+p ctrl+n 亦然2. 配合 ! 的用法,例如以下(ps: 在<...>内代表要输入的东东)!!# !! => 重复执行上个一个指令!<编号># !11 => 执行 cd /usr/local!<指令> 可输入部份字,但前面部份需符合# !cl执行 15 clear 指令!<?指令?> 输入部份字符,部份吻合# !?etc?执行 13 ls etc以上指令在 tcsh 及 bash 下皆可使用,如此是不是可帮你省下许多时间..10.用 dig 及 host 来取代 nslookup一般我们用来检查网络是否有问题,大多是用以下三个指令..nslookuppingtraceroute其中 nsllokup 是用来检查 dns 的相关设定, ping 用来检查自己和对方网络是否通顺,而traceroute 则是用来检查从自己的计算机到对方的计算机所经过的线路状况..不过以 nslookup 而言,个人觉得不是很实用,有时我们只是想单纯的查一下某台主机或是MX 记录,那使用 nslookup 就有点噜嗦了..在此介绍二个好用的指令 host 及 dig,这二个指令很类似,不过效率较 nslookup 高# host -a <主机名称> 或 <ip>=> 输入主机名称显示 dns 正向解析的部份,输入 ip 则是显示反向(ptr)# dig <主机名称或ip> <any a mx soa txt.. 任选一项>如要显示 MX 记录# dig 主机名称 mx个人是觉得比 nslookup 方便多了,你觉得呢.. ^.^当然功能不只这些,详情请 man dig 或 host..11.加快你的开机速度..严格说起来,FreeBSD 的开机速度算满快的,不过中间会有个 10 秒的延迟时间(以便让你进入 boot 的 command prompt mode),如果你嫌这10秒还是太慢了,那你可将时间?#123;短一些..FreeBSD 激活时会先去参考/boot/defaults/loader.conf 档的设定,然后再参考/boot/loader.conf,一般我们都不去?#123;整 /boot/defaults/loader.conf 这个档,而直接?#123;整 /boot/loader.conf..只要在 /boot/loader.conf 中加上以下这一行即可autoboot_delay="秒数" 即可,如autoboot_delay="7" 代表7秒这样开机是不是更快了..另外建议,有时间可参考一下 /boot/defaults/loader.conf 这个档案的设定,其中有许多实用的设定哦..12.忘了 root 密码如果你忘了 root 的密码怎么办,这在 FreeBSD 中满好解决的,请照以下 steps 来处理..1. 进入单人模式开机后,当出现Hit [Enter] to boot immediately, or any other key for command prompt.Booting [kernel] in 10 seconds...按 space(或除了 enter 以外的键) 键则会进入 command prompt mode,同时出现一个 ok ..这时请输入 boot -s 以进入单人模式2. 选择 sh进入单人模式后,系统会询问你要使用那个 sh,内定是 /bin/sh ,就使用这个吧,直接按enter 跳过3. 将所有的硬盘分割架起来# mount -a4. 更改密码# passwd长度要在 6 个以上,输入二次5. 重新激活# reboot13.介绍一些一些有用的参数(注意大小写)..%B 代表高亮度%n 代表用者名称%m 主机名称%/ 目前的目录一般我们可能比较在意以上几点,如我要管理好几台 FreeBSD 主机,那么以上几个参数就很重要了..举个实例来说,如我想把我的 prompt 改成这样,而且要高亮度显示:使用者名称主机名称[目录名称]>则 prompt 的设定应该是这样的..set prompt = "%B%n%m[%/]> "注意 = 左右都要有一个空白,否则会出错,导致无法登入,另外如果要统一所有使用者的prompt 的话,除了更改 /home/使用者/.cshrc 外,最好也在 /etc/csh.cshrc 中设定这一行,另外如要新增新用者也用这种提示,则请在 /usr/share/skel/dot.cshrc 中也加上(或改成)这一行,这是因为:tcsh 在使用时会先参考 /etc/csh.cshrc 这个档案,再依 user 去抓其 home 目录下的 .cshrc,而设定 /usr/share/skel/dot.cshrc 是让你新使用者时,自动将其 prompt 设定成 set prompt = "%B%n%m[%/]> "这种设法,当你在管理多台主机及切换目录时,就不易搞错而发生一些惨剧14.在提示列秀出 [使用者]目前工作目录 (可以少打很多次pwd)# cd /root编辑 .cshrc# set prompt="''hostname -s''# " ### 找到这一行并 mark 起来set prompt = "[%n]%/# " ### 新增此行并存盘离开# logoutlogin: root ....重新登入ps.其它user id 是否可照办? 我还没试过哩..刚装freebsd而已15.如何防止别人登录到你的计算机有时,我们并不想让别人直接登入到我们的主机或是只想限定某些人可使用,如 telnet、ssh..或者是开放了些服务,如 ftp、smtpd ..等,由于这些都必需在主机端建有帐号,因此防止不相干的人登入到你的主机是非常重要的,也是一个安全上的考量..但一般限定的方式都是使用 ip 或是 domain 的方式,那么有无方法可解决这个问题呢?答案是可从 /etc/login.access 来着手,这个档案就是限定 login 的..一个典型的设定如下,例如我们想限定只有 root 及使用者 john 可登入到主机(含local 及 remote):-:ALL EXCEPT root john:ALL可分为三个项目,每个项目间以 : 分隔,说明如下:1. + 或 - 代表允许或禁止2. 设定的使用者或群组,可用 ALL EXCEPT 来强化限定的范围3. 限定的来源,如 ALL 代表全部、61.219.230. 、LOCAL、console、 ..等适当的设定,可让你的系统更加的安全..详细用法可 man login.access..15. 一个 ./ 的技巧众所周知,在 nix-like 中执行目前目录中的可执行文件时,必需加上 ./ 这二个符号,很多 unix-like 的初学者都会感觉较不习惯,因为在 dos 或 windows 的 dos 窗口中并不是如此..其实在 unix-like 中如此设定是有其安全考量的,在使用指令或执行文件时,一般是建议使用完整的目录,例如要使用 ls,则如下:# /bin/ls当然,你直接输入 ls 亦可正确的执行,这是因为你所使用的 shell 中环境变量 $PATH 的因素..你可键入 echo $PATH,来看目前 $PATH 的设定,当我们执行一个指令时,系统会依照这个环境变量来搜寻这个执行档并加以执行..内定 shell 不会将目前目录 . 加到 $PATH 中,因此如果你想在目前目录执行这个目录下的执行文件而不想加上 ./ 时,可在你的 shell 中将 . 加入..如一般在 FreeBSD 都是使用 tcsh,你可编辑个人 home 目录下的 .cshrc 檔 set path = ( ........ ,在此加入 . 即可..记得重新退出 shell 再登录,以便让你的新设定生效.16.谈谈软件的安装路径..FreeBSD 对于档案目录的观念非常重,什么样的档案要放在那个目录都有规定,这也是有别于其它 unix-like 系统..一般我们将软件安装分成二个部份,在这里来探讨一下软件到底都安装到那去了..在安装软件时,通常会安装诸如执行档、设定档、man file、doc 文件..1. 安装系统时所安装的软件执行档通常装在 /bin、/sbin、/usr/bin、/usr/sbin、/usr/libexec 下设定文件通在在 /etc 目录下man file 通常在 /usr/man 或 /usr/share/mandoc 文件通常在 /usr/share/doc 下2. 经由 package 或 port 安装的软件执行档通常装在 /usr/local/bin、/usr/local/sbin、/usr/local/libexec 下设定文件通在在 /use/local/etc 目录下man file 通常在 /usr/local/man ..doc 文件通常在 /usr/share/doc 下以上并不是绝对的(所以我用通常..^.^),因为有些特殊情况需视软件而定..如此有时可能会造成些许困扰,因为如 ssh 、 bind .. 大多是在系统安统时就安装的,那如果升级新版时怎么办..由于 FreeBSD 找寻执行档时会依照 $PATH 这个环境变量找寻,因为 /bin、/sbin、/usr/bin、/usr/sbin 比 /usr/local/bin 或 /usr/local/sbin 先,所以会先执行..也就是先抓到旧版的执行档..因此在更新时要注意这种情况,以免更新了还是执行旧的程序..那么如何看安时程序时的相关档案的安装路径呢?通常有以下方法1. 看 port 的 pkg-plist 檔2. 有时用 man [执行档名称] 可看到一些重要档案的位置3. 看说明文件,通常在 /usr/local/share/doc 目录下17、如何在 FreeBSD 同一片网硌卡加一个 ip 地址有的时候,需要在同一片网络卡上加 ip 以达到一些特殊的要求..在 FreeBSD 这是非常简单的,假设原先网络卡的 ip 是 211.211.211.211,想加一个211.211.211.212,使用的是 rl0 这片网络卡,则做法如下..1. 在 /etc/rc.conf 加上这一行ifconfig_rl0_alias0="inet 211.211.211.212 netmask 255.255.255.255"其中的 alias0 就是加装的第一个 ip,如要设定多个可在此修正,如 alias1、alias2.. aliasN2. 重新激活网络卡,执行 /etc/netstart# /etc/netstart18.保护你的档案在系统中,有许多档案或一些设定档是非常重要的,加上 FreeBSD (或是一般 unix-like)系统都没有类似 ms 的垃圾回收桶的功能,万一不幸删掉(或修改)某个重要的档案,可能会造成不小的困扰..虽然,FreeBSD 对于档案的权限设定的非常严密,但有些时候,我们以 root 身份工作,仍会有此风险..那要如何避免这种情形发生或是保护某些重要的档案呢?我们可以用 chflags 来达成这个目的,顾名思义, chflags 是由二个字所组成,即 change 和 flags(档案的旗标)..例如我们要保护 /etc/inetd.conf 这个档案,以免误删或被修改,则指令如下:# chflags schg /etc/inetd.conf这样就可以保护这些档案,如要显示这些档案的旗标(flag),可用 ls 来看..# ls -lo /etc/inetd.conf => l 是小写的 L-rw------- 1 root wheel schg 47 Mar 28 21:29 inetd.conf要解除旗标设定,可用 unschg,也就是在 schg 前加 un ,如:# chflags unschg /etc/inetd.conf大部份我们进入主机都是以 root 身份执行,因此稍不小心,可能就..因此建议将一些重要的档案及设定档设定为 schg flags,以保护档案..如 /bin、 /sbin、 /etc/.conf、 /usr/lcaol/etc/*.conf .. 这些档案最好都是定成 schg 旗标..chflags 详细用法请参考 man chflags..19.有关系统的一些激活问题..有时,会修改 FreeBSD 的一些设定,如一些网络参数、软件的 .conf 设定,或是 /etc/r.conf 檔,那么如何让设定值生效,是否一定要重新开机呢?这可分为三方面来说..1. 网络相关设定,如网络适配卡、hostname .. 等,只要执行以下指令就可以重新加载你的网络设定..# sh /etc/netstartnetstart 是一个 script 档案,执行时会去参考 /etc/work。
FreeBSD操作系统 安装软件

实验二FreeBSD 安装应用程序一、 FreeBSD 安装软件的主要方式1、Packages:packages是FreeBSD预编译好的软件包,它记录了二进制软件的内容、安装位置、软件包的描述信息、软件包之间的依赖关系等等,相当于为windows系统下的那些绿色软件,不用安装拷贝过来就能用的。
1:用root权限执行sysinstall,然后选择Configure菜单项中的Packages选项,里面会列出所有的可用软件,可以从里面选择你要安装的软件,至于方法我想大家都会了,就不再赘述了。
2:用Sysinstall来安装、管理软件比较直观,但它需要一个标准的安装介质,适合大量安装软件包时使用,如果只是仅仅添加几个独立的软件包,还是用下面的方法吧:pkg_add安装一个packagepkg_delete删除一个packagepkg_info显示软件包的安装信息和简短描述pkg_version显示软件包的版本信息2、Ports:FreeBSD 的ports 就是別人已经编译过的,安装测试没问题了,他们将安装软件编译时所需的功能设定、编译程序及安裝程序都依固定的格式放在一起,我们只要先将某个软件ports 目录下的档案抓回来,然后轻松的makemake install即可完成软件的编译和安装(也可以用一行make all install 来代替)3、源代码编译安装1:首先把安装文件拷贝到一个目录下例如,如果你是以root身份登录上的,就将软件拷贝至/root中#cp xxx.tar.gz /root2:由于该文件是被压缩并打包的,应对其解压缩。
命令为:#tar xvzf filename.tar.gz3:执行该命令后,安装文件按路径解压缩在当前目录下,一般会生成一个filename目录。
进入该目录用ls命令可以看到解压缩后的文件。
通常在解压缩后产生的文件中,有"Install"的文件。
Freebsd7.2下Ports安装PHP5、MySql5.4、Apache22

<Directory "/usr/local/www/phpMyAdmin">
Options none
AllowOverride Limit
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 #这里可以考虑安全性。
</Directory>
按照上述别名方法,发现在Apache22上并不成功,没有办法,我使用软连接方式实现了,软连接方式相当于将phpmyadmin目录复制到了apache主目录(/usr/local/www/apahce22/data/)中:
$cfg['Servers'][$i]['auth_type'] = 'config';
/* End of servers configuration */
?>
Phpmyadmin的使用:
打开地址http://XXX/phpmyadmin/看是否能使用,登录的用户名和密码是OS的root和密码。
#启动apache
apachectl start
注意这时启动的时候会报一个"No such file or directory: Failed to enable the 'httpready' Accept Filter"错误,经过google后,发现得启动一个内核模块.如下:
cd /usr/local/etc/rc.d/
./mysql-server.sh start
修改mysql的密码:
/usr/local/bin/mysqladmin -u root -p password 'zoux..?'
为FreeNAS安装自己需的软件

这里有两种安装方式,
一,使用FreeNAS提供的web界面进行安装
不需要FreeNAS正常的访问互联网,内网也可以。
打开 http://你的FreeNAS地址/system_packages_edit.php
看到"+"号标志添加一个软件包,然后浏览到你刚刚下载到的wget存放的位置,然后点“安装”就可以了。
附:
删除一个软件包
一:访问http://你的FreeNAS地址/system_packages_edit.php
点要删除的软件包后面的“-”就可以了
二:sheel下删除
运行
pkg_add 你要删除的软件包名+版本号
如果不能确定版本号使用pkg_info 列出所有已经安装的软件包。
例如
由于FreeNAS的体积直接在上面编译是不大现实的了,我们可以借助pkg来安装FreeBSD的二进制软件包。
好了,话不多说了,开始安装软件吧。
首先,确定你FreeBSD的版本号:
确定你的FreeNAS是那个FreeBSD版本,一般在web管理界面都可以看到。
类似FreeBSD 6.3-RELEASE-p4 (revision 199506) 这样的
这种软件安装方式比较直观,但是如果你安装的软件包还依赖其他软件包这样安装就可能出现不能安装的情况。
那就试一试另一种安装方式。
二,通过sheel进行安装。
这种安装方式需要FreeNAS正常的访问互联网。
打开一个shell或者用ssh连接到FreeNAS。
运行
# pkg_add ftp:///pub/FreeBSD/ports/i386/packages-6-stable/All/wget-1.11.2_1.tbz
FreeBSD安装教程

FreeBSD 8.2图文教程,常用命令以及VI 命令启动mvware虚拟机后,在虚拟光驱中加载FreeBSD系统,启动并按Esc将载入FreeBSD 引导画面,如下图:现在,按回车键或数字1键,选择第1项通过方式启动FreeBSD 安装程序。
如果您不进行选择,安装程序会在十秒后自动使用默认方式启动。
盘方向键选择45 China 中国,为我们的国家,回车键确定。
USA ISO,回车确认进入下一步。
正式进入了安装向导,FreeBSD 7.0 的安装程序名叫Sysinstall。
现在你看到的就是Sysinstall 的主菜单,其中有各种安装选项。
使用方向键选择Standard项目,回车确认,进入标准安装。
现在看到的是分区向导,这里会列出你的硬盘信息。
一般情况下,我们按键盘A键,使用自动分区功能,或者手工创建分区。
这里按A键,自动分区完毕。
按键盘Q键,完成分区。
这里是询问你安装何种硬盘引导程序。
第一项是使用FreeBSD 的启动引导程序,第二项是标准引导,第三项是不安装引导程序。
如果我们安装单操作系统,请选择第二项。
如果有多个操作系统,请选择第一项。
第三项是不安装,这指使用目前已经有的其他操作系统的引导程序。
由于我的虚拟机上安装了多个系统,故选择FreeBSD系统的加载方式(BootMgr),确认。
再确认,进入分区向导。
要注意的是FreeBSD 的磁盘分区与Windows 的分区概念不一样,除了硬盘分区之外,还有一个Label 分区。
我们依然按A键,使用自动分区,软件会为我们分配合适的磁盘分区与虚拟内存,按Q键完成。
现在看到的,是比较重要的部分,选择软件安装包。
我们只需要一个全新干净的FreeBSD,这里我们选择倒数第二项Minimal 最小安装模式,按空格键确认。
这里要注意的是,FreeBSD 有一个很方便的软件包管理和安装器,名叫ports,类似Ubunut 的Apt-get,一般我们都是必须安装的。
freebsd命令速记超级大全

FreeBSD Command Tools第一步我如何离线?(exit)我如何停止电脑?(shutdown -h now)我如何重新激活计算机? (shutdown -r now)我如何在单使用者模式下停止系统? (shutdown now)我如何切换终端机? (ALT-F*)文件我如何阅读manual page? (man)使用者管理(1)我该如何增加一个使用者? (adduser)我如何移除使用者? (rmuser)我如何改变我的密码? (passwd)"su" 指令我如何"su" 至root 帐号? (su)我如何"su" 至其它使用者的帐号? (su username)四处观察我在哪? (pwd)我如何观察目录下有什么? (ls)我如何看到以点开始的隐藏档? (ls -a)我如何看到更多的讯息(存取许可,拥有者,群组,大小,日期)? (ls -l) 我如何看出那些档是什么? (ls -F)这些是什么档: ".." 与"."? (ls -aF)四处移动我该如何改变工作目录? (cd)如何回到上一层目录? (cd ..)我如何回到自己的工作目录? (cd, cd ~/)屏幕控制我如何卷回(在终端机中,非X)? (The Scroll Lock Key)我该如何清除屏幕? (clear)文章我如何不使用文书编辑器就可以观看小的档案? (more)最普遍的文书编辑器是? (vi)"vi" 看起来有点难,我可以从"ee" 开始吗? (ee)"visual" 编辑器学习"vi" 最有效的方法为何? (vilearn)"vi" 是如何工作的? (man vi)什么是储存指命? (:w)什么是离开指令? (:q)什么是可以储存与离开的命令? (:wq)如何离开而不使用储存指令? (:q!)我如何移动? (h, j, k, and l)Esc 键有什么用途? (The Esc Key)我如何加入新的文字? (a and i)我如何建立新的一行? (o and O)我如何删除文字? (x and dd)我如何拷贝文章内容? (yy and p)我如何替代文章? ?我如何使用数个指令? (nCommand)我如何搜寻文章? (/text)我如何起动"vi" 于只读模式? (view)使用者管理(2)我如何新增使用者至群组? (vi /etc/group)计算机信息我如何能观看开机记录文件? (dmesg)有什么方法可以让我慢慢地观看开机记录文件吗? (dmesg |more)谁显示谁在系统上? (who)他们正在做什么?? (w)"w" 可以显示出所有的处理吗? (w)何时我如何显示或设定日期时间? (date)我如何显示月历? (cal)有什么方法可以让我慢慢地观看月历吗? (cal | more)Communications我如何显示(或不显示) 其它使用者送来的讯息? (mesg y, mesg n) 我如何传送讯息到其使用者的屏幕? (write)我如何送讯息到每一个人的屏幕? (wall)我如何与他人交谈(chat)? (talk)档案管理我如何建立一个空档案? (touch)我如何删除档案? (rm)我如何建立一个目录? (mkdir)我如何移除一个空的目录? (rmdir)我如何移除一个目录包括里面所有的东西(包括子目录)? (rm -r)我如何移除以"-" 起头的档案? (rm -- -filename)我如何拷贝档案? (cp)我如何拷贝整个目录包括它所有的内容? (cp -R)我该如何搬移档案与目录? (mv)我如何改变档案/目录名称? (mv)我如何执行rm、cp 与mv 时,须要我的许可? (-i)我如何执行rm、cp 与mv 时,不须要我的确认? (-f)档案连结我如何连结一个档案或目录? (ln -s)我如何hard link 一个档案? (ln)档案拥有权/存取许可我如何观察谁是档案拥有者? (ls -l)我如何观察档案/目录的存取许可? (ls -l)我如何改变档案/目录的使用者拥有人? (chown)我如何改变档案/目录的群组拥有人?s group owner? (chgrp)我如何改变档案/目录的使用者与群组拥有人? (chown user:group) 我如何改变存取许可? (chmod)如果我拥有这个目录,我可否修改不是我的档案? (yes)软盘机装置我如何挂上我的软盘? (mount)我如何挂上MS-DOS 格式的软盘机? (mount -t msdos)我如何卸下我的软盘? (umount)应用程序我如何起动应用程序? (./)我如何由文件名称来起动应用程序? (PATH)我如何在背景起动应用程序? (&)我如何知道我的PATH 是? (echo $PATH)所有的应用程序在那? (The FreeBSD Ports Collection)我如何安装一个port? (make install clean)那里有编辑好的二进制文件? (The FreeBSD Packages Collection) 我如何移除应用程序? (pkg_delete)使用者环境使用者的profile 档案在那? (vi ~/.profile)我如何改变我的shell? (chsh)处理管理我如何列出处理? (ps)我如何列找到处理? (ps -waux | grep "name of the process")我如何砍掉处理? (kill)磁盘管理我如何检查可用的磁盘空间? (df)我如何检查每个目录下用了多少磁盘空间? (du)FreeBSD Command Tools第一步我如何离线?(exit)我如何停止电脑?(shutdown -h now)我如何重新激活计算机? (shutdown -r now)我如何在单使用者模式下停止系统? (shutdown now)我如何切换终端机? (ALT-F*)文件我如何阅读manual page? (man)使用者管理(1)我该如何增加一个使用者? (adduser)我如何移除使用者? (rmuser)我如何改变我的密码? (passwd)"su" 指令我如何"su" 至root 帐号? (su)我如何"su" 至其它使用者的帐号? (su username)四处观察我在哪? (pwd)我如何观察目录下有什么? (ls)我如何看到以点开始的隐藏档? (ls -a)我如何看到更多的讯息(存取许可,拥有者,群组,大小,日期)? (ls -l) 我如何看出那些档是什么? (ls -F)这些是什么档: ".." 与"."? (ls -aF)四处移动我该如何改变工作目录? (cd)如何回到上一层目录? (cd ..)我如何回到自己的工作目录? (cd, cd ~/)屏幕控制我如何卷回(在终端机中,非X)? (The Scroll Lock Key)我该如何清除屏幕? (clear)文章我如何不使用文书编辑器就可以观看小的档案? (more)最普遍的文书编辑器是? (vi)"vi" 看起来有点难,我可以从"ee" 开始吗? (ee)"visual" 编辑器学习"vi" 最有效的方法为何? (vilearn)"vi" 是如何工作的? (man vi)什么是储存指命? (:w)什么是离开指令? (:q)什么是可以储存与离开的命令? (:wq)如何离开而不使用储存指令? (:q!)我如何移动? (h, j, k, and l)Esc 键有什么用途? (The Esc Key)我如何加入新的文字? (a and i)我如何建立新的一行? (o and O)我如何删除文字? (x and dd)我如何拷贝文章内容? (yy and p)我如何替代文章? (r)我如何使用数个指令? (nCommand)我如何搜寻文章? (/text)我如何起动"vi" 于只读模式? (view)使用者管理(2)我如何新增使用者至群组? (vi /etc/group)计算机信息我如何能观看开机记录文件? (dmesg)有什么方法可以让我慢慢地观看开机记录文件吗? (dmesg |more)谁显示谁在系统上? (who)他们正在做什么?? (w)"w" 可以显示出所有的处理吗? (w)何时我如何显示或设定日期时间? (date)我如何显示月历? (cal)有什么方法可以让我慢慢地观看月历吗? (cal | more)Communications我如何显示(或不显示) 其它使用者送来的讯息? (mesg y, mesg n) 我如何传送讯息到其使用者的屏幕? (write)我如何送讯息到每一个人的屏幕? (wall)我如何与他人交谈(chat)? (talk)档案管理我如何建立一个空档案? (touch)我如何删除档案? (rm)我如何建立一个目录? (mkdir)我如何移除一个空的目录? (rmdir)我如何移除一个目录包括里面所有的东西(包括子目录)? (rm -r)我如何移除以"-" 起头的档案? (rm -- -filename)我如何拷贝档案? (cp)我如何拷贝整个目录包括它所有的内容? (cp -R)我该如何搬移档案与目录? (mv)我如何改变档案/目录名称? (mv)我如何执行rm、cp 与mv 时,须要我的许可? (-i)我如何执行rm、cp 与mv 时,不须要我的确认? (-f)档案连结我如何连结一个档案或目录? (ln -s)我如何hard link 一个档案? (ln)档案拥有权/存取许可我如何观察谁是档案拥有者? (ls -l)我如何观察档案/目录的存取许可? (ls -l)我如何改变档案/目录的使用者拥有人? (chown)我如何改变档案/目录的群组拥有人?s group owner? (chgrp)我如何改变档案/目录的使用者与群组拥有人? (chown user:group) 我如何改变存取许可? (chmod)如果我拥有这个目录,我可否修改不是我的档案? (yes)软盘机装置我如何挂上我的软盘? (mount)我如何挂上MS-DOS 格式的软盘机? (mount -t msdos)我如何卸下我的软盘? (umount)应用程序我如何起动应用程序? (./)我如何由文件名称来起动应用程序? (PATH)我如何在背景起动应用程序? (&)我如何知道我的PATH 是? (echo $PATH)所有的应用程序在那? (The FreeBSD Ports Collection)我如何安装一个port? (make install clean)那里有编辑好的二进制文件? (The FreeBSD Packages Collection) 我如何移除应用程序? (pkg_delete)使用者环境使用者的profile 档案在那? (vi ~/.profile)我如何改变我的shell? (chsh)处理管理我如何列出处理? (ps)我如何列找到处理? (ps -waux | grep "name of the process")我如何砍掉处理? (kill)磁盘管理我如何检查可用的磁盘空间? (df)我如何检查每个目录下用了多少磁盘空间? (du)工具哪里有计算器? (bc)一、基础篇我如何离线?(exit)我如何停止电脑?(shutdown -h now)我如何重新激活计算机? (shutdown -r now)我如何在单使用者模式下停止系统? (shutdown now)我如何切换终端机? (ALT-Fn) 注:Fn是指F1至F8八个功能键。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FreeBSD笔记┊使用ports来管理软件包Linux/unix上的软件包真是五花八门,不太统一。
按软件包有redhat下的rpm,ubu ntu的dpkg管理ded包,还有源码编译,pl,py格式的;网络安装有redhat下的yum,ubuntu下的apt-get,suse听说又是另外一套(这个我没用过),现在freebsd下管理网络软件包主要是ports。
今天主要就来学习一下ports的管理。
1、ports套件的安装和简单介绍[1]. 安装ports安装在"FreeBSD笔记┊FreeBSD7.0安装篇之一:系统安装"第6步讲到了,如果你当时没有选择启用ports的话,那么需要在root下输入"sysinstall"来安装它:输入sysinstall --> 选择Configure --> Distributions --> ports,然后安装即可。
[2]. ports路径ports的默认路径是/usr/ports,这个ports的根目录,下面有很多的文件夹及子文件夹,组成一个树状目录,包含大量ports下的软件这些即是套件的软件分类和名称,比如mail代表邮件服务软件;games则是一些游戏;www里面是一些web服务软件;databases则是数据库软件……[root@bsd01 /usr/ports]# cd www[root@bsd01 /usr/ports/www]# ls -d apache*apache-contrib apache13 apache13-modssl+ipv6apache-forrest apache13+ipv6 apache13-sslapache-jserv apache13-modperl apache20apache-mode.el apache13-modssl apache22如果你你需要安装什么软件,只要进入当前目录,然后“make install clean”即可。
[root@bsd01 ~]# cd /usr/ports/www/apache22[root@bsd01 /usr/ports/www/apache22] make install clean而/usr/ports/distfiles是存放软件包的文件夹,ports就会先检查/usr/ports/distfiles 目录内有没有这个软件包,如果没有它就会自动从网上下载安装。
[3]. 源地址ports从网上下载软件包自动安装,那么从那里下载呢?这就需要一个源地址管理,跟u buntu上的/etc/source.list文件一样,freebsd用的文件是/etc/make.conf,我们来编辑这个文件,加入下列几行,国内比较块的源:[root@bsd01 ~]# ee /etc/make.confMASTER_SITE_OVERRIDE?= \/${DIST_SUBDIR}/ \/${DIST_SUBDIR}/ \ftp:///pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ \有新的服务器加入就直接往后面加就可以了,格式就是“源地址+/${DIST_SUBDIR}/ \”。
但是不要同时存在2个“MASTER_SITE_OVERRIDE?”,否则第二个就不起效了。
2、ports管理软件常用命令[1]. 安装软件下面以安装rpm为例:[root@bsd01 ~]# cd /usr/ports/archivers/rpm[root@bsd01 /usr/ports/archivers/rpm]# make install clean如果想清除www内所有的暂存文件,就cd到/usr/ports/www内。
如果想清除所有的暂存文件,就cd到/usr/ports根目录:[root@bsd01 ~]# cd /usr/ports[root@bsd01 /usr/ports]# make cleancmake clean只是清除暂存文件,并不是清除distfiles里面的软件包。
什么是暂存文件?其实主要是编译过程产生的一些临时文件,其实也是软件目录内的work文件夹,而执行make clean会把当前软件目录内的work文件夹删除。
如果想删除distfile连文件夹内软件包怎么做呢?[root@bsd01 ~]# cd /usr/ports/www/apache22[root@bsd01 /usr/ports/www/apache22]# make distclean而make distclean不但会清除软件包,而且包含了make clean命令。
这样就会清除apa che22的软件包,以及apache22目录内的work文件夹。
同理,如果像清除所有www内的软件包及暂存文件,就cd到/usr/ports/www;如果像清除所有的包及暂存文件,就cd到ports根目录。
[2]. 卸载软件卸载软件用make deinstall:[root@bsd01 ~]# cd /usr/ports/www/apache22[root@bsd01 /usr/ports/www/apache22]# make deinstall[3]. 查询可用ports安装的软件我一直想,freebsd的ports直接在系统内占用资源空间组成树目录是好还是不好呢?如果要是从能查询这一点讲就比apt-get好一些了,以前用apt-get安装软件的时候,要是遇到一些稍微不规范一点的软件,就很难知道名字了,经常要用正则表达式来测试软件名是什么。
而现在在freebsd里面可以直接在ports树目录内查询可用的软件了(也许ubuntu的apt-get也有查询,我不会用?)。
[root@bsd01 ~]# cd /usr/ports[root@bsd01 /usr/ports]# make search key=apache不过这种会找出很多,看的眼花,但是我们注意到有一个细节,就是Port和Path2个关键字,一个代表名字,一个代表路径,我们就可以改善+过滤:[root@bsd01 /usr/ports]# make search key=^apache-2 | grep -E "Port:| Path:|Info:"Port: apache-2.0.61_2Path: /usr/ports/www/apache20Info: Version 2 of Apache web server with prefork MPM.Port: apache-2.1.9_7Path: /usr/ports/www/apache21Info: Version 2.1 of Apache web server with prefork MPM.Port: apache-2.2.6_2Path: /usr/ports/www/apache22Info: Version 2.2 of Apache web server with prefork MPM.现在还可以进一步来增强查询,就是在获取一个空行,这样让查询结果更直观一点,Linux的管道真是好东西,可以自己发挥一下:[root@bsd01 ports]# make search key=^apache-2 | grep -E "Port:|Pat h:|Info:|^$"Port: apache-2.0.61_2Path: /usr/ports/www/apache20Info: Version 2 of Apache web server with prefork MPM.Port: apache-2.1.9_7Path: /usr/ports/www/apache21Info: Version 2.1 of Apache web server with prefork MPM.Port: apache-2.2.6_2Path: /usr/ports/www/apache22Info: Version 2.2 of Apache web server with prefork MPM.[4]. 查询已安装的软件怎么像Linux中用“rpm -qa | grep samba”来查询某个软件是否安装了呢(这里以samb a为例)?ports用“pkg_info”:[root@bsd01 ~]# pkg_info | grep sambasamba-3.0.32_1,1 A free SMB and CIFS client and server for UNIXsamba-libsmbclient-3.0.28 Shared libs from the samba package[root@bsd01 ~]# pkg_info | grep nfs3、使用cvsup来更新ports树目录既然ports的树目录全部下载到本地,那么freeBSD有新的软件包了或者添置了新的软件,本地目录树就不会更新。
所以我们在一段时间需要更新本地目录树。
下面来学习使用cvsup来更新本地目录树:[1]. 安装cvsup如果你在命令下输入:cvsup,提示command not found,则说明cvsup没有被安装。
我们就用ports来安装cvsup,cvsup位于/usr/ports/net目录下。
并且有2个软件包,一个叫cvsup,一个叫cvsup-without-gui。
cvsup-without-gui是纯命令模式的cvsup,在终端下一般用这个,那么我们就安装它好了:[root@bsd01 ~] cd /usr/ports/net[root@bsd01 net]# ls -d cvsup*cvsup cvsup-mirror cvsup-without-gui cvsupchk[root@bsd01 net]# cd cvsup-without-gui[root@bsd01 cvsup-without-gui]# make install clean这样就可以安装cvsup了。
[2]. 配置文件:ports-subfilecvsup安装后,可以进/usr/share/examples/cvsup查看相关配置文件:[root@bsd01 ~]# cd /usr/share/examples/cvsup[root@bsd01 cvsup]# lsREADME doc-supfile ports-supfile refuse.README standard-sup filecvs-supfile gnats-supfile refuse stable-supfile www-supfileports-supfile就是cvsup升级目录树用到的配置文件,等会我们更新的时候需要指定配置文件,所以不建议直接在此文件上更改,我们可以先复制一个到其他地方(这里我们复制到/etc),然后修改那个复制文件:[root@bsd01 cvsup]# cp ports-supfile /etc[root@bsd01 cvsup]# ee /etc/ports-supfile# listed at /doc/handbook/mirrors.html.*default host=CHANGE_*default base=/var/db*default prefix=/usr*default release=cvs tag=.*default delete use-rel-suffixports-all# These are the individual collections that make up "ports-all". If you# use these, be sure to comment out "ports-all" above.……(省略若干行注释)#ports-base#ports-accessibility#ports-arabic#ports-archivers#ports-astro#ports-audio#ports-benchmarks……(省略若干行目录注释)1) *default host=就是需要从哪里更新的服务,我们把他改成国内的:*default host=2) 后面的ports-all表示更新/usr/ports内所有的目录树,如果你只想更新一部分目录,那么就把ports-all前面加“#”注释起来,然后把后面“#ports-base”这样需要更新的文件夹前面的“#”注释去掉。