grunt clean fail unable to delete ".tmp" file (EPERM, operation not permitted) - gruntjs

When I built a yeoman angular app, when I run it for the first time it works fine using grunt serve but when i run it the second time an error from grunt clean task as following:
Cleaning .tmp...ERROR
Warning: Unable to delete ".tmp" file (EPERM, operation not permitted '...\.tmp'). Use --force to continue.
Aborted due to warnings.
When I delete the .tmp folder manually the app runs without errors.
I searched the net and here but I couldn't find a convincing answer.
Please advice,

I was able to fix this issue by updating the version of the rimraf node module inside of grunt-contrib-clean.
$ cd .\node_modules\grunt-contrib-clean
$ npm install rimraf#2.2.8
This looks like the commit in rimraf that fixed the issue: https://github.com/isaacs/rimraf/commit/1b612ed9370b5a3d0de9bb0ba1a32ea1dc8edba1

Was having a similar issue running "grunt build" from Mac. Issue turned out to be file permissions, to fix I did "sudo chmod -R ." on the root directory and it fixed the issue.

Check if any explorer of the directory you are trying to delete is open. If so, close the explorer and clean.
Try this simple solution(Sometimes problem might be due to empty folder). It works for me :
clean : {
dist : ['./dist'+'/**/*.*']
}

sudo chgrp -R username .tmp
sudo chown -R username .tmp

Related

Trying to add image in Git add but keep getting the following message? I tried restarting/reloading git and closing VS Code but nothing worked

That is:
hashanp#DESKTOP-9E00J4S: ~/cats-cakes$ git add .
error: open("img/cake.jpg"): Permission denied
error: unable to index file img/cake.jpg
fatal: adding files failed
Trying to add image in Git add but keep getting the following message? I tried restarting/reloading git and closing VS Code but nothing worked.
That looks like a git bash session on Windows, or a WSL session.
If you can not easily identify the process which keeps an handle to that file, preventing another program (like git) to access it, I would:
reboot
restart my git bash or WSL2 session
try to add img/cake.jpg before opening any IDE.
Since it is an Ubuntu session, I would also try, for tesdting:
sudo chmod -R 755 img
That way, the folder img will be accessible.

Unable to run any Meteor Js command

What's the cause of this problem and how do I fix it?
Machine:~ username$ meteor create project
'/Users/username/.meteor' exists, but '/Users/username/.meteor/meteor' is not executable.
Remove it and try again.
Machine:~ username$
I’m unable to tell what the problem is, but you can likely fix it by moving the file and installing meteor again. To move the file:
$ mv ~/.meteor/meteor ~/meteor.bak
Then try to reinstall meteor.
[EDIT]
You can additionally try to chmod +x ~/.meteor/meteor but the meteor instructions recommend removing the file so I recommend you move it and rename just as a back up until you reinstall.

PCL execution error

I'm fairly new to the PCL and linux in general. I'm having trouble following the examples in documentation. None of the examples execute.The code compiles fine and a executable is generated. But I keep getting a permission denied error. The usual chmod and chown dont work. I've tried reinstalling PCL. What am I missing here ?
Here is the output from terminal https://www.dropbox.com/s/pjv8utctnokpihd/error.txt
From the dump you provide it looks like you are working in a mounted disk (/media/chaitanya/); possibly it was mounted with noexec or something. Try running mount to see.
Alternatively try working in your home directory:
cd ~
cp -r /media/chaitanya/work/learn-pcl/ ./
etc.

Meteor.js installation failed

I wanted to install Meteor via
curl https://install.meteor.com | /bin/sh
like it's said in the documentation.
Every time I try this (also as sudo), I get this error:
**rmdir: /Users/christophz/.meteor-install-tmp: Directory not empty
Installation failed.**
The directory, of course, is empty before installation. After aborting the installation in my home folder there IS .meteor and still .meteor-install-tmp. But trying to create a new meteor app fails. My command line says it doesn't know this command.
I didn't find anything via Google. Can u help me and give me some hint?
Did you try rm -rf? With or without sudo:
rm -rf ~/.meteor-install-tmp
rm -rf ~/.meteor
Try deleting the directory. I think this happened to me once.

PHPUnit: Warning: require(PHPUnit/Autoload.php): failed to open stream: No such file or directory in /usr/local/bin/phpunit on line 42

