交叉編譯tacacs plus

2021-10-23 20:19:43 字數 3193 閱讀 7539

記錄一下交叉編譯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 ...