Я хочу запустить двоичный файл aapt на своем общем хостинге, чтобы использовать его в некоторых сценариях. Я установил aapt локально (sudo apt install aapt
) и загрузил его в папку home/user/bin
на виртуальном хостинге с установленным битом выполнения. Когда я запускаю его через ssh, я получаю эту ошибку:
aapt: error while loading shared libraries: libaapt.so.0: cannot open shared object file: No such file or directory
Поэтому я нахожу, какие библиотечные файлы требуются локально для aapt, собирать и архивировать их. Загрузите и распакуйте их в папку home/user/lib
.
zip -j libs.zip $(ldd /usr/bin/aapt | grep "=>" | sed -e "s/(.*//" -e "s/.*=> //")
Когда я выполняю aapt сейчас на общем хостинге (или любую другую команду в этом отношении), я получаю ошибку сегментации.
Поэтому я перемещаю все файлы библиотеки в home/user/lib/aapt
и выполняю aapt. Каждый раз, когда я получаю сообщение об ошибке отсутствующего файла lib, я перемещаю отсутствующую библиотеку обратно в папку home/user/lib
пока не получу следующее:
lib:
aapt/
lib7z.so
libaapt.so.0
libandroidfw.so.0
libbacktrace.so.0
libbase.so.0
libcutils.so.0
liblog.so.0
libpng16.so.16
libunwind.so.0
libutils.so.0
libziparchive.so.0
lib/aapt:
libc.so.6*
libexpat.so.1
libgcc_s.so.1
libm.so.6
libpthread.so.0*
libstdc++.so.6
libz.so.1
Когда я запускаю aapt сейчас, я получаю следующие ошибки:
aapt: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by aapt)
aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by aapt)
aapt: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/user/lib/libaapt.so.0)
aapt: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/user/lib/libaapt.so.0)
aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/user/lib/libaapt.so.0)
aapt: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by /home/user/lib/libutils.so.0)
aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/user/lib/libutils.so.0)
aapt: /lib64/libz.so.1: version `ZLIB_1.2.9' not found (required by /home/user/lib/libpng16.so.16)
aapt: /lib64/libz.so.1: version `ZLIB_1.2.3.4' not found (required by /home/user/lib/libpng16.so.16)
aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/user/lib/libpng16.so.16)
aapt: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /home/user/lib/libandroidfw.so.0)
aapt: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /home/user/lib/libandroidfw.so.0)
aapt: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/user/lib/libandroidfw.so.0)
aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/user/lib/libandroidfw.so.0)
aapt: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /home/user/lib/liblog.so.0)
aapt: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by /home/user/lib/liblog.so.0)
aapt: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/user/lib/liblog.so.0)
aapt: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/user/lib/liblog.so.0)
aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/user/lib/liblog.so.0)
aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/user/lib/libcutils.so.0)
aapt: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by /home/user/lib/libcutils.so.0)
aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/user/lib/libbacktrace.so.0)
aapt: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by /home/user/lib/libbacktrace.so.0)
aapt: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/user/lib/libbacktrace.so.0)
aapt: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/user/lib/libbacktrace.so.0)
aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/user/lib/libziparchive.so.0)
aapt: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/user/lib/libziparchive.so.0)
aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/user/lib/libbase.so.0)
aapt: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /home/user/lib/libbase.so.0)
aapt: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/user/lib/libbase.so.0)
aapt: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/user/lib/libbase.so.0)
aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/user/lib/libunwind.so.0)
aapt: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/user/lib/lib7z.so)
aapt: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/user/lib/lib7z.so)
aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/user/lib/lib7z.so)
Если я перемещаю файлы libc.so.6 или libstdc++. So.6 в папку lib, я снова получаю ошибку сегментации, поскольку они мешают файлам библиотеки хост-системы, которые, как я предполагаю, зависят от другой версии.
Это где я застрял, и мой вопрос заключается в том, как сделать двоичный файл AAPT для разных библиотек в папке AAPT?
Я предпочтительно не хочу делать какую-либо перекомпиляцию как статический двоичный файл, так как это выходит за рамки моих возможностей, и хочу пока оставить его таким.