when running
phpunit
I get error
Warning: require(PHPUnit/Autoload.php): failed to open stream: No such file or directory in /usr/local/bin/phpunit on line 42
Fatal error: require(): Failed opening required 'PHPUnit/Autoload.php' (include_path='.:') in /usr/local/bin/phpunit on line 42
/usr/local/bin/phpunit displays the following on line 42:
require 'PHPUnit/Autoload.php';
any suggestions how to fix this?
Update (1):
I was missing php.ini in /etc/, so I symlinked it to read the MAMP php.ini. Now I get
php -r 'foreach (explode(":", get_include_path()) as $path) echo $path . PHP_EOL;'
.
/Applications/MAMP/bin/php/php5.3.6/lib/php
/usr/local/bin/pear
/usr/local/share/pear/PHPUnit
running
phpunit
is running but provides no output.
Any suggestions what to check next?
Update (2):
probably the root cause of this issue is related to question
MAMP PEAR configuration is pointing to local directories.
I hit a similar issue on MAC OSX Lion. I installed phpunit with the PEAR package manager, and when I try to run it I got the error as described by udo. I was able to resolve it with the following simple steps:
Get the latest php archive of pear curl http://pear.php.net/go-pear.phar > go-pear.php
Install the archive with sudo php -q go-pear.php
During installation, it detects if the include_path in your php.ini does not contain the PEAR PHP directory. You can choose to let it fix it for you automatically when given the option.
I ran into this problem when I was running phpunit.phar from my local directory, but also has PHPUnit installed as a composer dependency. Removing the PHPUnit composer dependency fixed my problem.
You must have the folder that contains the PHPUnit source files on your PHP include path. Also, PHPUnit/Autoload.php was added in 3.6, and it's possible you have an older 3.5.x source folder instead. Check the folders listed using
php -r 'foreach (explode(':', get_include_path()) as $path) echo $path . PHP_EOL;'
(or on Windows)
php -r"foreach (explode(':', get_include_path()) as $path) echo $path . PHP_EOL;"
and make sure one of them contains a PHPUnit folder with Autoload.php.
Update: Regarding your update, you probably want to remove /usr/local/share/pear/PHPUnit from the include path because you're including PHPUnit/Autoload.php which should be located in /usr/local/share/pear which is already in the include path.
To make sure PHPUnit is working first run phpunit --version so you can see the installed version. PHPUnit instantiates all of the test cases it plans to run before outputting anything. If any of your test cases cause a fatal error while loading, sometimes no output is shown at all. This is very frustrating. Start by creating the simplest test case possible that doesn't use any of your code.
class MyTest extends PHPUnit_Framework_TestCase {
function testThatItWorks() {
self::assertTrue(true);
}
}
Running this test should produce a single passing test. Try it and paste what you see in your question.
To add to the previous answers: double-check with php.ini file is being loaded and make sure you edit THAT file with additional paths. I used the following to check the loaded php.ini
php -r 'phpinfo();'
Which told me that the loaded php.ini file was /private/etc/php.ini
Then I used "which" to tell me where phpunit had been installed:
which phpunit
Then I added that path to the php.ini file, so it ended up looking like this:
;***** Added by go-pear
include_path=".:/Users/admin/pear/share/pear:/php/includes:/usr/bin:/usr/lib/php/"
Only after I had done all that did the "phpunit --version" and other commands work as expected.
It should be noted that most users who face the problem faced here must be running the command
$ phpunit
from the command prompt. when they get the above error. What Most of us fail to understand about the real issue is that the PHP used on the command prompt will mostly be very different from the one running things for you in your webserver. Personally i use lampp and even though i had correctly installed phpunit using pear successfully,i failed to realised this essential part for hours.
Remedy
- for anytime you need to run a PHP script that requires resources in the include_path, make sure that php.ini for the respective PHP binary your using is adequately furnished. case and point in my ubuntu 12.04 installation with xampp my two php binaries include
the command line one i.e php5-cli found in /etc/php5/cli/ directory
the xampp one i.e php that is used by apache to serve my pages found in /opt/lampp/etc/php.ini
Both the php.ini files must have your desirable and correct include_path declaration for you to correctly bootstrap any command line scripts and serverside(apache served scripts).
Back to our matter at hand after correctly configuring the php.ini remember to
Restart Apache so that the web server pick your changes
Restart you terminal/commandline session so that the cli prompt picks your changes
Common Mistakes that get you problems when Changing Files in Linux/*nix Systems
remember to run chwon to own the php.ini file or else you wont even manage to edit them
remember to run chmod and change the values to allow you to save your changes after which you can return everything (access control on file i.e chwon and chmod to the previous state) to the way they were and it should be ok after restarting the terminal and apache.
Good Luck
The remark of Howard Lo on Mac OSX is very useful with the remark of Sebastian Perez. Because the remark is not that nice formatted, it maybe overlooked. After the Mavericks update of OSX I ran for the second time to this issue, U decided to create this full Apple OSX solution for this problem. I have to say I have also installed MAMP-PRO with several different version of php, so I need to be very accurate.
Check if you have an php.ini installed into /private/etc. If not issue the command:
$ sudo cp /private/etc/php.ini.default /private/etc/php.ini
Get the latest php archive of pear
$ curl http://pear.php.net/go-pear.phar > go-pear.php
Install the archive with
$ sudo php -q go-pear.php
During installation, it detects if the include_path in your php.ini does not contain the PEAR PHP directory. You can choose to let it fix it for you automatically when given the option.
After these steps I had to install phpunit again using the following commands:
$ sudo pear channel-discover pear.phpunit.de
$ sudo pear channel-discover components.ez.no
$ sudo pear channel-discover pear.symfony-project.com
$ sudo pear install phpunit/PHPUnit
Many thanks to Howard Lo and Sebastian Perez.

Resources