Capistrano tar hatası: Bu bir tar arşivi gibi görünmüyor


103
 INFO [050fe961] Running mkdir -p /home/rails/rails-
capistrano/releases/20140114234157 on staging-rails
DEBUG [050fe961] Command: cd /home/rails/rails-capistrano/repo && ( PATH=/opt/ruby/bin:$PATH GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/rails/git-ssh.sh mkdir -p /home/rails/rails-capistrano/releases/20140114234157 )
 INFO [050fe961] Finished in 0.142 seconds with exit status 0 (successful).
 INFO [2dea2fe5] Running git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157 on staging-rails
DEBUG [2dea2fe5] Command: cd /home/rails/rails-capistrano/repo && ( PATH=/opt/ruby/bin:$PATH GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/rails/git-ssh.sh git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157 )
DEBUG [2dea2fe5]    fatal: Not a valid object name
DEBUG [2dea2fe5]    tar: This does not look like a tar archive
DEBUG [2dea2fe5]    tar: 
DEBUG [2dea2fe5]    Exiting with failure status due to previous errors      

İki konuda kafam karıştı:

  1. Capistrano neden git archiveburada çalışıyor :
    git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157

  2. Neden tarbaşarısız oluyor?

Yanıtlar:


323

Varolmayan şubeyi git'ten çektiğimi anlayana kadar aynı sorunu yaşadım.


53
Ne kadar alnına şaplak.
Grant Birchmeier

20
Ben de
aptalım

12
Cevabınızla ikinci kez karşılaştığımda, bu ikinci kez oldu, kendimi aptal hissediyorum!
Fabian de Pabian

11
Bu sorunun bu kadar çok olumlu oyu olmasına sevindim. En azından yalnız kalmıyorum.
parçalama

6
Cidden, bu muhtemelen 42. kez aynı Google aramasını yapıyorum ve bu cevabı okuyorum xD
Cyril Duchon-Doris

19

App_name / repo'yu silmek de benim için bu sorunu çözdü.


1
Bu, kap dağıtımı ile ilgili repo sorunları olduğunda, ancak her zaman değil, bazen benim için çalıştı.
Jorge Orpinel

15

Bu, dağıtılacak sunucudaki depo dağınık olduğunda gerçekleşir. Capistrano'nun varsayılan olarak koyacağı çıplak git deposundan bahsediyoruz /var/www/$application/repo(diğer insanların referansı için).

Sizin durumunuzda, yerel bir özelliği / Capistrano şubesi git archive feature/Capistranoyoktur, bu nedenle çalıştırıldığında hiçbir şey bu |boruya verilmez . Onaylamak için sunucuya ssh, / home / rails / rails-capistrano / repo'ya cd yapın ve çalıştırın git branch.

  1. Seçili dalın ağacını dışa aktarmanın bir yolu olarak git arşivini çalıştırıyor . git arşiv Capistrano o yönlendirir böylece "standart çıkışa dışarı yazar" katran yeni sürüm dizine hemen sıkıştırmayı için arşiv. (Neden Capistrano git checkout yerine bunu seçti beni mağlup ediyor.)

  2. tar hiçbir şey almadığı için başarısız olur d:

Sorun gidermenin iki olası çözümü / yolunu düşünebilirim:

  • ssh'ı sunucuya yerleştirin ve repo klasörünü (örn. / home / rails / rails-capistrano / repo) @lugolabs tarafından belirtildiği gibi manuel olarak silin
  • sunucunun repo'sunun beklediğiniz uzaktan kumandayı kullandığından emin olun (ssh in, repo / 'ya cd yapın ve çalıştırın git remote -v) - sadece :repo_urldeploy.rb dosyanızı güncellemeniz (ve repo / dizini silmeniz ) gerekebilir .

Mevcut depoyu silmek yerine başka bir yolumuz var mı?
hainguyen

4

Bu klasörün bir git çekme yoluyla doldurulduğunu düşünüyorum, bu yüzden boş olmamalı. Boş olduğunu görürseniz, sorun tarball'dan değil git'ten kaynaklanır.

Yaşadığım sorun, capistrano deploy.rb depomun URL'sinin çalıştığım projeden farklı bir URL'ye ayarlanmış olmasıydı. Bu sorunu gidermek için sunucuda oturum açmam ve gerekli olan app_name / repo klasörünü silmem gerekiyordu. orijinal bozuk uzak URL'yi önbelleğe alıyor.


4
googling millet için: mevcut şubeyi ayarlayıp ayarlamadığınızı da kontrol edin !!! ... :) benim için çalıştı
equivalent8

4

Bu hataya her vurduğumda bunun nedeni benim deploy / environment .rb dosyamda belirtilen dalın git'e kontrol edilmemiş olmasıdır. Bir add / commit / git push origin branch_name yapın ve bu muhtemelen işlerin yürümesini sağlayacaktır.


0

Geliştirme için Bedrock Roots (wordpress), dağıtımlar için capistrano ve git flow kullanıyorum. Yerel olarak düzeltme / xxx dalındayken dağıtılmaya çalışıldığında bu hatayla karşılaşıldı. Böylece akımı (şube geliştirmek için birleştirilmiş değişiklikler) bitirdim ve ardından başarıyla dağıtıldım.


Develop ile birleşmenin neden sorununuzu çözdüğünü anlıyor musunuz?
Eric Francis

Diğer şubeleri dağıtmak işe yarayabilir, ancak asıl soru hala konuşlandırmaya çalıştığınız belirli bir şube çalışmıyor? Bir cevabım olabilir.
Jorge Orpinel

@EricFrancis Aslında, şimdi yapıyorum) Oylanan yanıtın belirttiği gibi, düzeltme uzaktan kumandada mevcut değildi (
kapistrano'nun dağıtıldığı yer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.