[EVO 4G Q&A, Help & Troubleshooting] bjohanso:
Apologies ahead of time if this has been answered before. I spent about 30 minutes Googling and trying solutions without any luck.

My situation is that I'm on MikG 3.11 and am using the built in A2SD to store all the apps on a 2GB SD-Ext partition. I have enough apps that the ~160MB internal /cache partition is pretty much filled with Dalvik Cache files in the /cache/dc subdirectory (only 3MB left on the partition).

Unfortunately, Google Play (formerly Market) seems to download app installs and updates into /cache with file names like "Download.apk" and "Download-1.apk" and then installs the apps from there. Since there is so little space, any app above 1.5MB or so fails to download and install (it seems to need the space for the download and then space to extract the download, so you can only get apps that are about 1/2 the size of the remaining partition space).

Is there any way to change where Google Play/Market downloads apps to install? I've got plenty of space on /data or the SD-Ext partition.

I found old directions to fix this issue by entering the following at terminal to create a sym link for Market to download on the SD card:

mkdir /mnt/sdcard/market-download-cache
su
cd /cache
mv download download.bak
ln -s /mnt/sdcard/market-download-cache download
ls -ahl

Unfortunately, Play/Market no longer uses a "download" sub-directory on /cache, so this won't work.

To fix the problem, I tried using "a2sd cachesd" to free up space on /cache by moving the Dalvik Cache to the SD-Ext partition, but that made for a really laggy experience (presumably because my SD card has bad random r/w access). I could also presumably just unmount the partition from /cache and make /cache a sym linke to a folder on the SD Ext card, but it doesn't seem that would perform much better.

My only thought at this point for a long term solution is to copy the current /cache contents to /system/sd/cache, mount the current partition on /cache at /mnt/cache (unmounting it from /cache first), create a sym link from /cache to /system/sd/cache, then set up a sym link from /mnt/cache/dc to /system/sd/cache/dc. All of this would have the effect of keeping the Dalvik Cache on the same internal partition where it currently resides while letting Play/Market have plenty of space in the new /cache which would actually be a directory on the SD-Ext partition. But, this seems kind of hacky and could negatively impact other things that might need /cache.

My short term solution is that every time I need to install or update apps, I just go into /cache/dc with Root Explorer and delete a bunch of the cached data to free up enough space for the app(s) and then do the update/install through Play/Market. The OS then seems to recreate the cached information the next time I run the app whose cached data I deleted (for example, I deleted the IMDB cached data and the next time I ran IMDB it took a long time to come up but then worked fine-- presumably the delay was recreating the cached data/app). The OS also seems to recreate the dalvik cached files on boot (not sure if that is a general feature or just in the MikG ROM I'm using).

In any case, I think all of the above is accurate so even if nobody has better solutions, maybe this will help others understand why they can't install/update apps even though it seems they have plenty of space.

If anybody is out there that has a good long term solution to this (like a place you can change the directory where Play/Market downloads), please let me know.