ContinuumIO / anaconda-issues

Anaconda issue tracking
646 stars 220 forks source link

krb5 package breaks system kerberos #10772

Open opoplawski opened 5 years ago

opoplawski commented 5 years ago

The system kerberos is generally customized to its environment. The anaconda krb5 package thus can break kinit and system kerberos utilities. I've seen this on both RHEL7 and Mac OS X.

I would strongly suggest re-configuring the krb5 package to at least not provide the command line utilities. Though I'm curious as to why it's being provided at all.

Actual Behavior

# kinit user@REALM
Unknown credential cache type while resolving ccache

Expected Behavior

# kinit user@REALM
Password for user@REALM

Steps to Reproduce

Activate an anaconda environment with the krb5 package installed

Anaconda or Miniconda version:

krb5 1.16.1 h173b8e3_7

Operating System:

OS X and RHEL 7

conda info
``` active environment : base active env location : /Users/martina/anaconda3 shell level : 1 user config file : /Users/martina/.condarc populated config files : /Users/martina/.condarc conda version : 4.6.8 conda-build version : 3.17.6 python version : 3.7.1.final.0 base environment : /Users/martina/anaconda3 (writable) channel URLs : https://repo.anaconda.com/pkgs/main/osx-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/free/osx-64 https://repo.anaconda.com/pkgs/free/noarch https://repo.anaconda.com/pkgs/r/osx-64 https://repo.anaconda.com/pkgs/r/noarch package cache : /Users/martina/anaconda3/pkgs /Users/martina/.conda/pkgs envs directories : /Users/martina/anaconda3/envs /Users/martina/.conda/envs platform : osx-64 user-agent : conda/4.6.8 requests/2.21.0 CPython/3.7.1 Darwin/17.7.0 OSX/10.13.6 UID:GID : 825924467:987822718 netrc file : None offline mode : False ```
conda list --show-channel-urls
``` # packages in environment at /Users/martina/anaconda3: # # Name Version Build Channel _ipyw_jlab_nb_ext_conf 0.1.0 py37_0 defaults alabaster 0.7.12 py37_0 defaults anaconda-client 1.7.2 py37_0 defaults anaconda-navigator 1.9.6 py37_0 defaults anaconda-project 0.8.2 py37_0 defaults appnope 0.1.0 py37_0 defaults appscript 1.0.1 py37h1de35cc_1 defaults asn1crypto 0.24.0 py37_0 defaults astroid 2.1.0 py37_0 defaults astropy 3.1 py37h1de35cc_0 defaults atomicwrites 1.2.1 py37_0 defaults attrs 18.2.0 py37h28b3542_0 defaults babel 2.6.0 py37_0 defaults backcall 0.1.0 py37_0 defaults backports 1.0 py37_1 defaults backports.os 0.1.1 py37_0 defaults backports.shutil_get_terminal_size 1.0.0 py37_2 defaults beautifulsoup4 4.6.3 py37_0 defaults bitarray 0.8.3 py37h1de35cc_0 defaults bkcharts 0.2 py37_0 defaults blas 1.0 mkl defaults blaze 0.11.3 py37_0 defaults bleach 3.0.2 py37_0 defaults blosc 1.14.4 hd9629dc_0 defaults bokeh 1.0.2 py37_0 defaults boto 2.49.0 py37_0 defaults bottleneck 1.2.1 py37h1d22016_1 defaults bzip2 1.0.6 h1de35cc_5 defaults ca-certificates 2019.1.23 0 defaults certifi 2019.3.9 py37_0 defaults cffi 1.11.5 py37h6174b99_1 defaults cftime 1.0.3.4 py37h1d22016_0 defaults chardet 3.0.4 py37_1 defaults click 7.0 py37_0 defaults cloudpickle 0.6.1 py37_0 defaults clyent 1.2.2 py37_1 defaults colorama 0.4.1 py37_0 defaults conda 4.6.8 py37_0 defaults conda-build 3.17.6 py37_0 defaults conda-env 2.6.0 1 defaults conda-verify 3.1.1 py37_0 defaults contextlib2 0.5.5 py37_0 defaults cryptography 2.4.2 py37ha12b0ac_0 defaults curl 7.64.0 ha441bb4_2 defaults cycler 0.10.0 py37_0 defaults cython 0.29.2 py37h0a44026_0 defaults cytoolz 0.9.0.1 py37h1de35cc_1 defaults dask 1.0.0 py37_0 defaults dask-core 1.0.0 py37_0 defaults datashape 0.5.4 py37_1 defaults dbus 1.13.2 h760590f_1 defaults decorator 4.3.0 py37_0 defaults defusedxml 0.5.0 py37_1 defaults distributed 1.25.1 py37_0 defaults docutils 0.14 py37_0 defaults entrypoints 0.2.3 py37_2 defaults et_xmlfile 1.0.1 py37_0 defaults expat 2.2.6 h0a44026_0 defaults fastcache 1.0.2 py37h1de35cc_2 defaults filelock 3.0.10 py37_0 defaults flask 1.0.2 py37_1 defaults flask-cors 3.0.7 py37_0 defaults freetype 2.9.1 hb4e5f40_0 defaults future 0.17.1 py37_0 defaults get_terminal_size 1.0.0 h7520d66_0 defaults gettext 0.19.8.1 h15daf44_3 defaults gevent 1.3.7 py37h1de35cc_1 defaults glib 2.56.2 hd9629dc_0 defaults glob2 0.6 py37_1 defaults gmp 6.1.2 hb37e062_1 defaults gmpy2 2.0.8 py37h6ef4df4_2 defaults greenlet 0.4.15 py37h1de35cc_0 defaults h5py 2.8.0 py37h878fce3_3 defaults hdf4 4.2.13 h39711bb_2 defaults hdf5 1.10.2 hfa1e0ec_1 defaults heapdict 1.0.0 py37_2 defaults html5lib 1.0.1 py37_0 defaults icu 58.2 h4b95b61_1 defaults idna 2.8 py37_0 defaults imageio 2.4.1 py37_0 defaults imagesize 1.1.0 py37_0 defaults importlib_metadata 0.6 py37_0 defaults intel-openmp 2019.1 144 defaults ipykernel 5.1.0 py37h39e3cac_0 defaults ipython 7.2.0 py37h39e3cac_0 defaults ipython_genutils 0.2.0 py37_0 defaults ipywidgets 7.4.2 py37_0 defaults isort 4.3.4 py37_0 defaults itsdangerous 1.1.0 py37_0 defaults jbig 2.1 h4d881f8_0 defaults jdcal 1.4 py37_0 defaults jedi 0.13.2 py37_0 defaults jinja2 2.10 py37_0 defaults jpeg 9b he5867d9_2 defaults jsonschema 2.6.0 py37_0 defaults jupyter 1.0.0 py37_7 defaults jupyter_client 5.2.4 py37_0 defaults jupyter_console 6.0.0 py37_0 defaults jupyter_core 4.4.0 py37_0 defaults jupyterlab 0.35.3 py37_0 defaults jupyterlab_server 0.2.0 py37_0 defaults keyring 17.0.0 py37_0 defaults kiwisolver 1.0.1 py37h0a44026_0 defaults krb5 1.16.1 hddcf347_7 defaults lazy-object-proxy 1.3.1 py37h1de35cc_2 defaults libarchive 3.3.3 h786848e_5 defaults libcurl 7.64.0 h051b688_2 defaults libcxx 4.0.1 hcfea43d_1 defaults libcxxabi 4.0.1 hcfea43d_1 defaults libedit 3.1.20170329 hb402a30_2 defaults libffi 3.2.1 h475c297_4 defaults libgfortran 3.0.1 h93005f0_2 defaults libiconv 1.15 hdd342a3_7 defaults liblief 0.9.0 h2a1bed3_0 defaults libnetcdf 4.6.1 h4e6abe9_2 defaults libpng 1.6.35 ha441bb4_0 defaults libsodium 1.0.16 h3efe00b_0 defaults libssh2 1.8.0 ha12b0ac_4 defaults libtiff 4.0.9 hcb84e12_2 defaults libxml2 2.9.8 hab757c2_1 defaults libxslt 1.1.32 hb819dd2_0 defaults llvmlite 0.26.0 py37h8c7ce04_0 defaults locket 0.2.0 py37_1 defaults lxml 4.2.5 py37hef8c89e_0 defaults lz4-c 1.8.1.2 h1de35cc_0 defaults lzo 2.10 h362108e_2 defaults markupsafe 1.1.0 py37h1de35cc_0 defaults matplotlib 3.0.2 py37h54f8f79_0 defaults mccabe 0.6.1 py37_1 defaults mistune 0.8.4 py37h1de35cc_0 defaults mkl 2019.1 144 defaults mkl-service 1.1.2 py37hfbe908c_5 defaults mkl_fft 1.0.6 py37h27c97d8_0 defaults mkl_random 1.0.2 py37h27c97d8_0 defaults more-itertools 4.3.0 py37_0 defaults mpc 1.1.0 h6ef4df4_1 defaults mpfr 4.0.1 h3018a27_3 defaults mpmath 1.1.0 py37_0 defaults msgpack-python 0.5.6 py37h04f5b5a_1 defaults multipledispatch 0.6.0 py37_0 defaults navigator-updater 0.2.1 py37_0 defaults nbconvert 5.4.0 py37_1 defaults nbformat 4.4.0 py37_0 defaults ncurses 6.1 h0a44026_1 defaults netcdf4 1.4.2 py37h08833f9_0 defaults networkx 2.2 py37_1 defaults nltk 3.4 py37_1 defaults nose 1.3.7 py37_2 defaults notebook 5.7.4 py37_0 defaults numba 0.41.0 py37h6440ff4_0 defaults numexpr 2.6.8 py37h7413580_0 defaults numpy 1.15.4 py37hacdab7b_0 defaults numpy-base 1.15.4 py37h6575580_0 defaults numpydoc 0.8.0 py37_0 defaults odo 0.5.1 py37_0 defaults olefile 0.46 py37_0 defaults openpyxl 2.5.12 py37_0 defaults openssl 1.1.1b h1de35cc_1 defaults packaging 18.0 py37_0 defaults pandas 0.23.4 py37h6440ff4_0 defaults pandoc 1.19.2.1 ha5e8f32_1 defaults pandocfilters 1.4.2 py37_1 defaults parso 0.3.1 py37_0 defaults partd 0.3.9 py37_0 defaults path.py 11.5.0 py37_0 defaults pathlib2 2.3.3 py37_0 defaults patsy 0.5.1 py37_0 defaults pcre 8.42 h378b8a2_0 defaults pep8 1.7.1 py37_0 defaults pexpect 4.6.0 py37_0 defaults pickleshare 0.7.5 py37_0 defaults pillow 5.3.0 py37hb68e598_0 defaults pip 18.1 py37_0 defaults pkginfo 1.4.2 py37_1 defaults pluggy 0.8.0 py37_0 defaults ply 3.11 py37_0 defaults proj4 5.2.0 h0a44026_1 defaults prometheus_client 0.5.0 py37_0 defaults prompt_toolkit 2.0.7 py37_0 defaults psutil 5.4.8 py37h1de35cc_0 defaults ptyprocess 0.6.0 py37_0 defaults py 1.7.0 py37_0 defaults py-lief 0.9.0 py37hd4eaf27_0 defaults pycodestyle 2.4.0 py37_0 defaults pycosat 0.6.3 py37h1de35cc_0 defaults pycparser 2.19 py37_0 defaults pycrypto 2.6.1 py37h1de35cc_9 defaults pyflakes 2.0.0 py37_0 defaults pygments 2.3.1 py37_0 defaults pylint 2.2.2 py37_0 defaults pyodbc 4.0.25 py37h0a44026_0 defaults pyopenssl 18.0.0 py37_0 defaults pyparsing 2.3.0 py37_0 defaults pyproj 1.9.6 py37h9c430a6_0 defaults pyqt 5.9.2 py37h655552a_2 defaults pysocks 1.6.8 py37_0 defaults pytables 3.4.4 py37h13cba08_0 defaults pytest 4.0.2 py37_0 defaults pytest-arraydiff 0.3 py37h39e3cac_0 defaults pytest-astropy 0.5.0 py37_0 defaults pytest-doctestplus 0.2.0 py37_0 defaults pytest-openfiles 0.3.1 py37_0 defaults pytest-remotedata 0.3.1 py37_0 defaults python 3.7.1 haf84260_7 defaults python-dateutil 2.7.5 py37_0 defaults python-libarchive-c 2.8 py37_6 defaults python.app 2 py37_9 defaults pytz 2018.7 py37_0 defaults pywavelets 1.0.1 py37h1d22016_0 defaults pyyaml 3.13 py37h1de35cc_0 defaults pyzmq 17.1.2 py37h1de35cc_0 defaults qt 5.9.7 h468cd18_1 defaults qtawesome 0.5.3 py37_0 defaults qtconsole 4.4.3 py37_0 defaults qtpy 1.5.2 py37_0 defaults readline 7.0 h1de35cc_5 defaults requests 2.21.0 py37_0 defaults rope 0.11.0 py37_0 defaults ruamel_yaml 0.15.46 py37h1de35cc_0 defaults scikit-image 0.14.1 py37h0a44026_0 defaults scikit-learn 0.20.1 py37h27c97d8_0 defaults scipy 1.1.0 py37h1410ff5_2 defaults seaborn 0.9.0 py37_0 defaults send2trash 1.5.0 py37_0 defaults setuptools 40.6.3 py37_0 defaults simplegeneric 0.8.1 py37_2 defaults singledispatch 3.4.0.3 py37_0 defaults sip 4.19.8 py37h0a44026_0 defaults six 1.12.0 py37_0 defaults snappy 1.1.7 he62c110_3 defaults snowballstemmer 1.2.1 py37_0 defaults sortedcollections 1.0.1 py37_0 defaults sortedcontainers 2.1.0 py37_0 defaults sphinx 1.8.2 py37_0 defaults sphinxcontrib 1.0 py37_1 defaults sphinxcontrib-websupport 1.1.0 py37_1 defaults spyder 3.3.3 py37_0 defaults spyder-kernels 0.4.2 py37_0 defaults sqlalchemy 1.2.15 py37h1de35cc_0 defaults sqlite 3.26.0 ha441bb4_0 defaults statsmodels 0.9.0 py37h1d22016_0 defaults sympy 1.3 py37_0 defaults tblib 1.3.2 py37_0 defaults terminado 0.8.1 py37_1 defaults testpath 0.4.2 py37_0 defaults tk 8.6.8 ha441bb4_0 defaults toolz 0.9.0 py37_0 defaults tornado 5.1.1 py37h1de35cc_0 defaults tqdm 4.28.1 py37h28b3542_0 defaults traitlets 4.3.2 py37_0 defaults unicodecsv 0.14.1 py37_0 defaults unixodbc 2.3.7 h1de35cc_0 defaults urllib3 1.24.1 py37_0 defaults wcwidth 0.1.7 py37_0 defaults webencodings 0.5.1 py37_1 defaults werkzeug 0.14.1 py37_0 defaults wheel 0.32.3 py37_0 defaults widgetsnbextension 3.4.2 py37_0 defaults wrapt 1.10.11 py37h1de35cc_2 defaults wurlitzer 1.0.2 py37_0 defaults xlrd 1.2.0 py37_0 defaults xlsxwriter 1.1.2 py37_0 defaults xlwings 0.15.1 py37_0 defaults xlwt 1.3.0 py37_0 defaults xz 5.2.4 h1de35cc_4 defaults yaml 0.1.7 hc338f04_2 defaults zeromq 4.2.5 h0a44026_1 defaults zict 0.1.3 py37_0 defaults zlib 1.2.11 h1de35cc_3 defaults zstd 1.3.7 h5bba6e5_0 defaults ```
mingwandroid commented 5 years ago

You are meant to deactivate conda to stop it from being used. You should not be adding it to your PATH permanently or globally.

Why do you say we shouldn't provide the binaries? Can you detail why? I don't know a whole lot about them.

opoplawski commented 5 years ago

Right, but a user wants to use anaconda, so they activate their environment. All of a sudden kinit, krenew, etc are broken and they can no longer get or renew kerberos tickets breaking access to network resources.

I'm really scratching my head as to why anaconda is providing a kerberos library at all rather than using the system versions. Kerberos installations are generally very OS specific and highly customized to the institutional environment. It's doubtful that any kerberos build that anaconda provides will actually be workable.

msarahan commented 5 years ago

using the system versions

is something that we really can't depend on for much. We have krb5 as a dependency of:

We'd be open to some kind of CDT-type package, or perhaps to removing the CLI programs, as long as we knew that we weren't breaking people. We need to keep our krb5 package's overall effect similar for continuity, but we could make it a metapackage that ties together the shared libraries in one package (probably necessary for our dependents here) and the CLI in another.

This is a fair amount of work, though. I'd like to understand why you're the first one to report this. These are not new packages. Is there anything unique about the way you are using things?

Maybe the best workaround is for you to provide dummy packages for krb5 that are just empty. Conda could use your packages to satisfy the deps, and the conda krb5 package contents would then not get in your way. Binary compatibility would need to be maintained, though - your system krb5 would need to be binary compatible with the krb5 that we provide. There's no way around that - we can't provide the above listed packages for arbitrary site-specific krb5.

opoplawski commented 5 years ago

I explored the possibility of a dummy package, but that won't work on EL7 due to a soname bump in libcom_err from 1.15 to 1.16.

However, it may be possible that the issue is just some missing build deps. It appears that on Linux (or at least RedHat) you need the keyutils and keyutils-libs-devel packages in order for Kerberos to handle the KEYRING credentials cache type - which I what is leading to the error I'm getting. I would look for messages about:

checking for add_key in -lkeyutil
checking for keyctl_get_persistent in -lkeyutils...

in the configure output.

On Mac the default credential cache type appears to be "API", as klist shows:

Credentials cache: API:0C54E75F-63A7-44C6-8246-A14BD57B6452

So presumably there may be some kind of missing dependency there. Although I would not rule out that Apple's kerberos is heavily patched.

vgeck commented 5 years ago

Hei,

we have the same issue, our workaround is downgrading krb5 to 1.15.1, then it works!

conda remove krb5 --force -y
conda install krb5==1.15.1 --no-deps -y
Ladas commented 5 years ago

I see the same issue Unknown credential cache type while resolving ccache when running kinit on Fedora 30

I can't install conda install krb5==1.15.1 --no-deps -y because of other deps

The following packages are causing the inconsistency:

  - defaults/linux-64::pycurl==7.43.0.2=py37h1ba5d50_0
  - defaults/linux-64::curl==7.64.0=hbc83047_2
  - defaults/linux-64::anaconda==2019.03=py37_0
  - defaults/linux-64::libcurl==7.64.0=h20c2e04_2
