Please whitelist cPanel in your adblocker so that you’re able to see our version release promotions, thanks!

The Community Forums

Interact with an entire community of cPanel & WHM users!

cPAddon Upgrade with Symbolic Link Never Completes

Discussion in 'cPanel Developers' started by Britney, Oct 7, 2010.

  1. Britney

    Britney Member

    Jul 30, 2010
    Likes Received:
    Trophy Points:
    Hey everyone. I was writing a concrete5 cPAddon a little while ago and found this forum to be very helpful. Now I think I need some more assistance :(

    I'm writing an upgrade from concrete5 to 5.4.1. I've followed the instructions and I have a mysql and diff files in place, and it looks like diff is working. However, when the upgrade runs, the files are patched, and then I get this error:

    "Could not put updates in place!"

    It never continues on to run the mysql upgrade.

    The error from the error log is this:

    cpaddons_upgrade/*', '/home/accountname/public_html/5405j') failed: File exists at /usr/local/cpanel/Cpanel/FileUtils/ line 122
    Cpanel::FileUtils::Copy::safecopy('5405j.cpaddons_upgrade/*', '/home/accountname/public_html/5405j') called at /usr/local/cpanel/Cpanel/ line 2043
    Cpanel::cPAddons::stdupgrade(Cpanel::cPAddons=HASH(0x2a91f20), HASH(0x2aed630), HASH(0x16b43c0)) called at /usr/local/cpanel/cpaddons/Concrete/CMS/ line 58
    Concrete::CMS::concrete5::upgrade(Cpanel::cPAddons=HASH(0x2a91f20), HASH(0x2aed630), HASH(0x16b43c0)) called at /usr/local/cpanel/Cpanel/ line 1602
    Cpanel::cPAddons::_handlemod(0, 'Concrete::CMS::concrete5', '16c3d3c8222fe84d54df458e6d4ef2bc', HASH(0x16b43c0)) called at /usr/local/cpanel/Cpanel/ line 351

    I believe I know the reason for this error: in concrete5, most of the libraries are located in a concrete5/ directory (which is inside the 5405j directory above). In our hosted setup, we swapped out this directory with a symbolic link to /usr/local/share/concrete5/, so that we could use cPAddons to manage the installation and upgrade process, but still have most libraries exist in one shared location on the server. Now, I'm trying to run an upgrade where the symbolic link needs to change to /usr/local/share/concrete5/5.4.1/concrete, and I'm not sure how to do this. diff fails if I include the contents of the "concrete/" directory in it.

    I'm assuming I need to do something like remove the symbolic link on update, and place a new symbolic link to a new place on upgrade, and I've been trying to do this, but I can't seem to get it to work. I can't even seem to print out the variables like "installdir" that I'm supposed to have access to from within the upgrade function! :confused:

    Any help would be much appreciated.

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice