ajenti-v icon indicating copy to clipboard operation
ajenti-v copied to clipboard

CentOS 7

Open cawilliamson opened this issue 9 years ago • 18 comments

Hello there!

I may be missing something here but I have installed a fresh CentOS 7 build and Ajenti is installed and running just fine. The problem is - whenever I try to install Ajenti-V on this box I receive the following output:

[root@localhost ~]# yum install ajenti-v ajenti-v-nginx ajenti-v-mysql ajenti-v-php-fpm php-mysql ... snip ... --> Finished Dependency Resolution Error: Package: nginx-1.4.2-16.1.x86_64 (ajenti) Requires: libpcre.so.0()(64bit) Error: Package: supervisor-3.0-13.1.noarch (ajenti) Requires: python(abi) = 2.6 Installed: python-2.7.5-16.el7.x86_64 (@anaconda) python(abi) = 2.7 python(abi) = 2.7 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest

It looks like CentOS 7 uses Python 2.7 by default now and your build of supervisor is expecting python 2.6. There also appears to be an issue with the libpcre.

Other than that - these appear to be the only issues with CentOS 7 and Ajenti-V at this point which is pretty good going considering how new the distro version is!

cawilliamson avatar Jul 29 '14 15:07 cawilliamson

I've updated the repo, please try again (yum clean metadata)

Eugeny avatar Jul 29 '14 15:07 Eugeny

Now that is impressive!

Fixed already! Thanks a lot!

cawilliamson avatar Jul 29 '14 15:07 cawilliamson

I've found another issue related to CentOS 7 - this time in the form of libgdbm.

Strangely - pure-ftpd appears to be missing from the CentOS 7 repo too. I could use vsftpd as an alternative to that but the libgdbm issue does prevent me from running a mail server at the moment.

[root@server ~]# yum -y install ajenti-v-mail ajenti-v-ftp-pureftpd ... snip ... --> Finished Dependency Resolution Error: Package: ajenti-v-ftp-pureftpd-0.1.3-1.noarch (ajenti) Requires: pure-ftpd Error: Package: courier-authlib-userdb-0.64.0-1.el6.x86_64 (ajenti) Requires: libgdbm.so.2()(64bit) Error: Package: courier-authlib-0.64.0-1.el6.x86_64 (ajenti) Requires: libgdbm.so.2()(64bit) Error: Package: courier-imap-4.9.3-1.x86_64 (ajenti) Requires: libgdbm.so.2()(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest

cawilliamson avatar Jul 29 '14 16:07 cawilliamson

It's actually me reading both FB and Github here :) I'm working to get proper EL7 packages atm.

Eugeny avatar Jul 29 '14 17:07 Eugeny