failed

PackagesNotFoundError: The following packages are not available from current channels:

  - krb5==1.15.1

I've endup doing conda install krb5==1.14.2 -y

SpiralArray commented 4 years ago

This is a huge issue for us as we attempt to move completely from a centralized Python 2 install to a decentralized Python 3 Anaconda environment. We use pyodbc to connect to many MSSQL instances with AD credentials from RHEL 7 systems (thus, using krb5). With krb5 1.16+ unable to recognize the default system cache (KEYRING:persistent), Anaconda 3 is pretty much a no go for us.

wil commented 4 years ago

@SpiralArray when using pyodbc to connect to MSSQL, which odbc driver are you using?

I find that if I use the official Microsoft ODBC driver for Linux it will find the RHEL system libkrb5 and therefore has no problem authenticating with AD credentials (trusted authentication.)

However, you may find that if you're using FreeTDS to connect, that if your FreeTDS comes from a condo package, that it brings in the krb5 condo package and run into this issue. We have the same issue with pymssql which uses FreeTDS, and I have to workaround this issue by building our own FreeTDS conda package.

SpiralArray commented 4 years ago

@wil Thanks for that heads up. I will check and revert back.

SpiralArray commented 4 years ago

@wil - late follow-up, I know (3.5 months!), but I get the same error when using the official MSODBC driver for Linux.

