首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在EC2上编译s3fs?

如何在EC2上编译s3fs?
EN

Stack Overflow用户
提问于 2016-06-30 20:40:52
回答 1查看 131关注 0票数 0

已按照上给出的步骤操作- https://forums.aws.amazon.com/thread.jspa?messageID=475840

代码语言:javascript
复制
wget http://s3fs.googlecode.com/files/s3fs-r177-source.tar.gz
tar zxf s3fs-r177-source.tar.gz
apt-get install build-essential libxml2-dev libfuse-dev libcurl4-openssl-dev

“make install”的这一步出错。

代码语言:javascript
复制
# cd s3fs; make install
g++ -ggdb -Wall -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse  -pthread -lfuse    -lcurl   -I/usr/include/libxml2 -lxml2 -lcrypto s3fs.cpp -o s3fs
s3fs.cpp: In function ‘std::string calc_signature(std::string, std::string, std::string, curl_slist*, std::string)’:
s3fs.cpp:426:18: warning: value computed is not used [-Wunused-value]
    BIO_flush(b64);
                  ^
s3fs.cpp: In function ‘int put_local_fd(const char*, headers_t, int)’:
s3fs.cpp:759:63: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 4 has type ‘__off_t {aka long int}’ [-Wformat=]
  syslog(LOG_INFO, "upload path=%s size=%llu", path, st.st_size);
                                                               ^
s3fs.cpp: In function ‘int s3fs_readlink(const char*, char*, size_t)’:
s3fs.cpp:852:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (st.st_size < size)
                      ^
s3fs.cpp: At global scope:
s3fs.cpp:440:1: warning: ‘size_t readCallback(void*, size_t, size_t, void*)’ defined but not used [-Wunused-function]
 readCallback(void *data, size_t blockSize, size_t numBlocks, void *userPtr) {
 ^
/tmp/ccv8Wi6L.o: In function `alloc_curl_handle':
/s3fs/s3fs.cpp:159: undefined reference to `curl_easy_init'
/s3fs/s3fs.cpp:164: undefined reference to `curl_easy_reset'
std::string, curl_slist*, std::string)':
/tmp/ccv8Wi6L.o:/s3fs/s3fs.cpp:660: more undefined references to `curl_easy_setopt' follow
/tmp/ccv8Wi6L.o: In function `s3fs_getattr':
/s3fs/s3fs.cpp:814: undefined reference to `curl_easy_getinfo'
/tmp/ccv8Wi6L.o:/s3fs/s3fs.cpp:919: more undefined references to `curl_easy_setopt' follow
/tmp/ccv8Wi6L.o: In function `s3fs_readdir':
/s3fs/s3fs.cpp:1351: undefined reference to `curl_multi_perform'
/tmp/ccv8Wi6L.o: In function `s3fs_init':
/s3fs/s3fs.cpp:1467: undefined reference to `CRYPTO_num_locks'
/tmp/ccv8Wi6L.o: In function `main':
/s3fs/s3fs.cpp:1588: undefined reference to `fuse_opt_parse'
/tmp/ccv8Wi6L.o: In function `__static_initialization_and_destruction_0':
/s3fs/s3fs.cpp:370: undefined reference to `EVP_sha1'
stuff_t>)':
/s3fs/s3fs.cpp:1209: undefined reference to `curl_slist_free_all'
collect2: error: ld returned 1 exit status
make: *** [all] Error 1

它抛出错误-指示在EC2上安装S3FS的tar文件已损坏。

EN

回答 1

Stack Overflow用户

发布于 2016-06-30 20:40:52

相反,要遵循相同url中提到的正确步骤(在注释中)

代码语言:javascript
复制
wget http://s3fs.googlecode.com/files/s3fs-1.71.tar.gz
tar xvzf s3fs-1.71.tar.gz
cd s3fs-1.71/
./configure --prefix=/usr
make
make install (as root)

安装完成后,创建用于通过EC2访问S3存储桶的凭据和存储

代码语言:javascript
复制
touch /etc/passwd-s3fs && chmod 640 /etc/passwd-s3fs && echo 'AccessKey:SecretKey' > /etc/passwd-s3fs

注意- AccessKey和SecretKey是与EC2、S3关联的AWS帐户的密钥

代码语言:javascript
复制
/usr/bin/s3fs o-s3 /mnt/

注意- /mnt/ -是1要挂载S3存储桶的目录o-s3是s3存储桶的名称

检查S3在ec2上的挂载是否成功

代码语言:javascript
复制
grep s3fs /etc/mtab

预期输出- s3fs /mnt fuse.s3fs rw,nosuid,nodev 0 0

代码语言:javascript
复制
cd /mnt/
ls

加载存储在S3存储桶中的文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38123414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档