/usr/sbin/apachectl restart
DreamTiger的夢幻樂園隨便寫寫,自得其樂,生活就是這樣 |
/usr/sbin/apachectl restart
http://www.co-create.com.cn/newbbs/archiver/?tid-841.html
superserver 2005-2-22 01:32 AM 用法: rpm [選項...] 查詢選項 (參數 -q 或 --query): -c, --configfiles 列出所有配置文件 -d, --docfiles 列出所有文檔文件 --dump 導出基本文件信息 -l, --list 列出包內的所有文件 --queryformat=QUERYFORMAT 使用緊跟的查詢格式 -s, --state 顯示文件列表的狀態 -v, --verbose 顯示詳細的文件列表 -a, --all 查詢/校驗所有包 -f, --file 查詢/校驗包的包含文件 -g, --group 查詢/校驗組內的包 -p, --package 查詢/校驗一個包文件(例如一個二進制的 *.rpm 文件) --querytags 顯示已知的查詢標簽 --specfile 查詢規格文件 --whatrequires 查詢/校驗指定包的依賴關系 --whatprovides 查詢/校驗指定包的被依賴關系 校驗選項 (參數 -V 或 --verify): --nomd5[|=0x1] 不使用MD5分類校驗文件 --nofiles[|=0x10000] 不校驗包中的文件 --nodeps[|=0x20000] 不校驗包的依賴關系 --noscript[|=0x40000] 不執行校驗腳本(任何腳本) -a, --all 查詢/校驗所有包 -f, --file 查詢/校驗包所含的文件 -g, --group 查詢/校驗組內的包 -p, --package 查詢/校驗一個包文件(例如一個二進制的 *.rpm 文件) --querytags 顯示已知的查詢標簽 --specfile 查詢規格文件 --whatrequires 查詢/校驗指定包的依賴關系 --whatprovides 查詢/校驗指定包的被依賴關系 簽名選項: --addsign 往包內增加一個簽名 --resign 簽名一個包(去除當前簽名) -K, --checksig 校驗包的簽名 --nogpg[&=~0x4] 忽略任何GPG的簽名 --nomd5[&=~0x2] 不校驗文件的MD5的校驗數 數據庫選項: --initdb 初始化數據庫 --rebuilddb 從已安裝包的頭信息中重建數據庫的反轉列表 安裝/升級/卸載選項: --allfiles[|=0x40] 安裝所有文件, 忽略找不到的配置項里面的部分 --allmatches[|=0x2] 卸載所有和<package>項匹配的包。(如果<package>中指定多個包則會產生一個錯誤信息) --badreloc[|=0x8] 在非重定位包中重定位文件 -e, --erase=<package>+ 卸載包 --excludedocs[|=0x20] 不安裝文檔 --excludepath=<path> 帶引導組件的忽略文件<path> --force[|=0x74] --replacepkgs --replacefiles的快捷方式 -F, --freshen=<packagefile>+ 在已安裝的情況下升級包 -h, --hash[|=0x2] 為安裝包打上哈希標記(最好帶-v選項) --ignorearch[|=0x2] 不校驗包的體系 --ignoreos[|=0x1] 不校驗包的操作系統 --ignoresize[|=0x180] 安裝之前不檢查磁盤空間 --includedocs 安裝文檔 --install=<packagefile>+ 安裝包 --justdb[|=0x8] 升級數據庫,但是不修改文件系統 --nodeps 不校驗包的依賴關系 --noorder[|=0x8] 不重新記錄包的安裝信息到依賴性中 --noscripts[|=0xff0000] 不執行包的腳本 --notriggers[|=0x990000] 不執行被該安裝包觸發的任何腳本 --oldpackage[|=0x40] 升級到該包的一個舊版本 (--force 升級的時候,該操作自動執行) --percent[|=0x1] 打印包的安裝進度 --prefix=<dir> 如果允許重定位,則重定位包到<dir> --relocate=<old>=<new> 從路徑<old>到<new>重定位文件 --repackage[|=0x400] 重新打包保存下來的卸載包的文件 --replacefiles[|=0x30] 安裝時用包文件替換已安裝文件 --replacepkgs[|=0x4] 如果包已經存在,那么重新安裝 --test[|=0x1] 不安裝包,但是要檢測能否正常運行 -U, --upgrade=<packagefile>+ 升級包 所有rpm模式的通用選項: --version 打印所使用的rpm的版本信息 --quiet 提供少量詳細信息輸出 -v, --verbose 提供更多的詳細信息輸出 --define='<name> <body>' 使用值<body>來定義宏<name> --eval=<expr>+ 打印<expr>+的宏擴展 -r, --root=<dir> 使用<dir>作為頂層目錄(默認: "/") --macros=<file:...> 讀入<file:...>來代替默認的宏文件 --rcfile=<file:...> 讀入<file:...>來代替默認的rpmrc文件 --showrc 顯示最終的rpmrc和macro配置 通過popt alias/exec 實現的選項: --scripts 列出包中的所有安裝/卸載腳本 --setperms 在包中設置文件的權限 --setugids 在包中設置文件的用戶/組關系 --conflicts 列出此包的兼容性 --obsoletes 列出安裝此包需要卸載的別的包 --provides 列出此包提供的兼容性 --requires 列出此包所需要的兼容性 --info 列出包中的敘述信息 --changelog 列出該包的變更日志 --triggers 列出包中的觸發腳本 --last 根據安裝時間列出包,最近時間的優先 --filesbypkg 列出每個包的所有文件 --redhatprovides 根據所包含的提供的兼容性查找包名(需要安裝包rpmdb-redhat) --redhatrequires 根據所依賴的包的兼容性查找包名(需要安裝包rpmdb-redhat) --buildpolicy=<policy> 設置包的根目錄<policy>(例如,壓縮man手冊) --with=<option> 打開打包的<選項>配置 --without=<option> 關閉打包的<選項>配置 幫助選項: -?, --help 顯示該幫助信息 --usage 顯示用法摘要 ****************************************************** 1.如何不安裝但是獲取rpm包中的文件 使用工具rpm2cpio和cpio rpm2cpio xxx.rpm | cpio -vi rpm2cpio xxx.rpm | cpio -idmv rpm2cpio xxx.rpm | cpio --extract --make-directories 參數i和extract相同,表示提取文件。v表示指示執行進程 d和make-directory相同,表示根據包中文件原來的路徑建立目錄 m表示保持文件的更新時間。 2.如何查看與rpm包相關的文件和其他信息 下面所有的例子都假設使用軟件包mysql-3.23.54a-11 1.我的系統中安裝了那些rpm軟件包 rpm -qa 講列出所有安裝過的包 如果要查找所有安裝過的包含某個字符串sql的軟件包 rpm -qa |grep sql 3.如何獲得某個軟件包的文件全名 rpm -q mysql 可以獲得系統中安裝的mysql軟件包全名,從中可以獲得 當前軟件包的版本等信息。這個例子中可以得到信息mysql-3.23.54a-11 4.一個rpm包中的文件安裝到那里去了? rpm -ql 包名 注意這里的是不包括.rpm后綴的軟件包的名稱 也就是說只能用mysql或者mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm。 如果只是想知道可執行程序放到那里去了,也可以用which,比如 which mysql 5.一個rpm包中包含那些文件 一個沒有安裝過的軟件包,使用rpm -qlp ****.rpm 一個已經安裝過的軟件包,還可以使用rpm -ql ****.rpm 6.如何獲取關于一個軟件包的版本,用途等相關信息? 一個沒有安裝過的軟件包,使用rpm -qip ****.rpm 一個已經安裝過的軟件包,還可以使用rpm -qi ****.rpm 7.某個程序是哪個軟件包安裝的,或者哪個軟件包包含這個程序 rpm -qf `which 程序名` 返回軟件包的全名 rpm -qif `which 程序名` 返回軟件包的有關信息 rpm -qlf `which 程序名` 返回軟件包的文件列表 注意,這里不是引號,而是`,就是鍵盤左上角的那個鍵。 也可以使用rpm -qilf,同時輸出軟件包信息和文件列表 8.某個文件是哪個軟件包安裝的,或者哪個軟件包包含這個文件 注意,前一個問題中的方法,只適用與可執行的程序,而下面的方法,不僅可以 用于可執行程序,也可以用于普通的任何文件。前提是知道這個文件名。 首先獲得這個程序的完整路徑,可以用whereis或者which,然后使用rpm -qf例如: # whereis ftptop ftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz # rpm -qf /usr/bin/ftptop proftpd-1.2.8-1 # rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt proftpd-1.2.8-1 總結: 獲得軟件包相關的信息用rpm -q,q表示查詢query,后面可以跟其他選項,比如 i 表示info,獲得軟件包的信息; l 表示list,獲得文件列表; a 表示all,在所有包中執行查詢; f 表示file,根據文件進行相關的查詢; p 表示package,根據軟件包進行查詢 需要的查詢條件可以使用grep產生,或者從"` `"中的命令行產生 9.關于rpm軟件包的一些相關知識 1.什么是rpm rpm 即RedHat Package Management,是RedHat的發明之一 10.為什么需要rpm 在一個操作系統下,需要安裝實現各種功能的軟件包。這些軟件包一般都有各自的 程序,但是同時也有錯綜復雜的依賴關系。同時還需要解決軟件包的版本,以及安裝, 配置,卸載的自動化問題。為了解決這些問題,RedHat針對自己的系統提出了一個 較好的辦法來管理成千上百的軟件。這就是RPM管理系統。在系統中安裝了rpm管理系統 以后,只要是符合rpm文件標準的打包的程序都可以方便的安裝,升級,卸載 11.是不是所有的linux都使用rpm 任何系統都需要包管理系統,因此很多linux都使用rpm系統。但rpm系統是為RH專門 但是TL,Mandrake等系統也都使用rpm。由于rpm的源程序可以在別的系統上進行編譯, 所以有可能在別的系統上也使用rpm 除了rpm,其他一些系統也有自己的軟件包管理程序,例如debian的deb包, slakware也都有自己的包管理系統 12.rpm包的文件名為什么那么長 rpm包的文件名中包含了這個軟件包的版本信息,操作系統信息,硬件要求等等。 比如mypackage-1.1-2TL.i386.rpm,其中mypackage是在系統中登記的軟件包的名字 1.1是軟件的版本號,2是發行號,TL表示用于TL操作系統,還可能是RH等。i386表示 用于intel x86平臺,還可能是sparc等。 13.軟件包文件名中的i386,i686是什么意思 rpm軟件包的文件名中,不僅包含了軟件名稱,版本信息,還包括了適用的硬件架構 的信息。 i386指這個軟件包適用于intel 80386以上的x86架構的計算機(AI32) i686指這個軟件包適用于intel 80686以上(奔騰pro以上)的x86架構的計算機(IA32) noarch指這個軟件包于硬件架構無關,可以通用。 i686軟件包的程序通常針對CPU進行了優化,所以,向后兼容比較用以,i386的包在 x86機器上都可以用。向前一般不兼容。不過現在的計算機,奔騰pro以下的CPU已經很少 用,通常配置的機器都可以使用i686軟件包 14.不同操作系統發行的rpm包可否混用? 對于已經編譯成二進制的rpm包,由于操作系統環境不同,一般不能混用。 對于以src.rpm發行的軟件包,由于需要安裝時進行本地編譯,所以通常可以在不同 系統下安裝。 15.使用rpm時遇到的一些特殊問題 Q 我用rpm -e **.rpm無法刪除rpm包 A 包名不要包括rpm, rpm -e 包名,可以包含版本號等信息,但是不可以有后綴.rpm Q 在MS的系統下有沒有讀RPM文件的工具? A wincmd with rpm plugins..... Q 是否可以通過ftp安裝安裝升級rpm包? A 可以。rpm -ivh [url]ftp://xxxxxxxx/PATH2SomeRPM[/url] Q rpm安裝時已有的包版本過高怎么辦? A 有時由于安裝的軟件包太老,而系統中相關的軟件包版本比較新,所以可能需要 安裝的包依賴的一些文件會找不到。這時有兩種解決辦法, 第一是在系統文件中找到和需要的文件功能相同或相似的文件,做一個符號鏈接到 需要的目錄下。 第二是下載安裝新版本的軟件包。
想要裝gcc,找了個最新版本的,需要更新一堆的rpm包,其中包括了libc。
rpm -i --nodeps libcXXXX 系統掛了。 事后得知,libc是不能更新的,基本上。唉,經驗太少啊,讓李龍同學受苦了,得重裝一次系統了。
試驗成功了Mantis后,想把它移植到Linux上去。
MySQL的安裝是第一步。 1、下載、安裝rpm包 http://mysql.sd2.mirrors.redwire.net/Downloads/MySQL-5.0/ 下載了: MySQL-server-5.0.15-0.glibc23.i386.rpm MySQL-client-5.0.15-0.glibc23.i386.rpm MySQL-shared-compat-5.0.15-0.i386.rpm 三個rpm包, rpm -i MySQL-server-5.0.15-0.glibc23.i386.rpm 主目錄在:/usr/share/mysql 數據保存在:/var/lib/mysql 可執行文件在:/usr/bin 在/usr/lib/mysql下生成mysqld.sym文件,也不知道干嘛用的。 rpm -i MySQL-client-5.0.15-0.glibc23.i386.rpm 添加可執行文件在:/usr/bin 有了mysqladmin和mysql兩個重要程序。 rpm -i MySQL-shared-compat-5.0.15-0.i386.rpm 用于與其他工具的連接,例如下面的php。 這 里有個小故事,起初安裝的是MySQL-server-5.0.15-0.i386.rpm,以及MySQL-client-5.0.15- 0.i386.rpm。服務器倒是啟動正常,但是mysql命令總是出錯。后來換了glibc23就正常了,因為這臺機器上是glibc23。 2、密碼修改 /usr/bin/mysqladmin -u root password XXXXXX 報錯:Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 網 上查了才知道http://www.tech-recipes.com/mysql_tips762.html,是rpm包安裝后,把默認的socket 放到/var/lib/mysql/mysql.sock了。拷貝一份/usr/share/mysql下面的my-small.cnf為 /etc/my.cnf 密碼修改正常。 3、與php接軌 下載http://download.asplinux.ru/i386/updates/9.1/i386/php-mysql-4.3.2-26.ent.i386.rpm 安裝順利。運行測試文件index.php: $link = mysql_connect('localhost', 'root', 'XXXXXX'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?> 出錯: Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in /var/www/html/index.php on line 2 Could not connect: Client does not support authentication protocol requested by server; consider upgrading MySQL client 知道是個經典錯誤,但是不知道如何解決,只好google了。 4、mysql_connect()解決之道 功夫不負有心人,從http://forums.mysql.com/read.php?11,6400,10611#msg-10611看到了他在windows上的解決方案,就是增加了old_passwords一行在配置文件中。于是照貓畫虎的在my.cnf的[mysqld]下面增加一行 old_passwords。 停止mysql,停止apache,啟動apache,啟動mysql。 通過遠程連接的mysqladministrator修改了root的密碼,然后測試index.php,通過,哈哈。
Mantis是一個Bug report/trace system,最近在windows和linux上都裝了一遍,蠻好的。主要參考了下面文章:
http://www.chinaitpower.com/A/2003-02-23/50987.html
1、安裝Apache2
已安裝 2、安裝PHP 下載:http://cn.php.net/distributions/php-5.0.5-Win32.zip 解壓縮到:C:\develop\php-5.0.5-Win32 安裝包括: a),加路徑到path中 b),把php目錄下php.ini-recommended拷貝一份,更名為php.ini c),在Apache的httpd.conf中,最后增加一下幾行: # For PHP 5 do something like this: LoadModule php5_module "C:/develop/php-5.0.5-Win32/php5apache2.dll" AddType application/x-httpd-php .php # configure the path to php.ini PHPIniDir "C:/develop/php-5.0.5-Win32" 3、安裝MySQL 已經安裝好。新建Schema名為BugFree,給用戶sqh設置BugFree的全部權限。 4、下載BugFree http://bugfree.1zsoft.com/Download/BugFree1.0.zip 5、解壓縮BugFree到 C:\ApacheGroup\Apache2\htdocs 6、在cmd下,轉到BugFree\Document目錄,運行: mysql -u sqh --password=XXXXXXXX -D BugFree < BugFree.sql 創建BugFree所需要的數據表。 7、http://localhost/BugFree/install.php填寫表單,生成ConfigBug.inc.php。 (中間曾出現問題:通過網頁http://localhost/BugFree/install.php填寫表單后,點擊按鈕出現空白,沒有出現要求下載 文件之類的。而且除了install.php能夠正常顯示出頁面,其余*.php全部顯示空白。察看了論壇,里面也有不少人遇到這個問題,但沒有解決。后 來發現是php無法調用mysql。在php.ini中把 ;extension=php_mysql.dll 改成 extension=php_mysql.dll 并把php_mysql.dll拷貝到windows/system32下,php調用mysql成功) 8、基本安裝完成。
有一個查詢是要一次性把一個項目中所有涉及的sequest
out文件都找出來,顯示在界面。數千個算是少的,但顯示第一次后,如果刷新,就會出現OutOfMemory。根據深入淺出Hibernate里面提
到,因為Hibernate把所有查詢到的記錄都放在session中,導致內存不夠。于是在ProjectAction的execute中,在
Session session = HibernateUtil.currentSession(); 后面加上: session.flush(); session.clear(); 這后面再查詢,就沒有問題了。一個簡單的解決辦法吧,對效率的影響有多少就不知道了。
最近使用Struts和Hibernate開發了一個磷酸化肽段的質譜數據顯示系統(msms),有一些開發時的經驗和感想,留在這里作為查詢和紀念。這是第一條經驗:jsp-api.jar和servlet-api.jar是Tomcat特異的。
昨 天新安裝Tomcat 5.5,把msms從原來的Tomcat 5.0的webapps拷到5.5下面,運行出錯。是intenal error。檢查了所有需要的包都在,數據庫連接也正常,hibernate沒問題,難道是Struts出錯了?網上找了好多資料,最后看到一篇文章說, 可能是在WEB-INF/lib下面多了與Tomcat不兼容的jsp-api.jar和servlet-api.jar。想到為了使Eclipse編譯 所需要的jar都在一起,把Tomcat5.0的兩個jar放到了WEB-INF/lib下,估計就是這個問題了。刪除后,重起Tomcat,OK。
本機環境:
操作系統:Windows2000Sp4, Java:C:\Program Files\Java\jdk1.5.0_05 假設本機上沒有Apache和Tomcat存在,如果存在就全部卸載刪除。 1、下載安裝Apache2 下載路徑: http://apache.bestwebcover.com/httpd/binaries/win32/apache_2.0.55-win32-x86-no_ssl.msi 安裝到:(為了防止空格導致的麻煩,ApacheGroup中間沒有空格) C:\ApacheGroup 會自動生成 C:\ApacheGroup\Apache2 選擇安裝為Windows的Service后會自動啟動。 啟動瀏覽器觀察http://localhost看到Apache的默認主頁。 2、下載安裝Tomcat5.5 下載路徑: http://mirrors.playboy.com/apache/tomcat/tomcat-5/v5.5.12/bin/apache-tomcat-5.5.12.exe 安裝到:(為了防止空格導致的麻煩,Tomcat5.5中間沒有空格) C:\ApacheGroup\Tomcat5.5 自動安裝為Service,選擇安裝完畢后啟動Tomcat。 安裝時選擇安裝examples。 啟動瀏覽器觀察http://localhost:8080看到Tomcat的默認主頁。 觀測http://localhost:8080/jsp-examples看到jsp測試頁。 3、下載安裝Connector 下載路徑: http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/mod_jk-apache-2.0.55.so 改名為mod_jk.so后放到C:\ApacheGroup\Apache2\modules下面。 4、創建workers.properties,放到C:\ApacheGroup\Apache2\conf下面?;旧习凑誂pache網站上Connector的worker的介紹寫的,就是目錄按照前面的實際安裝目錄寫。 workers.apache_log=C:\ApacheGroup\Apache2\logs workers.tomcat_home=C:\ApacheGroup\Tomcat5.5 ps=# the list of workers worker.list=ajp13 # worker "ajp13" will talk to Tomcat listening on machine localhost at port 8009 using 3 lb factor worker.ajp13.type=ajp13 worker.ajp13.host=localhost worker.ajp13.port=8009 worker.ajp13.lbfactor=3 # worker "ajp13" use up to 10 sockets, which will stay no more than 10mn in cache worker.ajp13.cachesize=10 worker.ajp13.cache_timeout=600 # worker "ajp13" ask operating system to send KEEP-ALIVE signal on the connection worker.ajp13.socket_keepalive=1 # worker "ajp13" want ajp13 connection to be dropped after 5mn (recycle) worker.ajp13.recycle_timeout=300 # Define the LB worker worker.router.type=lb worker.router.balance_workers=ajp13 # Add the status worker to the worker list worker.list=jkstatus # Define a 'jkstatus' worker using status worker.jkstatus.type=status # Add the jkstatus mount point JkMount /jkmanager/* jkstatus # Enable the JK manager access from localhost only <location> JkMount jkstatus Order deny,allow Deny from all Allow from 127.0.0.1 </location> 5、修改C:\ApacheGroup\Tomcat5.5\conf\server.xml 在<engine name="Catalina" defaulthost="localhost">后面加上: <listener classname="org.apache.jk.config.ApacheConfig" modjk="C:/ApacheGroup/Apache2/modules/mod_jk.so"> 重起Tomcat,會發現在C:\ApacheGroup\Tomcat5.5\conf下面新建了兩個目錄:jk和auto,其中auto中有一個文件mod_jk.conf。 6、修改C:\ApacheGroup\Apache2\conf\httpd.conf 在最后加上: Include C:/ApacheGroup/Tomcat5.5/conf/auto/mod_jk.conf 7、重起Apache2 8、檢測http://localhost/jsp-examples,看到Tomcat的jsp-examples。 |