wil commented 4 years ago

@SpiralArray if you run ldd on the MSODBC driver dynamic library, where is libkrb5.so.3 pointing to? Mine is pointed to the system Kerberos which works well.

ldd /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1
        linux-vdso.so.1 =>  (0x00007ffcbd4f0000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f0529108000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f0528f00000)
        libodbcinst.so.2 => /lib64/libodbcinst.so.2 (0x00007f0528cee000)
        libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f052888c000)
        libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f05285a3000)
        libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f0528356000)
        libssl.so.10 => /lib64/libssl.so.10 (0x00007f05280e4000)
        libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f0527edf000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f0527bd8000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f05278d6000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f05276c0000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f05274a4000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f05270d7000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f0529714000)
        libltdl.so.7 => /lib64/libltdl.so.7 (0x00007f0526ecd000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f0526cb7000)
        libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f0526a84000)
        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f0526880000)
        libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f0526670000)
        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f052646c000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f0526253000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f052602c000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f0525dca000)

If it is linked against the conda krb5 package, that's when it doesn't behave correctly. At least that was the issue I found, and I had to try very hard not to pull in the conda krb5 package.

SpiralArray commented 4 years ago

@wil - my ldd output is the same as yours, Now, I ran a strace on a simple pyodbc query script and noticed that the way krb5-1.17.1 for anaconda3 is configured is incorrect for RHEL 7 (well, at least ours), as these settings in /opt/anaconda3/bin/krb5-config show:

