Как я могу установить s3cmd на Mac OS X Yosemite?

Я использую Mac OS X Yosemite и хочу установить s3cmd от S3Tools. Вот краткое изложение того, что я сделал до сих пор:

  1. Скачал и распаковал .tar.gz,
  2. Переместил результирующий каталог в /usr/local/src
  3. cd /usr/local/src/s3cmd-1.5.0
  4. sudo python setup.py install
  5. s3cmd --configure, отображает сообщение об ошибке Please install the python dateutil module
  6. Установлено Homebrew
  7. brew install python (установить пипс)
  8. pip install python-dateutil
  9. s3cmd --configure, или же s3cmd du s3://bucket-name

На шаге 9 я все еще получаю сообщение об ошибке dateutil модуль:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
ImportError trying to import dateutil.parser. 
Please install the python dateutil module: 
$ sudo apt-get install python-dateutil
   or 
$ sudo yum install python-dateutil
   or 
$ pip install python-dateutil
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

3 ответа

Решение

Или вы можете сделать это простым и использовать Homebrew для установки / управления многими инструментами AWS, включая s3cmd

  1. Установите Homebrew, выполнив эту команду

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  2. Ищите код, который вы хотите

    $ brew search s3
    s3-backer  s3cmd      s3fs   s3sync     unfs3
    
  3. Установите s3cmd

    brew install s3cmd
    

Установщик выполнит всю грязную работу, включая получение зависимостей и символическую ссылку на вашу папку /Applications (в зависимости от устанавливаемого приложения).

  1. Хотите последнюю версию?

    brew update
    

Я использовал это для инструментов awscli в течение многих месяцев с большим успехом. GL.

  1. Скачать источник python-dateutil
  2. Извлеките его, например, /usr/local/src/python-dateutil-2.4.0
  3. cd /usr/local/src/python-dateutil-2.4.0 (или в какой каталог вы его распаковали)
  4. sudo python2.7 setup.py install
  5. s3cmd --configure

(Отвечая на мой собственный вопрос здесь. Если кто-то может сказать мне, почему это работает, и предыдущий подход не хотел бы знать!)

Я не хотел собирать его из исходников, иbrewжаловался на необходимость обновления xcode (*вздох)... поэтому вместо этого я создал образ докера.

Надеюсь, это кому-то поможет.

Применение

      # setup
docker run -it --rm -v "$(pwd):/root" mountainpass/s3cmd s3cmd --configure

# run
docker run -it --rm -v "$(pwd):/root" mountainpass/s3cmd s3cmd sync ./yourfolder \
    s3://yourbucket/ \
    --acl-public \
    --add-header=Cache-Control:max-age=3600 \
    --recursive
Другие вопросы по тегам