"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ć.
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"
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.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"
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
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.
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.
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
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.
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.
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