DEFCCNAME='FILE:/tmp/krb5cc_%{uid}' DEFKTNAME='FILE:/etc/krb5.keytab' DEFCKTNAME='FILE:/opt/conda/var/krb5/user/%{euid}/client.keytab'

The default credentials cache in our RHEL 7 is KEYRING:persistent:%{uid}. It's possible that with just this one change to DEFCCNAME in configure and a rebuild/reinstall of krb5, things might start working. I think I'll give a rebuild from source a shot. Stay tuned!

will commented 4 years ago

@will - my ldd is the same as yours,

It's probably not the same though since I'm usually using macos, so it's otool -l instead of lld but idk

SpiralArray commented 4 years ago

ahh, that one extra "l" in Wil got me, Thanks, fixed it.

SpiralArray commented 4 years ago

@wil -Bingo! Hope the following will help others:

By downloading 1.17.1 the source code, and running configure with just --prefix=<our anaconda3 dir>, it uses the built-in krb5-config tool pick up on the local system's default settings:

DEFCCNAME='KEYRING:persistent:%{uid}'
DEFCKTNAME='FILE:~/%{uid}.keytab'
DEFKTNAME='FILE:/etc/krb5.keytab'

After a make/make install, I am now able to successfully use pyodbc with Kerberos credentials.

@mingwandroid - even though anaconda is not really meant to be a default global environ for all users of a system, it's popularity among data scientists made it a natural fit for us as a shared platform. Unless I'm missing something, this krb5 issue affects personal-dev and shared production users alike, basically anyone using the conda initialize to setup their environment.

shubhanshu-taiger commented 3 years ago

Hi @SpiralArray thanks for the details in your last post. We are also facing same issue in our RHEL 7, PyODBC, MSSQL environment. But using your above mentioned steps, still issue is not resolved. I followed these steps.

  1. conda remove krb5 --force -y (Uninstalled krb5 from conda environment)
  2. ./configure --prefix='/usr/local/anaconda3' (anaconda3 installed at /usr/local/anaconda3)
  3. make
  4. make install

After these steps i can see updated krb5-config file but still issue is not resolved. My krb5-config (under /usr/local/anaconda3/bin/krb5-config) after above steps is still the same mainly DEFCCNAME, DEFKTNAME and DEFCKTNAME variable.

version_string="Kerberos 5 release 1.17.1"

prefix=/usr/local/anaconda3
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
CC_LINK='$(CC) $(PROG_LIBPATH) $(PROG_RPATH_FLAGS) $(CFLAGS) $(LDFLAGS)'
KDB5_DB_LIB=
LDFLAGS=''
RPATH_FLAG='-Wl,--enable-new-dtags -Wl,-rpath -Wl,'
PROG_RPATH_FLAGS='$(RPATH_FLAG)$(PROG_RPATH)'
PTHREAD_CFLAGS='-pthread'
DL_LIB='-ldl'
DEFCCNAME='FILE:/tmp/krb5cc_%{uid}'
DEFKTNAME='FILE:/etc/krb5.keytab'
DEFCKTNAME='FILE:/usr/local/anaconda3/var/krb5/user/%{euid}/client.keytab'

Please help with the issue if possible. @opoplawski

minwhoo commented 2 years ago

I was able to rebuild krb5 from source successfully with two additional steps before building:

After these steps, run make and make install.

darklord1807 commented 5 months ago

Hello @minwhoo, did it worked? I am on Mac and getting same issue.

minwhoo commented 5 months ago

Yes, but my OS was ubuntu, not macos. Not sure if the steps for building krb5 from source code is the same for macos as well.