- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想在 AIX 上编译 proftpd 以使其可部署到其他服务器上,而无需在每台服务器上重新安装所有 gnu lib 库。
我已经设法动态编译它,但我无法使用选项编译它
LDFLAG="-Wl,-static"
喜欢官方 proftpd 文档中的建议。
这是我得到的 config.log 错误
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by configure, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ ./configure LDFLAGS=-Wl,-static --with-modules=mod_tls:mod_sql:mod_sql_mysql:mod_sql_passwd:mod_sftp:mod_sftp_sql --without-getopt --enable-openssl --with-includes=/opt/freeware/include:/opt/freeware/include/mysql/mysql/:/home/poney2/src_proftpd/libmath_header/ --with-libraries=/opt/freeware/lib:/opt/freeware/lib/mysql/mysql/:/home/poney2/src_proftpd/libmath_lib --prefix=/home/poney/proftpd_bin --exec-prefix=/home/poney/proftpd_bin/proftpd
## --------- ##
## Platform. ##
## --------- ##
hostname = serverName
uname -m = 00C876004C00
uname -r = 1
uname -s = AIX
uname -v = 6
/usr/bin/uname -p = powerpc
/bin/uname -X = unknown
/bin/arch = unknown
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = 6.1.0.0
/bin/universe = unknown
PATH: /usr/bin
PATH: /etc
PATH: /usr/sbin
PATH: /usr/ucb
PATH: /home/poney/bin
PATH: /usr/bin/X11
PATH: /sbin
PATH: .
## ----------- ##
## Core tests. ##
## ----------- ##
configure:2122: checking build system type
configure:2140: result: powerpc-ibm-aix6.1.0.0
configure:2162: checking host system type
configure:2177: result: powerpc-ibm-aix6.1.0.0
configure:2199: checking target system type
configure:2214: result: powerpc-ibm-aix6.1.0.0
configure:2346: checking for gcc
configure:2362: found /usr/bin/gcc
configure:2373: result: gcc
configure:2611: checking for C compiler version
configure:2618: gcc --version >&5
gcc (GCC) 4.4.6
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:2621: $? = 0
configure:2628: gcc -v >&5
Using built-in specs.
Target: powerpc-ibm-aix6.1.0.0
Configured with: ../gcc-4.4.6/configure --with-as=/usr/bin/as --with-ld=/usr/bin/ld --enable-languages=c,c++,fortran --prefix=/opt/freeware --enable-threads --enable-version-specific-runtime-libs --disable-nls --enable-decimal-float=dpd --host=powerpc-ibm-aix6.1.0.0
Thread model: aix
gcc version 4.4.6 (GCC)
configure:2631: $? = 0
configure:2638: gcc -V >&5
gcc: '-V' option must have argument
configure:2641: $? = 1
configure:2664: checking for C compiler default output file name
configure:2691: gcc -Wl,-static conftest.c >&5
ld: 0706-012 The -t flag is not recognized.
ld: 0706-012 The -a flag is not recognized.
ld: 0706-012 The -t flag is not recognized.
ld: 0706-027 The -i flag is ignored.
ld: 0706-012 The -c flag is not recognized.
collect2: ld returned 255 exit status
configure:2694: $? = 1
configure:2732: result:
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PR_BUILD_OPTS " 'LDFLAGS=-Wl,-static' '--with-modules=mod_tls:mod_sql:mod_sql_mysql:mod_sql_passwd:mod_sftp:mod_sftp_sql' '--without-getopt' '--enable-openssl' '--with-includes=/opt/freeware/include:/opt/freeware/include/mysql/mysql/:/home/poney2/src_proftpd/libmath_header/' '--with-libraries=/opt/freeware/lib:/opt/freeware/lib/mysql/mysql/:/home/poney2/src_proftpd/libmath_lib' '--prefix=/home/poney/proftpd_bin' '--exec-prefix=/home/poney/proftpd_bin/proftpd'"
| #define PR_PLATFORM "AIX6 (AIX6_1_0_0)"
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:2738: error: C compiler cannot create executables
See `config.log' for more details.
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_build=powerpc-ibm-aix6.1.0.0
ac_cv_env_CC_set=''
ac_cv_env_CC_value=''
ac_cv_env_CFLAGS_set=''
ac_cv_env_CFLAGS_value=''
ac_cv_env_CPPFLAGS_set=''
ac_cv_env_CPPFLAGS_value=''
ac_cv_env_CPP_set=''
ac_cv_env_CPP_value=''
ac_cv_env_LDFLAGS_set=set
ac_cv_env_LDFLAGS_value=-Wl,-static
ac_cv_env_LIBS_set=''
ac_cv_env_LIBS_value=''
ac_cv_env_build_alias_set=''
ac_cv_env_build_alias_value=''
ac_cv_env_host_alias_set=''
ac_cv_env_host_alias_value=''
ac_cv_env_target_alias_set=''
ac_cv_env_target_alias_value=''
ac_cv_host=powerpc-ibm-aix6.1.0.0
ac_cv_prog_ac_ct_CC=gcc
ac_cv_target=powerpc-ibm-aix6.1.0.0
## ----------------- ##
## Output variables. ##
## ----------------- ##
ADDL_CPPFLAGS=''
ADDL_DIRS=''
ALLOCA=''
AR=''
ARGZ_H=''
BINDIR=''
BUILD_SHARED_MODULE_OBJS=''
BUILD_STATIC_MODULE_ARCHIVES=''
BUILD_STATIC_MODULE_OBJS=''
CC='gcc'
CFLAGS=''
CONFIG_SHELL='/bin/sh'
CPP=''
CPPFLAGS=''
CURSES_LIBS=''
DATADIR=''
DEFS=''
DSYMUTIL=''
DUMPBIN=''
ECHO_C='ECHO_N=''
ECHO_T=''
EGREP=''
ENABLE_NLS=''
ENABLE_TESTS=''
EXEEXT=''
FGREP=''
GLUE_MODULE_OBJS=''
GREP=''
INCLTDL=''
INCLUDEDIR=''
INCLUDES=''
INSTALL_DATA=''
INSTALL_DEPS=''
INSTALL_PROGRAM=''
INSTALL_SCRIPT=''
INSTALL_STRIP=''
LD=''
LDFLAGS='-Wl,-static'
LIBADD_DL=''
LIBADD_DLD_LINK=''
LIBADD_DLOPEN=''
LIBADD_SHL_LOAD=''
LIBDIRS=''
LIBEXECDIR=''
LIBLTDL=''
LIBOBJS=''
LIBRARIES=''
LIBS=''
LIBTOOL=''
LIBTOOL_DEPS=''
LIB_DEPS=''
LIB_OBJS=''
LIPO=''
LN_S=''
LOCALSTATEDIR=''
LTDLDEPS=''
LTDLINCL=''
LTDLOPEN=''
LTLIBOBJS=''
LT_CONFIG_H=''
LT_DLLOADERS=''
LT_DLPREOPEN=''
MAIN_LDFLAGS=''
MAIN_LIBS=''
MODULE_DEPS=''
MODULE_LDFLAGS=''
NM=''
NMEDIT=''
OBJDUMP=''
OBJEXT=''
OSREL='-DAIX6_1_0_0'
OSTYPE='-DAIX6'
OTOOL64=''
OTOOL=''
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
PREFIX=''
RANLIB=''
SBINDIR=''
SED=''
SET_MAKE=''
SHARED_MODULE_DIRS=''
SHARED_MODULE_LIBS=''
SHARED_MODULE_OBJS=''
SHELL='/bin/sh'
STATIC_MODULE_DIRS=''
STATIC_MODULE_OBJS=''
STRIP=''
SYSCONFDIR=''
UTILS_LIBS=''
VERSION=''
ac_ct_CC='gcc'
ac_ct_DUMPBIN=''
bindir='${exec_prefix}/bin'
build='powerpc-ibm-aix6.1.0.0'
build_alias=''
build_cpu='powerpc'
build_os='aix6.1.0.0'
build_vendor='ibm'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE}'
dvidir='${docdir}'
exec_prefix='/home/poney/proftpd_bin/proftpd'
host='powerpc-ibm-aix6.1.0.0'
host_alias=''
host_cpu='powerpc'
host_os='aix6.1.0.0'
host_vendor='ibm'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_group=''
install_user=''
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
lt_ECHO='print -r'
ltdl_LIBOBJS=''
ltdl_LTLIBOBJS=''
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
pkgconfigdir=''
prefix='/home/poney/proftpd_bin'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
subdirs=''
sys_symbol_underscore=''
sysconfdir='${prefix}/etc'
target='powerpc-ibm-aix6.1.0.0'
target_alias=''
target_cpu='powerpc'
target_os='aix6.1.0.0'
target_vendor='ibm'
## ----------- ##
## confdefs.h. ##
## ----------- ##
#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#define PR_BUILD_OPTS " 'LDFLAGS=-Wl,-static' '--with-modules=mod_tls:mod_sql:mod_sql_mysql:mod_sql_passwd:mod_sftp:mod_sftp_sql' '--without-getopt' '--enable-openssl' '--with-includes=/opt/freeware/include:/opt/freeware/include/mysql/mysql/:/home/poney2/src_proftpd/libmath_header/' '--with-libraries=/opt/freeware/lib:/opt/freeware/lib/mysql/mysql/:/home/poney2/src_proftpd/libmath_lib' '--prefix=/home/poney/proftpd_bin' '--exec-prefix=/home/poney/proftpd_bin/proftpd'"
#define PR_PLATFORM "AIX6 (AIX6_1_0_0)"
PS:我已经尝试了 -Bstatic -all-static 和 -static 标志,但它们被忽略了。
对我来说,部分解决方案是修改 libpath 以向其中添加一个文件夹,我将把所有 lib 打包为一个 tar 文件,并部署包含 lib 的 proftpd 安装文件夹,它不干净但它确实有效:
LDFLAGS="-Wl,-blibpath:/a/new/lib/path"
我没有验证我的答案,因为它不是真正的答案,但这可能对你们中的一些人有所帮助。
PS:请注意,这是与 IBM XL C 编译器一起工作的,并且应该也可以在 GCC 上工作
最佳答案
配置脚本的输出显示:
configure:2691: gcc -Wl,-static conftest.c >&5
ld: 0706-012 The -t flag is not recognized.
ld: 0706-012 The -a flag is not recognized.
ld: 0706-012 The -t flag is not recognized.
ld: 0706-027 The -i flag is ignored.
ld: 0706-012 The -c flag is not recognized.
collect2: ld returned 255 exit status
这表明 -Wl
选项成功将选项传递给 ld,但 ld 不识别该选项。当您使用 AIX ld 时,它需要使用 -dn
以及 -bsvr4
和链接行,因此,例如标志选项应该是 -Wl ,-bsvr4 -Wl,-dn
.
在 AIX 上 ld
的手册页末尾有一条注释指出:
The application can also have to be linked again whenever an updated release of the operating system is installed. Any application that is statically linked is not binary portable from any fix or release level to any other fix or release level.
根据proftpd最终链接行的复杂程度,可以使用选项-bstatic
和-bdynamic
来提示加载特定项的静态库;所以在我的例子中,我的最终链接行看起来像:
gcc -o proftpd <lots of .o files> -L/home/user/Development/experiments/proftpd-1.3.4d/lib -lsupp -lcrypt -ldl -L/home/user/Development/experiments/proftpd-1.3.4d/lib/libcap -lcap -lpam
现在在这种情况下,这意味着它依赖于 libcrypt,它不是默认附带的库,所以我重新调整链接行,使其包含 -lcrypt
包装:
-Wl,-bstatic -lcrypt -Wl,-bdynamic
现在它与 crypt 库的静态版本链接,并且不再将其作为运行时链接依赖项的一部分提及。
作为对此的补充,您应该只静态链接相关操作系统默认未提供的库,我注意到 proftpd 支持动态加载模块,这意味着您应该只静态链接所需的模块.
不过,一般来说,如果您要在另一个系统上进行部署,我建议您为正在使用的依赖库创建静态拷贝,并将它们显式传递到配置选项中。这使构建环境与运行时环境保持清洁。
关于c++ - AIX 上 proftpd 的静态编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20193787/
使用 Ubuntu 18.04 LTS 和 ProFTPD 1.3.5e。 我有 ProFTPD 在端口 20、21 上提供 FTP 服务并且运行良好。 当我添加/etc/proftpd/conf.d
我已阅读 ftp 上的所有命令,其中不包含更改密码的命令。 我是proftpd的用户,我自己登录proftpd后如何更改密码,而不是通过管理员登录? 用户可以在ssh服务中修改自己的密码,不用通过ad
如果有人能帮我解决 ProFTPd 的 PathAllowFilter 的正则表达式,我将不胜感激。 这是我到目前为止的正则表达式: (.mp3|.aac|.m4a)$ 它只允许 mp3、aac 和
在我的 ftp 树中有一个我不想通过匿名访问的目录。 我能够隐藏有问题的目录和目录中的所有文件。 我没能做到的是阻止某人导航到该目录。 因此,如果有人导航到 ftp.site.com,他们将不会看到“
我正在尝试在 proftpd 服务器上指定一个目录,该目录不允许用户将文件上传到特定目录。在更新期间,我不希望向此目录写入任何内容,但更重要的是,我希望向用户返回一条有意义的消息。我发现我可以在配置中
我想知道是否有检查上传到您的 ftp 服务器是否成功的最佳实践。 我正在使用的系统有一个上传目录,其中包含上传文件的每个用户的子目录。 这些目录中的文件只是临时的,一旦处理它们就会被丢弃。 系统循环遍
我对 linux Ubuntu 很陌生,并从 Windows 迁移过来。 我遇到的问题与ftp有关。这就是我想要做的。 我的网站位于/var/www。例如,每个网站都有自己的根 /var/www/si
我已经在我的 macOS Mojave 上安装了 XAMPP。当我运行这个命令 'sudo/Applications/XAMPP/xamppfiles/xampp start' 我收到以下错误: 为
我已经问了一个安静的similar question但事实上我现在改变了主意。 我想编译 proftpd 并将其使用的库的拷贝添加到所选的安装目录中。 假设我在编译中定义了一个前缀,例如: /usr/
我正在尝试在 Ubuntu 服务器 11.10 64 位上安装带有 MySQL 的 ProFTPd。但我无法登录,总是显示“登录错误” 这是我的 sql.conf 文件: # add the foll
我正在尝试限制 proftpd 中特定用户(例如 bob)的访问。我有一些用户可以访问整个服务器,但 1 个特定用户应该只能访问 2 个文件夹。有这样的结构: /var/www/site/ /var/
我正在尝试解决这个问题: 2014-04-07 14:00:58,628 srv proftpd[10143] srv (pfsense.localdomain[192.168.0.1]): FTP
我正在尝试使用 Proftpd 配置 SFTP。我已经使用 Unix 用户成功配置了 SFTP,但现在我想使用虚拟用户,因为我将有大量用户需要添加/删除。我希望用户使用用户名/密码登录。 为此,我首先
无法进入我的 ftp 服务器。我使用 proftpd 1.3.4a 和 mod_tls/2.4.3。 我怀疑 TLSOptions 指令有误 TLSEngine
我已将 ProFTPD 配置为在 Plesk 支持的服务器上记录所有身份验证。自 Plesk 10 以来,默认情况下不设置此设置(为什么...)。我想配置 fail2ban,以检测不成功的登录尝试以防
我的站点上有一些目录,我希望匿名 ftp 用户可以访问这些目录,但它们不应该是可见的。所以我不希望他们在键入“ls”或“dir”时出现,但我希望用户能够键入“cd secret_dir”。 我希望这样
我尝试将proftpd配置为与SFTP一起使用并与虚拟用户一起使用,但是尝试了几种方式后,它不适用于虚拟用户。仅适用于系统用户 相对于下面问题的一些配置,这里是完整的proftpd.conf Auth
我找了很久也没找到解决办法。我正在尝试将文件从我的计算机上传到我的 ftp 服务器。但每次我尝试时,我都只创建一个 0kb 文件。 我已经尝试过 关闭防火墙 在文件夹上执行 chmod -R 775
我使用这段代码从 mod_exec proftpd 执行外部脚本。 执行引擎开启 ExecLog/opt/proftpd_mod_exec.log ExecOptions logStderr logS
我正在尝试使用 phpseclib 在 PHP 上安装 proftpd。 我正在使用此命令开始安装: $sshconid->exec("apt-get install proftpd-basic -y
我是一名优秀的程序员,十分优秀!