編譯 1.0.36

  • export PATH=/usr/local/msdk-4.3.6-mips-EL-2.6.12.6-0.9.30.3/bin:$PATH
    加入 mips-linux-gcc 的路徑,在做 configure 才不會找不到,雖然可以使用 prefix 參數來指定,不過好像沒效,懶得查為什麼。
  • export CFLAGS="-DANON_CAN_CHANGE_PERMS -DANON_CAN_DELETE -DANON_CAN_RESUME -DANON_CAN_RENAME -I/usr/local/msdk-4.3.6-mips-EL-2.6.12.6-0.9.30.3/include"
    -I: 新增 include 路徑,試驗的結果是沒加也沒關係,不知為啥。
    -DANON_CAN_CHANGE_PERMS: 允許匿名者可以執行 chmod。
    -DANON_CAN_DELETE: 允許匿名者可以刪除檔案。
    -DANON_CAN_RESUME: 允許匿名者可以上傳覆蓋檔案。
    -DANON_CAN_RENAME: 允許匿名者可以變更檔案名稱。
  • ./configure --with-virtualchroot --host=mips-linux --with-rfc2640
    --with-virtualchroot: 是用來開啟 pureftp 使用 symbolic link 的功能。預設是使用 chroot 指令,造成一些指到外面的 link 會無法開啟。
    --host=mips-linux: 用來指定 cross-compiler 的 prefix。
    --with-rfc2640: 用來做多國語言編碼的轉換,需要 libiconv 的套件。
  • libiconv.a 要先拷貝到 /usr/local/lib 才能做 configure,不然在做 make 時會找不到 libiconv.a,做完 configure 再拷貝 libiconv.a 一樣會 make 失敗。
  • make

安裝

  • 拷貝 src/pure-ftpd 到目標板上。
  • 修改 /etc/passwd 新增 ftp::1001:1001::/tmp:/bin/sh。
  • 執行 ./pure-ftpd -e -M -U 000:000 -9 Big5 &

參數

  • -A,--chrooteveryone: 限製每一個使用者只能在自己的home目錄下活動。。
  • -e,--anonymousonly: 只允許匿名者登入。
  • -M,--anonymouscancreatedirs: 允許匿名者建立目錄。
  • -U,--umask : 設定上傳檔案、目錄(含建立新目錄)的預設權限,177:077 表示檔案的預設權限為 600,目錄為 700。
  • -9,--clientcharset: 設定輸出到 client 的字集碼。這個可以修正 IE 連線時會看到亂碼的問題,因為 IE 看不懂 UTF-8。

編譯 1.0.22

1.0.22 以後的版本在強制取消下載都是回應 150,1.0.22 則回應 450。造成一些套件無法處理取消下載的問題。

  • export PATH=/usr/local/msdk-4.3.6-mips-EL-2.6.12.6-0.9.30.3/bin:$PATH
    加入 mips-linux-gcc 的路徑,在做 configure 才不會找不到,雖然可以使用 prefix 參數來指定,不過好像沒效,懶得查為什麼。
  • export CFLAGS="-DANON_CAN_CHANGE_PERMS -DANON_CAN_DELETE -DANON_CAN_RESUME -DANON_CAN_RENAME -I/usr/local/msdk-4.3.6-mips-EL-2.6.12.6-0.9.30.3/include"
    -I: 新增 include 路徑,試驗的結果是沒加也沒關係,不知為啥。
    -DANON_CAN_CHANGE_PERMS: 允許匿名者可以執行 chmod。
    -DANON_CAN_DELETE: 允許匿名者可以刪除檔案。
    -DANON_CAN_RESUME: 允許匿名者可以上傳覆蓋檔案。
    -DANON_CAN_RENAME: 允許匿名者可以變更檔案名稱。
  • 修改 configure,把一些 cross compiler 無法辨識的地方做修正。
  • ac_cv_func_realloc_0_nonnull=yes ac_cv_func_malloc_0_nonnull=yes ./configure --with-virtualchroot --host=mips-linux --with-rfc2640
    ac_cv_func_realloc_0_nonnull=yes: 強制使用 realloc,沒設定會產生找不到 rpl_realloc 的錯誤。
    ac_cv_func_malloc_0_nonnull=yes: 強制使用 malloc,沒設定會產生找不到 rpl_malloc 的錯誤。
    --with-virtualchroot: 是用來開啟 pureftp 使用 symbolic link 的功能。預設是使用 chroot 指令,造成一些指到外面的 link 會無法開啟。
    --host=mips-linux: 用來指定 cross-compiler 的 prefix。
    --with-rfc2640: 用來做多國語言編碼的轉換,需要 libiconv 的套件。
  • libiconv.a 要先拷貝到 /usr/local/lib 才能做 configure,不然在做 make 時會找不到 libiconv.a,做完 configure 再拷貝 libiconv.a 一樣會 make 失敗。
  • make

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()