Well, it looks like there are no Courier and Pure-FTPd packages for EL7 yet :(

Eugeny avatar Jul 29 '14 17:07 Eugeny

That explains it! :(

I'll use vsftpd for now in that case and I'll probably just install postfix as an MTA since I don't use the server specifically as a mail server other than mailing out alerts, etc.

Thank you for taking the time to look in to this - much appreciated.

cawilliamson avatar Jul 29 '14 17:07 cawilliamson

Found another one but this is pretty small...

I can't enable the puma module for ajenti-v because of a missing dependency of 'bundler' which would make sense... but it's actually installed as confirmed by:

[root@server ~] # which bundler /usr/local/rvm/gems/ruby-2.1.2/bin/bundler

I was able to hack a workaround together by adding the following line to the init script:

... echo "Starting $NAME:" export PATH=/usr/local/rvm/gems/ruby-2.1.2/bin:$PATH export LC_CTYPE=en_US.UTF8 ...

I know this is because the binary is obviously outside of the standard system PATH variable but as far as I'm aware init scripts are typically executed with /etc/profile sourced if I'm not mistaken? As such, the PATH variable should be defined and should include the above mentioned path as a result.

I'm not clear if this is an issue or just human error on my part? If this is an issue - I'd be curious to know if this is specific to CentOS 7. I was running Ajenti on debian earlier on today and I installed things the same way - as soon as I had installed bundler via rvm on Debian it found the binary right away.

CentOS 7 obviously uses systemd which may be breaking things here.

cawilliamson avatar Jul 29 '14 20:07 cawilliamson

Well the Bundler has to be on the services' $PATH (not only on Ajenti's path but also on Supervisor's) for Bundler-enabled ruby websites to work in Ajenti V. I guess symlinking bundle binary to /usr/bin is an acceptable solution here?

Eugeny avatar Jul 30 '14 05:07 Eugeny

Yup, that'll work!

Reverted the init script change and things are working well with that change in place.

So we're just waiting on CentOS/RHEL to release courier and pure-ftpd packages and we should have a complete build here. I'm not too worried about those right now though - pure-ftpd would be nice but I can live with vsftpd for now.

Thanks for the help once again!

cawilliamson avatar Jul 30 '14 06:07 cawilliamson

http://support.ajenti.org/topic/423530-installing-ajenti-v-on-centosrhel/ This page doesn't reveal that ajenti-v-ftp-vsftpd is an available package. I'd rather use vsftp anyways so this was exciting to finally discover after repeatedly failing to get pure-ftpd working on centos 7. Works great now :)

Edit: Ah, so the vsftpd plugin doesn't work so well, that's why it's not listed. @cawilliamson can you elaborate on your vsftpd setup so I can get everything working smoothly on centos7? Thanks!

skylineservers avatar Sep 21 '14 23:09 skylineservers

@skylineservers I decided to hide it because many users had unreproducible problems with vsftpd and authentication.

Eugeny avatar Sep 22 '14 07:09 Eugeny

@Eugeny yes I see now. I ended up compiling pure-ftpd from source and have it achingly close to perfectly functional, but I'm still having the same issue with basic authentication. I've got the plugin happy so that when I click "save" in the ftp tab it writes the new user and runs pure-pw mkdb successfully (and I see the users with pure-pw list), yet authentication fails each time. Your plugin successfully wrote the /etc/pure-ftpd/pure-ftpd.conf file. Any ideas what might be preventing the auth? Very grateful for your hard work!

skylineservers avatar Sep 22 '14 21:09 skylineservers

@skylineservers anything on the pureftpd log? Syslog? auth.log?

Eugeny avatar Sep 23 '14 04:09 Eugeny

Wow, centos7/systemd is such a joy ride. In case it helps anyone, here's a loose guide on how I got pure-ftpd compiled and installed. What's interesting is that when I tried to do this fresh on a dev environment, it worked pretty smoothly except that ajenti wouldn't recognize the binaries for pure-pw and pure-ftpd in the plugins page. Interestingly, though, it would recognize these binaries if I ran ajenti-panel -v for debug mode, letting me add new ftp users via the FTP tab in Ajenti. . Even though I got pretty far with this, the PAM auth still completely stopped it from authenticating. I eventually ended up dropping it in favor of vsftpd so we could just use the system users to authenticate instead of creating the new database of users within pure-ftpd.

yum install pam-devel gcc -y
wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.gz
tar -zxvf pure-ftpd-1.0.36.tar.gz
cd pure-ftpd-1.0.36
./configure --prefix=/usr/local/pure-ftpd --with-everything --with-puredb --with-pam --with-altlog
make && make install
mkdir /usr/local/pure-ftpd/etc/
cp configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/etc/
cp configuration-file/pure-config.pl /usr/local/pure-ftpd/sbin/
chmod 755 /usr/local/pure-ftpd/sbin/pure-config.pl
cd /usr/local/bin/
ln -s /usr/local/pure-ftpd/bin/pure-* .
ls -s /usr/local/pure-ftpd/sbin/* /usr/local/sbin/
ln -s /usr/local/pure-ftpd/sbin/* /usr/local/sbin/
ln -s /usr/local/pure-ftpd/share/man/man8/* /usr/local/share/man/man8/
ln -s /usr/local/pure-ftpd/etc/pure-ftpd.conf /etc/
mkdir /etc/pure-ftpd
ln -s /usr/local/pure-ftpd/etc/pure-ftpd.conf /etc/pure-ftpd/
touch /usr/local/pure-ftpd/etc/pureftpd.passwd
ln -s /usr/local/pure-ftpd/etc/pureftpd.passwd /etc/pure-ftpd/ 
pure-pw mkdb
rpm -ivh --nodeps http://repo.ajenti.org/ng/centos/7.3/ajenti-v-ftp-pureftpd-0.1.4-1.noarch.rpm 

skylineservers avatar Sep 25 '14 16:09 skylineservers

Currently having issues installing the mysql plugin on CentOS 7 following http://support.ajenti.org/topic/423530-installing-ajenti-v-on-centosrhel/:

Error: Package: ajenti-v-mysql-0.3.1-1.noarch (ajenti) Requires: mysql-server You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest

Rewt0r avatar Oct 13 '14 10:10 Rewt0r

@Rewt0r

I resolved the problem by adding the mysql-community repo. (Linux things are killing me in deep)

sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

louislam avatar Oct 18 '14 16:10 louislam

I already have a MySQL server installed, is there no way to install ajenti to use current configuration? I don't mind setting up the servers through SSH I just thought Ajenti looked pretty good and was about to give it a try.

Rewt0r avatar Oct 19 '14 14:10 Rewt0r

Well the Bundler has to be on the services' $PATH (not only on Ajenti's path but also on Supervisor's) for Bundler-enabled ruby websites to work in Ajenti V. I guess symlinking bundle binary to /usr/bin is an acceptable solution here?

Hello, I tried to create the symlink but doesn't work. There is a new way to solve this? I'm using Debian 9.9 + Ruby 2.6.3

Thanks!

arkhej avatar May 17 '19 20:05 arkhej