"Errno:: EACCESS ... permission denied"

Właśnie przeniosłem pliki projektu na nowy komputer na dysku D:, podczas gdy moje programy (Git, Node Js, Ruby, itp.) są na dysku C:.

Próbowałem uruchomić compass watch Po edycji pliku SASS, ale napotkałem ten błąd:

Errno::EACCES on line ["897"] of C: Permission denied - <D:/project_dir/stylesheets/app.css20140323-10532-gziux, D:/project_dir/stylesheets/app.css>
Run with --trace to see the full backtrace

Jestem nowicjuszem z Rubim w wierszu poleceń (ponieważ używam go tylko do celów tworzenia stron internetowych). Co muszę zrobić, aby zezwolić na uprawnienia?

Proszę dać mi znać, jeśli mogę podać więcej informacji.

Edytuj: Oto co zostało zwrócone po uruchomieniu compass watch --trace:

D:\project_dir>compass watch --trace
>>> Change detected at 21:53:53 to: app.scss
overwrite stylesheets/app.css
Errno::EACCES on line ["897"] of C: Permission denied - (D:/project_dir/stylesheets/app.css20140323-14712-11v62k7, D:/project_dir/stylesheets/app.css)
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/sass-3.2.18/lib/sass/util.rb:897:in `atomic_create_and_write_file'
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/lib/compass/actions.rb:58:in `write_file'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/lib/compass/compiler.rb:143:in `compile'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/lib/compass/compiler.rb:118:in `compile_if_required'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/lib/compass/compiler.rb:103:in `block (2 levels) in run'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/lib/compass/compiler.rb:101:in `each'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/lib/compass/compiler.rb:101:in `block in run'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/lib/compass/compiler.rb:126:in `timed'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/lib/compass/compiler.rb:100:in `run'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/lib/compass/commands/watch_project.rb:147:in `recompile'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/lib/compass/commands/watch_project.rb:68:in `perform'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/lib/compass/commands/base.rb:18:in `execute'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/lib/compass/commands/project_base.rb:19:in `execute'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/lib/compass/exec/sub_command_ui.rb:43:in `perform!'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/lib/compass/exec/sub_command_ui.rb:15:in `run!'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/bin/compass:30:in `block in <top (required)>'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/bin/compass:44:in `call'
    C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/compass-0.12.4/bin/compass:44:in `<top (required)>'
    C:/Ruby200-x64/bin/compass:23:in `load'
    C:/Ruby200-x64/bin/compass:23:in `<main>'
>>> Compass is polling for changes. Press Ctrl-C to Stop.
Nie wiem, co z tego zrobić.

Od czytania ( https://github.com/chriseppstein/compass/issues/1406) wierzę, że to ma coś wspólnego z uprawnieniami lub ścieżką dla 'Ruby' i 'Ruby Gems' Ale Nie wiem, co zrobić, aby to rozwiązać.

Author: cimmanon, 2014-03-24

9 answers

Aby go uruchomić w 32 lub 64-bitowym systemie windows, zrobiłem to, co sugerował Min Ren, ale musiałem również ręcznie wyczyścić repozytorium gem (C:\Users\myusername\.gem\specs\rubygems.org%443\quick\Marshal.4.8) wszystkich plików Sass i compass gemspec po krokach odinstalowywania. Zainstalowałem również sass przed kompasem.

gem uninstall compass
gem uninstall sass
Ręczne czyszczenie .gem
gem install sass --version "3.2.10"
gem install compass --version "0.12.2" 
 36
Author: Bill Duncan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-22 10:48:03

Przez jakiś czas miałem ten sam problem i ostatecznie naprawiłem go ręcznie. Po pewnym kopaniu wydaje się, że problem jest w util.rb, plik tymczasowy jest zmieniany na przed zamknięciem pliku . W systemie Windows to najwyraźniej nie jest dozwolone (chociaż nie jestem pewien, dlaczego nagle zacząłem mieć problem po tym, jak działał w przeszłości).

Poprawką dla mnie była edycja utila.rb (PATH_TO_RUBY \ lib \ ruby\gems \ 1.9.1 \ gems \ Sass-3.2.18\lib\Sass\util.rb). I copy the line closing plik tymczasowy przed zmianą uprawnień + zmiana nazwy w linii 897. Oto zaktualizowana funkcja, którą teraz mam:

def atomic_create_and_write_file(filename, perms = 0666)
      require 'tempfile'
      tmpfile = Tempfile.new(File.basename(filename), File.dirname(filename))
      tmpfile.binmode if tmpfile.respond_to?(:binmode)
      result = yield tmpfile
      tmpfile.flush # ensure all writes are flushed to the OS
      begin
        tmpfile.fsync # ensure all buffered data in the OS is sync'd to disk.
      rescue NotImplementedError
        # Not all OSes support fsync
      end
      tmpfile.close if tmpfile
      # Make file readable and writeable to all but respect umask (usually 022).
      File.chmod(perms & ~File.umask, tmpfile.path)
      File.rename tmpfile.path, filename
      result
    ensure
      # close and remove the tempfile if it still exists,
      # presumably due to an error during write
      tmpfile.close if tmpfile
      tmpfile.unlink if tmpfile
    end
Jedno wielkie zastrzeżenie jest takie, że nie jestem rubinową osobą i jestem pewien, że jest chyba lepszy sposób. Ale po prostu wypróbowałem ten mod szybko i zadziałał, więc nie włożyłem w to więcej.
 9
Author: Mark Hazlewood,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-27 14:56:22

Wygląda jak błąd w najnowszej wersji Sass.

Odinstalowanie Sass i Compass oraz zainstalowanie starszych wersji rozwiązuje problem.

Mogą być nowsze wersje, które działają, ale oto, co przetestowałem i Wiem, że działa.

gem uninstall compass
gem uninstall sass

gem install compass -v "0.12.2"
gem install sass -v "3.2.13"
 4
Author: Min Ren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-04 16:34:17

Wygląda na to, że problem został rozwiązany w SASS 3.2.19

So all you need is gem update compass

 4
Author: grigson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-02 18:29:06

Otrzymywałem podobny błąd, ale miałem zupełnie inną rozdzielczość, więc pomyślałem, że warto się nim podzielić na wypadek, gdyby ktoś inny wpadł w mój scenariusz.

Właściwie otrzymałem odmowę pozwolenia, ponieważ moja kontrola źródła dokonała mojego .pliki css tylko do odczytu. Rozwiązanie było dość proste, wystarczy sprawdzić pliki css i wszystko wróciło do normy.

 3
Author: Wake,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-08 03:04:39

Miałem ten sam problem. Zrobiłem sugerowaną-uninstall & install za pomocą --pre, jednak to nie rozwiązało mojego problemu. Potem napotkałem kolejne problemy. Cóż, to co zrobiłem, to: ponownie odinstalowałem kompas i sass gem. Usunąłem wszystkie kamienie związane z kompasem w folderze ruby/gems/ruby1.9.1 / gems (co prawdopodobnie nie jest konieczne, nie jestem pewien) i zainstalowałem: Gem install compass --version "0.12.2" i Gem install sass --version "3.2.10". Nie sądzę, że wersje tutaj są zbyt ważne, o ile nie są to najnowsze wersje tych dwóch. Teraz ważny bit tutaj jest: Gem odinstalować sass . Zapyta Cię, którą wersję wymazać lub czy wszystkie z nich. Usuń nowszy. Sztuczka polega na tym, że compass instaluje automatycznie najnowszą wersję sass. Więc jeśli zainstalujesz starszą, to nie ma znaczenia, ponieważ jest już nowsza z kompasem, który zostanie użyty. Spróbuj.

 1
Author: cizza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-24 16:01:51

Odinstaluj SASS: gem uninstall sass

Odinstaluj kompas: gem uninstall compass

Install --pre Compass version: gem install compass --pre

Install --Pre Sass version: gem install sass --pre

 0
Author: Aleksandr Golovatyi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-07 15:36:34

Miałem podobny problem i udało mi się go rozwiązać, odłączając kompas i sass: {]}

gem uninstall compass 
gem uninstall sass

Następnie wystarczy zainstalować kompas:

gem install compass

Sass jest wymagany jako część instalacji kompasu, więc nie powinno być potrzeby instalowania go osobno. Wygląda na to, że problem, z którym się borykałem, polegał na tym, że wystąpił konflikt między wersją zainstalowaną w ramach instalacji compass a tą, którą zainstalowałem ręcznie.

 0
Author: pdp2,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-07 15:37:00

Problem został rozwiązany, gdy uruchomiłem okno wiersza polecenia cygwin jako administrator.

 0
Author: Amit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-14 09:21:30