Debian
如何從原始碼在 ubuntu 或 debian 上安裝 daemontools
我
daemontools
在 ubuntu 10.04 伺服器(64 位)上安裝 DJB。(這個問題是關於
daemontools
,它是一個免費和開放的用於管理 UNIX 服務的軟體。它不是關於“DAEMON 工具”,它是一個在 Windows 上執行的用於磁碟映像的商業軟體。)我首先安裝了 build-essential 包,然後按照http://cr.yp.to/daemontools/install.html 1:1 上的說明進行操作,但它失敗了:
Script started on Sa 28 Apr 2012 21:41:34 CEST root@daemontools1:/# mkdir -p /package root@daemontools1:/# chmod 1755 /package root@daemontools1:/# cd /package root@daemontools1:/package# wget http://cr.yp.to/daemontools/daemontools-0.76.ta ^Mr.gz --2012-04-28 21:42:10-- http://cr.yp.to/daemontools/daemontools-0.76.tar.gz Resolving cr.yp.to... 131.193.32.142, 80.101.159.118 Connecting to cr.yp.to|131.193.32.142|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 36975 (36K) [application/x-gzip] Saving to: `daemontools-0.76.tar.gz' ^M 0% [ ] 0 --.-K/s ^M58% [=====================> $ 2012-04-28 21:42:11 (125 KB/s) - `daemontools-0.76.tar.gz' saved [36975/36975] root@daemontools1:/package# gunzip daemontools-0.76.tar root@daemontools1:/package# tar -xpf daemontools-0.76.tar root@daemontools1:/package# rm -f daemontools-0.76.tar root@daemontools1:/package# cd admin/daemontools-0.76 root@daemontools1:/package/admin/daemontools-0.76# root@daemontools1:/package/admin/daemontools-0.76# root@daemontools1:/package/admin/daemontools-0.76# package/install Linking ./src/* into ./compile... Compiling everything in ./compile... sh find-systype.sh > systype rm -f compile sh print-cc.sh > compile chmod 555 compile ./compile byte_chr.c ./compile byte_copy.c ./compile byte_cr.c ./compile byte_diff.c ./compile byte_rchr.c ./compile fmt_uint.c ./compile fmt_uint0.c ./compile fmt_ulong.c rm -f makelib sh print-ar.sh > makelib chmod 555 makelib ./compile scan_ulong.c ./compile str_chr.c ./compile str_diff.c ./compile str_len.c ./compile str_start.c ./makelib byte.a byte_chr.o byte_copy.o byte_cr.o byte_diff.o \ byte_rchr.o fmt_uint.o fmt_uint0.o fmt_ulong.o scan_ulong.o str_chr.o \ str_diff.o str_len.o str_start.o rm -f choose cat warn-auto.sh choose.sh \ | sed s}HOME}"`head -1 home`"}g \ > choose chmod 555 choose ./choose c trydrent direntry.h1 direntry.h2 > direntry.h ./compile envdir.c rm -f load sh print-ld.sh > load chmod 555 load ./compile alloc.c ./compile alloc_re.c ./compile buffer.c ./compile buffer_0.c ./compile buffer_1.c ./compile buffer_2.c ./compile buffer_get.c ./compile buffer_put.c ./compile buffer_read.c ./compile buffer_write.c ./compile coe.c ./compile env.c ./compile error.c ./compile error_str.c ./compile fd_copy.c ./compile fd_move.c ./choose cl trymkffo hasmkffo.h1 hasmkffo.h2 > hasmkffo.h ./compile fifo.c ./choose cl tryflock hasflock.h1 hasflock.h2 > hasflock.h ./compile lock_ex.c ./compile lock_exnb.c ./compile ndelay_off.c ./compile ndelay_on.c ./compile open_append.c ./compile open_read.c ./compile open_trunc.c ./compile open_write.c ./compile openreadclose.c ./compile pathexec_env.c ./compile pathexec_run.c pathexec_run.c: In function ‘pathexec_run’: pathexec_run.c:18: warning: implicit declaration of function ‘execve’ ./compile chkshsgr.c chkshsgr.c: In function ‘main’: chkshsgr.c:10: warning: passing argument 2 of ‘getgroups’ from incompatible pointer type /usr/include/bits/unistd.h:266: note: expected ‘__gid_t *’ but argument is of type ‘short int *’ chkshsgr.c:10: warning: implicit declaration of function ‘setgroups’ ./load chkshsgr ./chkshsgr || ( cat warn-shsgr; exit 1 ) ./choose clr tryshsgr hasshsgr.h1 hasshsgr.h2 > hasshsgr.h ./compile prot.c prot.c: In function ‘prot_gid’: prot.c:13: warning: implicit declaration of function ‘setgroups’ prot.c:15: warning: implicit declaration of function ‘setgid’ prot.c: In function ‘prot_uid’: prot.c:20: warning: implicit declaration of function ‘setuid’ ./compile readclose.c ./compile seek_set.c seek_set.c: In function ‘seek_set’: seek_set.c:9: warning: implicit declaration of function ‘lseek’ ./compile sgetopt.c ./compile sig.c ./choose cl trysgprm hassgprm.h1 hassgprm.h2 > hassgprm.h ./compile sig_block.c ./choose cl trysgact hassgact.h1 hassgact.h2 > hassgact.h ./compile sig_catch.c ./compile sig_pause.c ./compile stralloc_cat.c ./compile stralloc_catb.c ./compile stralloc_cats.c ./compile stralloc_eady.c ./compile stralloc_opyb.c ./compile stralloc_opys.c ./compile stralloc_pend.c ./compile strerr_die.c ./compile strerr_sys.c ./compile subgetopt.c ./choose cl trywaitp haswaitp.h1 haswaitp.h2 > haswaitp.h ./compile wait_nohang.c ./compile wait_pid.c ./makelib unix.a alloc.o alloc_re.o buffer.o buffer_0.o buffer_1.o \ buffer_2.o buffer_get.o buffer_put.o buffer_read.o buffer_write.o \ coe.o env.o error.o error_str.o fd_copy.o fd_move.o fifo.o lock_ex.o \ lock_exnb.o ndelay_off.o ndelay_on.o open_append.o open_read.o \ open_trunc.o open_write.o openreadclose.o pathexec_env.o \ pathexec_run.o prot.o readclose.o seek_set.o sgetopt.o sig.o \ sig_block.o sig_catch.o sig_pause.o stralloc_cat.o stralloc_catb.o \ stralloc_cats.o stralloc_eady.o stralloc_opyb.o stralloc_opys.o \ stralloc_pend.o strerr_die.o strerr_sys.o subgetopt.o wait_nohang.o \ wait_pid.o ./load envdir unix.a byte.a collect2: ld terminated with signal 11 [Segmentation fault] /usr/bin/ld: make: *** [envdir] Error 1 Copying commands into ./command... cp: cannot stat `compile/svscan': No such file or directory
我也試過在debian擠壓上做,結果是相似的:http: //pastebin.com/VNAWLU57
我知道我可以從 ubuntu 和 debian 儲存庫安裝 daemontools,但是如何自己編譯呢?
與此同時,我能夠在 Debian Squeeze、Ubuntu 和 CentOS 6.0 上編譯和安裝,並且可以正常工作。我猜來自http://blog.tonycode.com/tech-stuff/setting-up-djbdns-on-linux的更新檔正在修復它。
1)安裝工具鏈
對於 Debian 和 Ubuntu:
apt-get install build-essential
對於 CentOS
yum groupinstall 'Development Tools'
按照http://cr.yp.to/daemontools/install.html上的說明進行操作,但不要執行
package/install
命令將更新檔從http://blog.tonycode.com/tech-stuff/setting-up-djbdns-on-linux應用到
src/conf-cc
現在執行
package/install
命令。