FAQ
From Klamav
What is KlamAV?
- KlamAV is an anti-virus manager for KDE using ClamAV.
KlamAV Installation FAQs
How do I install The Bleeding Edge version of KlamAV from the latest CVS sources?
cd ~ mkdir klamavcvs cd klamavcvs cvs -z3 -d:pserver:anonymous@klamav.cvs.sourceforge.net:/cvsroot/klamav co -P klamav cd klamav make -f Makefile.cvs ./configure make su -c 'make install'
What are the pre-requisites for installing from the KlamAV Binary Installer or compiling from source?
- To save time, just install all 'devel' packages from your distribution.
SUSE 10.0
How do I install from the KlamAV Binary Installer on SUSE 10.0?
- by mingus on: 11/13/2005, 0:07
- Getting the install script to work in SuSE 10.0 was a real pain. I thought it might be helpful to pass along what I did to make the script work:
- 1. Install these packages with YaST:
kdelibs3-devel kdebase3-devel kdebindings3 qt3-devel-tools qt3-extensions qt3-static libjpeg-devel curl-devel km-dazuko
- 2. Create a symbolic link in /usr/lib/ named libcurl.so linked to libcurl.so.3.0.0. The install is looking for libcurl, not to be found anywhere in SuSE. So I pointed it to the newest version of libcurl, and it apparently worked.
- 3. Compile km-dazuko. Alternatively, you can run the install script and it will compile dazuko, but the script will then fail because the module is not loaded.
- 4. Do #modprobe dazuko (to load it)
- 5. Run the install script. It will run KlamAV automatically and find that the SuSE version of ClamAV is not the newest, and then offer to download and compile the newest. I declined, not wanting to risk more dependency problems.
- 6. The executable is /usr/local/kde/bin/klamav - this has to be manually added to the KDE menu
- The only problem problem I've found is that the KlamAV Virus Browser sends the query to the system default Browser rather than retrieving the page in its own window. Perhaps the libcurl workaround above is causing this??? Otherwise seems all OK.
- Good luck.
How do I compile from source code on SUSE 10.0?
- Only to help others like me ... I've successfully installed it with
./configure --enable-libsuffix=64 --prefix=/opt/kde3 --with-qt-dir=/usr/lib64/qt3/lib64 --with-qt-libraries=/usr/lib64/qt3/lib64 && make && su -c 'make install'
How do I install from unofficial packages on SUSE 10.0?
--Hawkeye 22:32, 11 December 2005 (PST)
- Even easier... There's now an update for klamav-0.32 on the Guru web site for SUSE 10.0. This RPM installs files where SUSE expects, adds an icon to K Menu, and enables the "Scan with KlamAV..." right-click action in Konqueror. If dazuko is running, it also enables the KlamAV auto-scan feature. There are also packages for SUSE 9.3 or source code if you need to run 64-bit.
- Or if you want YOU to inform you when there's a new release of klamav, just add the FTP package repository to your YaST sources.
- SUSE YaST Installation Source
- ftp://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/9.3
- ftp://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.0
- The RPM for SUSE 10.0 adds a dependency for km_dazuko, so it's added automatically when installing from YaST Package Manager (a.k.a. Software Management), but you'll still have to load it:
modprobe dazuko lsmod | grep dazuko modprobe capability lsmod | grep capability depmod -ae
- By default, dazuko does not load during startup, so here's how to get it to load every time you boot:
yast2 sysconfig
- Then select: System > Kernel > MODULES_LOADED_ON_BOOT and add the module names "dazuko capability" without quotes in this order, (use spaces for delimiters if you already have other modules listed). After boot, you can verify that it loaded with:
dmesg | grep dazuko
Ubuntu/Kubuntu Edgy Eft (6.10)
How do I install from packages on Ubuntu/Kubuntu Edgy Eft (6.10)?
- 1. Installing KlamAV - Install the klamav package and it's dependencies from the official ubuntu repositories. Also install clamav-daemon, if it is not automatically included. The following packages should then be installed:
clamav clamav-base clamav-daemon clamav-freshclam klamav libclamav1
- 2. Configuring Dazuko1 - dazuko will fail to start properly if the capability module is running first. To load the dazuko module first on startup, a couple of files must be created/modified. To create the first file, open Kate (substitute with gksudo gedit if you're running Ubuntu/Gnome) as root by issuing the following command from a terminal console:
kdesu kate /etc/modprobe.d/dazuko
- Enter your user's password, when prompted. Copy and paste the following code into the blank document and save it.
install dazuko modprobe -r capability;\ modprobe -i dazuko; \ modprobe -i capability
- While still running Kate as root, open the /etc/modules file. Add "dazuko" to the end of the list. Save and exit the file.
- 3. Ubuntu/Gnome Users ONLY: Modify/create KlamAV menu entries for Gnome and start on boot - The KlamAV package in the Ubuntu repository only creates a menu entry intended for use with KDE and so to use the entry with Gnome in Ubuntu it will need to be modified. Note that if you intend to run both Gnome and KDE, you may wish to create a new menu entry specifically for Gnome, rather than modifying the KDE entry - as the modification will, of course, break the entry if you then try to call it from KDE.
- The KDE menu entry can be modified by issuing the following command from a terminal console:
gksudo gedit /usr/share/applnk/Utilities/klamav.desktop
- Change the Exec= data on line 4 to run the process as root and remove the KDE-specific options, by adding "gksudo " (including space) before the launch command and removing the extraneous parameters.
Exec=gksudo klamav
- The modified entry should now correctly prompt you for your password when KlamAV starts under Gnome.
- Optionally, if you want KlamAV to launch automatically when Gnome starts, go to System -> Preferences -> Sessions and add KlamAV to the Startup Programs tab:
gksudo klamav
- Then, close. Similarly, for the Right-Click Menu Action "Scan with KlamAV..." to work under Gnome, a new script must be created for use with the Nautilus file manager. Create this by issuing the following command from a terminal console:
gksudo gedit ~/.gnome2/nautilus-scripts/Scan\ with\ KlamAV...
- Copy and paste the following code into the document and save it:
#!/bin/bash # Scan with KlamAV... notrailspace=$(echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | sed -e 's/^ *//' -e 's/ *$//') gksudo sh /usr/bin/ScanWithKlamAV "$notrailspace"
- Make the script executable:
sudo chmod 755 ~/.gnome2/nautilus-scripts/Scan\ with\ KlamAV...
- 4. KDE/Kubuntu Users ONLY: Run KlamAV as root - In order for it to be able to access the dazuko device, KlamAV must be run with root privileges. This can be achieved by issuing the following command from a terminal console:
kdesu kate /usr/share/applnk/Utilities/klamav.desktop
- Change the Exec= data on line 4 to run the process as root, by adding "kdesu " (including space) before the launch command.
Exec=kdesu klamav %i %m -caption "%c"
- This will then prompt you for your password when KlamAV starts. Similarly, for the KDE Right-Click Menu Action "Scan with KlamAV..." to work, this must also be launched as root. Configure this by issuing the following command from a terminal console:
kdesu kate /usr/share/apps/konqueror/servicemenus/klamav-dropdown.desktop
- Change the Exec= data on line 12 to run the process as root.
Exec=kdesu sh /usr/bin/ScanWithKlamAV %F
- Save and exit the file.
And that should be it! Reboot your machine and after Gnome/KDE has reloaded, you will need to run KlamAV Anti-Virus Manager in order to fine-tune the configuration of Auto-Updates and Auto-Scan. If you want KlamAV to act as a Windows-style virus scanner, which checks files as you download / access them, then this needs to be enabled in the Auto-Scan tab of KlamAV's configuration dialog. Before enabling it, ensure that the Scan Files When They are Created/Modified option is first checked in the Auto-Scan section of the Configure dialog (accessed by pressing the Options button). It should also be possible at this point to schedule automatic scans at various times and configure your email client to use KlamAV (see #Configuration_FAQs).
After this, KlamAV should load into your system tray on boot and monitor the directories you have configured. If the Database Auto-Update option is enabled, KlamAV will automatically update its virus definition files.
Note also that the Right-Click Menu Action "Scan with KlamAV..." only flags infected files if you are not running the Auto-Scan process. If you are running it, the on-demand scan will - of course - be stopped from accessing any virus-infected files.
1 Source: AllYourTech.com article - Installing AntiVir, with on-access scanning, in Ubuntu Linux http://allyourtech.com/content/articles/15_01_2006_installing_antivir_with_on_access_scanning_in_ubuntu_linux.php
How do I compile from source code, using the Debian Dazuko package, on Ubuntu Edgy Eft (6.10)?
- by Leonardo Graziottin on 09 March 2007, 04:45
First: Getting and installing Dazuko:
The most important requirement to enable on-access scanning is Dazuko. Dazuko was developed to provide antivirus programs with real-time (on-access) scanning functionality. The Ubuntu repositories always have an old version. The easiest way to install the dazuko module is following these steps:
-Getting Dazuko. Find the latest version of dazuko for debian on http://www.dazuko.org/files/. After that, follow these steps to install the dazuko module.
wget http://dazuko.org/files/dazuko-source_X.x.x-x_all.deb
(where, obviously, the mean the latest release).
sudo apt-get install module-assistant debhelper j2re1.4
-install Dazuko by running the following command:
sudo dpkg -i dazuko-source_X.x.x-x_all.deb
-Installing the package does not insert it into the kernel as a module. To insert Dazuko module into the kernel follow these steps:
sudo module-assistant prepare
-The version of gcc that gets installed is 4.0. The Dazuko installation will fail unless you install gcc 3.4. To do this, issue the following command:
sudo apt-get install gcc-3.4
-The system is now ready to insert the Dazuko module. Run the following command to insert the Dazuko module:
sudo m-a a-i dazuko
-Dazuko will fail to start properly if the module named "capability" is running first. To avoid this, a couple of files must be created/modified. To create the first file, open gedit as root by issuing the following Terminal command:
sudo gedit /etc/modprobe.d/dazuko
-Copy and paste the following code into the blank document and save it.
install dazuko modprobe -r capability;\ modprobe -i dazuko; \ modprobe -i capability
-While still running gedit as root, open the modules file, located in /etc directory. Add the word dazuko to the end of the list. Save the file. To get Dazuko loaded, without having to reboot, issue the following Terminal commands
sudo rmmod capability sudo modprobe dazuko sudo modprobe capability
-Ok, now you have a /dev/dazuko device in your sistem. But only the root group has access to it. To allow others groups access (this will be necessary to run Klamav as non-root user) do the following (as root):
chmod 666 /dev/dazuko
-Running as root, create a file in /etc/init.d (in my case, I called it "dazuko-rw")
gedit /etc/init.d/dazuko-rw
-Copy and paste the following lines into the new file and save it.
#!/sbin/sh - dazuko's device access rights chmod 666 /dev/dazuko
-Give execution rights to this file
chmod 777 /etc/init.d/dazuko-rw
-Finally, use the follow comand while in /etc/init.d directory (as root):
update-rc.d dazuko-rw defaults 99
Second: Install Clamav. I suggest you install the packages listed below using synaptic.
clamav clamav-base clamav-daemon clamav-freshclam libclamav1
As the packages in the Ubuntu repositories are always old, on the first execution of freshclam a warning will ask you to upgrade to the latest stable version (at time of writing, version 0.90.1). Do this by downloading the source code archive from the clamav site (www.clamav.net) . Save it and decompress the package using "tar xvzf clamav-0.xx.x". Go to the clamav-0.xx.xx directory created and follow the Install instructions (./configure, make, make install) as usual.
Third: Installing klamav on gnome.
Before you compile the klamav source, you should have some devel packages installed in your system. Use copy/paste to turn the lines below into a script.
#!sh download necessary packages for klamav apt-get install libdmx-dev -y apt-get install libexpat1-dev -y apt-get install libfontconfig1-dev -y apt-get install libfontenc-dev -y apt-get install libfreetype6-dev -y apt-get install libfs-dev -y apt-get install libgl1-mesa-dev -y apt-get install libglu1-mesa-dev -y apt-get install libglu1-xorg-dev -y apt-get install libice-dev -y apt-get install libsm-dev -y apt-get install libx11-dev -y apt-get install libxau-dev -y apt-get install libxaw-headers -y apt-get install libxaw7-dev -y apt-get install libxcomposite-dev -y apt-get install libxcursor-dev -y apt-get install libxdamage-dev -y apt-get install libxdmcp-dev -y apt-get install libxevie-dev -y apt-get install libxext-dev -y apt-get install libxfixes-dev -y apt-get install libxfont-dev -y apt-get install libxft-dev -y apt-get install libxi-dev -y apt-get install libxkbfile-dev -y apt-get install libxkbui-dev -y apt-get install libxmu-dev -y apt-get install libxmu-headers -y apt-get install libxmuu-dev -y apt-get install libxpm-dev -y apt-get install libxrandr-dev -y apt-get install libxrender-dev -y apt-get install libxres-dev -y apt-get install libxss-dev -y apt-get install libxt-dev -y apt-get install libxtrap-dev -y apt-get install libxtst-dev -y apt-get install libxv-dev -y apt-get install libxvmc-dev -y apt-get install libxxf86dga-dev -y apt-get install libxxf86misc-dev -y apt-get install libxxf86vm-dev -y apt-get install mesa-common-dev -y apt-get install x11proto-bigreqs-dev -y apt-get install x11proto-composite-dev -y apt-get install x11proto-core-dev -y apt-get install x11proto-damage-dev -y apt-get install x11proto-dmx-dev -y apt-get install x11proto-evie-dev -y apt-get install x11proto-fixes-dev -y apt-get install x11proto-fontcache-dev -y apt-get install x11proto-fonts-dev -y apt-get install x11proto-gl-dev -y apt-get install x11proto-input-dev -y apt-get install x11proto-kb-dev -y apt-get install x11proto-randr-dev -y apt-get install x11proto-record-dev -y apt-get install x11proto-render-dev -y apt-get install x11proto-resource-dev -y apt-get install x11proto-scrnsaver-dev -y apt-get install x11proto-trap-dev -y apt-get install x11proto-video-dev -y apt-get install x11proto-xcmisc-dev -y apt-get install x11proto-xext-dev -y apt-get install x11proto-xf86bigfont-dev -y apt-get install x11proto-xf86dga-dev -y apt-get install x11proto-xf86dri-dev -y apt-get install x11proto-xf86misc-dev -y apt-get install x11proto-xf86vidmode-dev -y apt-get install x11proto-xinerama-dev -y apt-get install xorg-dev -y apt-get install xserver-xorg-dev -y apt-get install xtrans-dev -y apt-get install libaudio-dev -y apt-get install liblcms1-dev -y apt-get install libmng-dev -y apt-get install libqt3-compat-headers -y apt-get install libqt3-headers -y apt-get install libqt3-mt-dev -y apt-get install qt3-dev-tools -y apt-get install comerr-dev -y apt-get install kdebase-dev -y apt-get install kdelibs4-dev -y apt-get install kdeprint -y apt-get install kdesdk-scripts -y apt-get install libacl1-dev -y apt-get install libart-2.0-dev -y apt-get install libarts1-dev -y apt-get install libartsc0-dev -y apt-get install libasound2-dev -y apt-get install libaspell-dev -y apt-get install libattr1-dev -y apt-get install libaudiofile-dev -y apt-get install libavahi-client-dev -y apt-get install libavahi-common-dev -y apt-get install libavahi-compat-libdnssd1 -y apt-get install libavahi-qt3-dev -y apt-get install libbz2-dev -y apt-get install libdbus-1-dev -y apt-get install libesd0-dev -y apt-get install libidn11-dev -y apt-get install libjasper-1.701-dev -y apt-get install libkadm55 -y apt-get install libkrb5-dev -y apt-get install liblua50-dev -y apt-get install liblualib50-dev -y apt-get install libnss-mdns -y apt-get install libogg-dev -y apt-get install libopenexr-dev -y apt-get install libpcre3-dev -y apt-get install libpcrecpp0 -y apt-get install libsasl2-dev -y apt-get install libvorbis-dev -y apt-get install libxml2-dev -y apt-get install libxslt1-dev -y apt-get install psutils -y
Now you are ready to download version 0.41 of klamav from the klamav site "www.klamav.net". Get the source code ".tar.gz", unpack it (tar xvzf klamav-0.41-source.tar.gz) and go to the klamav-0.41-source directory. There are two subdirectories in there. One is the dazuko source, that is no longer needed. So, go to the klamav-0.41 directory and you can install klamav in the usual way:
./configure && make && su -c 'make install'
And that's it.
Now you can create a launcher on the desktop and/or menus with these properties:
Icon: /usr/share/icons/hicolor/48x48/apps/klamav.png Name: Klamav Description: Anti-Virus Manager Launcher: klamav Commentary: An Anti-Virus Manager
How do I fix the compilation error "no KDE headers installed"?
- If you get this error message:
checking for KDE... configure: error: in the prefix, you've chosen, are no KDE headers installed. This will fail. So, check this please and use another prefix!
- then you need to install the kde-devel package for your distribution.
How do I fix the compilation error "Qt (>= Qt 3.3 and < 4.0) (headers and libraries) not found"?
- If you get this error message:
* configure: error: Qt (>= Qt 3.3 and < 4.0) (headers and libraries) not found. Please check your installation! * For more details about this problem, look at the end of config.log. ***** Return value 1
- You need to install the 3.x version of qt-devel qt-lib (name depends on your distro) packages for your system.
How do I fix the compilation error "cannot compute sizeof (int), 77."?
- When running configure, if it stops and says "configure: error: cannot compute sizeof (int), 77." this usually indicates clamav is has been installed but your installation is having difficulty finding it's libraries. To remedy it, try the following commands:
ldconfig
- If this doesn't fix it:
cat /etc/ld.so.conf locate libclamav
- Ensure the location of libclamav revealed by 'locate libclamav' is included in the contents of the file revealed by 'cat /etc/ld.so.conf'. If you don't have a file called ld.so.conf, do
locate ld.so.conf
- to find out where it is.
- If 'locate' returns an error message run:
updatedb &
- to create the 'locate' database.
Dazuko Installation FAQs
How do I fix the error "Unknown symbol in module" when installing the Dazuko module?
- try:
/sbin/depmod -ae
- and/or
modprobe commoncap
- and then try 'modprobe dazuko' or 'insmod /lib/modules/X.X.XX/dazuko.*o'
- For SUSE the easier solution is often just to install their dazuko package via yast and deselect dazuko at installation time of Klamav.
How do I fix a compilation error which refers to RSBAC?
rsbac support = yes
stacking support = yes
local __d_path() = yes (WARNING: dangerous for SMP kernels, see README.linux26)
module debug = no
library 1.x compatibility = yes
Note: For RSBAC you should copy the contents of this directory to:
/lib/modules/2.6.12-12mdksmp/build/rsbac/adf/daz
and recompile the kernel. Also make sure that the DAZ module
has been enabled in the kernel configuration.
- If you're getting this error, see [Dazuko Support Page]
How do I fix the compilation error "capabilities are built-in to the kernel"?
checking if security module support is enabled... yes
verifying capabilities are not built-in... built-in :(
error: capabilities are built-in to the kernel:
you will need to recompile a kernel with capabilities
as a kernel module
***** Return value 1
- If you're getting this error, see [Dazuko FAQ]
How do I fix the error "insmod - -1 Invalid parameters" when installing the Dazuko module?
This is related to the capabilities module. You need to do:
rmmod capability
then try compiling again. When finished do:
modprobe capability
For more info see: http://forums.suselinuxsupport.de/index.php?act=Print&client=printer&f=47&t=15340
For other dazuko issues see [Dazuko FAQ]
Configuration FAQs
How do I configure my generic email client to filter mail and catch viruses in incoming email with KlamAV?
- Your email client needs a filter/rule - with the highest priority - to pipe ALL email messages through the klammail program which is installed with KlamAV. This will return the message to the email client with a few new email headers. If a virus is found, this will be noted in the new headers:
X-Virus-Status: Yes X-Virus-Checker: Scanned by KlamAV 0.37 on linux (virus-found Eicar-Test-Signature); Mon, 19 Jun 2006 11:57:52 -0400
- Create a second rule, to be run immediately after the first which either deletes or quarantines any mails with the text "virus-found" in the X-Virus-Checker header.
This technique works with KMail but may not be supported by other email clients, e.g. Novell Evolution 2.8.1.
Note: This technique is for filtering incoming email only.
How do I configure my Novell Evolution 2.8.1 email client to filter mail and catch viruses in incoming email with KlamAV?
As discussed in the klamav-users mailing list thread Evolution & KlamAV and the evolution-list thread Evolution & KlamAV, it appears that Novell's Evolution does not, as of version 2.8.1, correctly handle the filtered email returned by klammail.
As a workaround, Tom Krishan has suggested creating a single clamscan (installed as part of ClamAV, the non-graphical engine that KlamAV is built on) rule instead of a klammail filter.
- From within Evolution, add a new highest-priority Message Filter with a criteria to scan all messages using the "Pipe to Program" command with:
"clamscan --max-ratio=1000 --quiet -"
- If a 1 is returned, this indicates a virus has been found in the mail and the action should be to delete or quarantine the mail as per your preference. Evolution's message filters also offer actions to alert the user, such as changing the colour of the message, beeping or playing a custom sound file.
Alternatively, Chapeaurouge has posted a blog entry, Evolution + ClamAV, which describes a custom script based on clamscan that can be used to alert the user with a dialog as well as quarantine or delete the infected email message.
Note: These techniques are for filtering incoming email only.
How do I stop KlamAV quarantining the whole mail folder in my Thunderbird email client when it discovers a virus in a single email?
- The mail folders are stored as individual files in the file system - that is why the entire 'mail folder' is being quarantined. You should exclude the whole of your .thunderbird profile directory from the Auto-Scan process or configure Auto-Scan to only Display Warnings and not quarantine all infected files. See FAQ above for generic instructions on the preferred way to configure an email client to filter viruses in incoming mail without using the Auto-Scan process.
Troubleshooting FAQs
Since configuring KlamAV to Auto-Scan my whole system, why does my computer hang and/or suffer from slow performance?
- If you configure KlamAV to scan the whole filesystem, i.e. /, every single file that is accessed will be scanned, including all system files. If performance is an issue it may be prudent to restrict the real-time protection of the Auto-Scan function to your home directory and any other directories your user has access to - including those emails, user files and temporary directories that are at greatest risk of infection during general use. KlamAV can then be scheduled to regularly scan the complete filesystem at a convenient time.
Why does KlamAV keep marking an archive as infected with "Oversized.Zip" even though other virus scanners haven't picked it up?
- KlamAV marks a file with this infection, if the ArchiveMaxCompressionRatio limit is exceeded. This ratio can be increased in the Options dialog's Archive Limits section, found from the Scan tab. An "Oversized.Zip" warning is an indicator that KlamAV has determined the compression ratio of the archive is higher than the pre-configured limit which could therefore be indicative of a potential logic bomb. This warning can also trigger on legitimate archives if the file(s) within them are objects which can be compressed significantly, such as BMP or plain text files.
How do I debug the KlamAV Auto-Scan process on my system?2
- Stop all ClamAV / KlamAV processes, then create a file with the following contents:
TCPSocket 9888 Foreground LogFile /dev/stdout ScanArchive FixStaleSocket SelfCheck 1800 DatabaseDirectory /home/$USER/.klamav/database ClamukoScanOnLine ClamukoIncludePath /home ClamukoExcludePath /home/$USER/.klamav/quarantine ClamukoScanOnExec ClamukoScanOnOpen ClamukoScanOnClose ClamukoMaxFileSize 1M
- Then do:
clamd -c /file/you/created/above
- Let it run for a while and see if it 'terminates unexpectedly'.
- If that seems to run stably, then try the same but this time with the following contents in the file:
TCPSocket 9888 Foreground LogFile /dev/stdout ScanArchive FixStaleSocket SelfCheck 1800 DatabaseDirectory /home/$USER/.klamav/database ClamukoScanOnLine ClamukoIncludePath /home ClamukoExcludePath /home/$USER/.klamav/quarantine ClamukoScanOnExec ClamukoScanOnCloseModified ClamukoMaxFileSize 1M
- and the command:
klamd - c /file/you/created/above.
- Post the results, with a description of your system and the problems you're experiencing, to the klamav-users mailing list.
2 Source: klamav-users post:
2006-10-20 19:16 - Re: Autoscan process dies unexpectedly http://sourceforge.net/mailarchive/message.php?msg_id=37123613
How do I stop the Auto-Scan process crashing KlamAV when "Save Session" is selected from the K Menu?
- Exclude the /home/<your username>/.kde/share/config/session/ directory from the Auto-Scan process within the KlamAV options.
When I used to update Klamav's Antivirus database under Root's Kde Session I received the following message:
"Can't Change Directory"
What's it's the solution?

