記錄一下交叉編譯tacacs_plus 服務的過程
標題獲取源**
# 解壓原始碼包
pwd# 修改makefile 增加交叉編譯的配置
real_daemon_dir=/usr/sbin
cross_compile_root=/home/allen/workspace/toolchains/powerpc-e5500-linux-gnu_linux-3.12.50_binutils-2.25.1_gcc-5.2.0_glibc-2.19_32big
cross_compile_prefix=$(cross_compile_root)/bin/powerpc-e5500-linux-gnu-
cc=$(cross_compile_prefix)gcc
cflags+=-werror
cflags+=-i$(cross_compile_root)
#修改makefile 在linux欄位中增加編譯巨集-dsys_errlist_defined
linux:
@make real_daemon_dir=$(real_daemon_dir) style=$(style) \
libs= ranlib=ranlib arflags=rv aux_obj=setenv.o \
netgroup= tli= extra_cflags="-dbroken_so_linger -dsys_errlist_defined" all
# 執行編譯
make linux
最終生成的.a庫和 bin檔案就在當前的目錄中。
編譯tacacs±f4.0.4.27a
有了libwrap.a 庫以後,可以開始編譯tacacs 伺服器端,這個時automake生成的工程,交叉編譯比較簡單
# 設定一下config.cache, 否則會在後面的配置過程**現報錯資訊「checking whether setpgrp takes no argument... configure: error: cannot check setpgrp when cross compiling」
echo "ac_cv_func_setpgrp_void=yes" > config.cache
# 配置交叉編譯工具鏈
./configure --host=ppc-linux --prefix=/home/allen/workspace/tacacs_build/repo-tacac-plus \
cc=/home/allen/workspace/toolchains/powerpc-e5500-linux-gnu_linux-3.12.50_binutils-2.25.1_gcc-5.2.0_glibc-2.19_32big/bin/powerpc-e5500-linux-gnu-gcc \
--config-cache
# 配置完成後,執行make &&make install
最後生成的二進位制資訊
../repo-tacac-plus/
├── bin
│ ├── tac_plus
│ └── tac_pwd
├── include
│ └── tacacs.h
├── lib
│ ├── libtacacs.a
│ ├── libtacacs.la
│ ├── libtacacs.so -> libtacacs.so.1.0.0
│ ├── libtacacs.so.1 -> libtacacs.so.1.0.0
│ └── libtacacs.so.1.0.0
├── share
│ ├── man
│ │ ├── man5
│ │ │ └── tac_plus.conf.5
│ │ └── man8
│ │ ├── tac_plus.8
│ │ └── tac_pwd.8
│ └── tacacs+
│ ├── do_auth.py
│ ├── tac_convert
│ └── users_guide
8 directories, 14 files
建立配置指令碼
touch /etc/tacas_plus.conf
accounting file = /var/log/tac_plus.acct
key = testkey123
user = testuser1
}user = testuser2
}
啟動tac_plus
tac_plus -c /etc/tac_plus.conf -g -g -d 512
登入驗證server是否可用
伺服器部署在192.168.21.135
使用tacc 引數匹配上面對應的key,service, protocol 資訊
[root]# ./tacc -tra -u testuser1 -p testpass123 -s 192.168.21.135 -r 192.168.21.135 -k testkey123 \
-s ppp -p ip -y /dev/pts/3
authentication ok
authorization ok: (service granted)
accounting: start ok
accounting: stop ok
檢視account記錄# cat /var/log/tac_plus.acct
aug 26 03:31:16 192.168.21.133 testuser1 /dev/pts/3 192.168.21.133 start start_time=1598439430 task_id=5496 service=ppp protocol=ip
aug 26 03:31:16 192.168.21.133 testuser1 /dev/pts/3 192.168.21.133 stop stop_time=1598439430 task_id=5496
[root@23-slot1:/root]#
編譯 交叉編譯
交叉編譯含義 是指在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行 例 常說的x86 linux平台 指inter x86體系結構及linux for x86作業系統 x86 winnt平台 指inter x86體系結構及win...
交叉編譯(2) 交叉編譯鏈
什麼是交叉編譯鏈 明白了什麼是交叉編譯,那我們來看看什麼是交叉編譯鏈。首先編譯過程是按照不同的子功能,依照先後順序組成的乙個複雜的流程,如下圖 那麼編譯過程包括了預處理 編譯 彙編 鏈結等功能。既然有不同的子功能,那每個子功能都是乙個單獨的工具來實現,它們合在一起形成了乙個完整的工具集。同時編譯過程...
交叉編譯 Go 交叉編譯 跨平台編譯
golang 支援交叉編譯,在乙個平台上生成另乙個平台的可執行程式 cgo enabled 0 goos linux goarch amd64 go build main.go cgo enabled 0 goos windows goarch amd64 go build main.go cgo ...