Главная » Error » How to Fix ‘No such File or Directory’ Error in SCP?

How to Fix ‘No such File or Directory’ Error in SCP?

What Causes the “No Such File or Directory” Error in SCP?

After receiving numerous reports from multiple users, we decided to investigate the issue and devised a set of solutions to fix it completely. Also, we looked into the reasons due to which it is triggered and listed them as follows.

  • Incorrect Command: In some cases, the command that is being used by the user to copy the file might not be correct. You must modify the copy command to fit the current situation in which you are copying. The commands for copying files and a whole directory are different. Also, the command to copy between two computers with different configurations is changed as per the requirements.
  • Port Number: It is also possible that the port number for copying files between computers hasn’t been specified. The correct port must be forwarded before trying to copy files between two hosts.
  • Incorrect Login: If you are currently logged into the server and are trying to copy the files to a desktop, you might experience this error because the server tries to find the local path within the server. This can be prevented by logging out of the server path.
  • File Permissions: In some cases, the permissions of the files that are to be copied might be limited to “Read-Only”. This can prevent the server from accessing the files and from being able to copy them. It is important the Read and Write permissions are provided for the files.

Now that you have a basic understanding of the nature of the problem, we will move on towards the solutions. Make sure to implement these in the specific order in which they are presented to avoid conflict.

Solution 1: Using Correct Commands

You must use the correct command depending upon the configuration of hosts between which you want to transfer the files. For this, we will be listing some of the commands that can be used to transfer files between different host configurations.

To Copy From Local Host to Remote Host

The Localhost is the actual computer to which you have physical access. The Remote Host is the one to which the user doesn’t have any physical access and it is located in a distant server. To transfer files from a Localhost to a Remote Host, you have to use the following command configurations.

$ scp “the_file” your_username@the_remote_host:the/path/to/the/directory

An example to copy a text file named “Alexa.txt” will be as follows.

$ scp Alexa.txt your_username@remotehost.edu:/some/remote/directory

In the same way, you can copy a wholedirectory in the following way

$ scp -r “the_directory_to_copy” your_username@the_remote_host:the/path/to/the/directory/to/copy/to

An example to copy a directory named “Alexa” would be as follows.

$ scp -r foo your_username@remotehost.edu:/some/remote/directory/bar

Как исправить ошибку?

1. Библиотека не установлена

Первый вариант, тут все понятно, библиотеки просто нет в системе, поэтому мы и получаем такую ошибку. Верный способ ее решения – просто найти пакет библиотеки с помощью пакетного менеджера и установить ее. Обычно, пакеты с библиотеками называются так же, как и сами библиотеки с префиксом lib.

Например, если нам не хватает библиотеки libfuse2.so, то мы можем найти ее в Ubuntu такой командой:

sudo apt search libfuse2

Затем осталось только установить ее:

sudo apt install libfuse2

Если перед вами стоит задача собрать программу из исходников, то вам понадобится не только установить саму библиотеку, но и заголовочные файлы для нее:

sudo apt install libfuse-dev

И так для любой библиотеки. Но это не всегда помогает.

2. Библиотека находится не в том каталоге

Бывает что библиотека установлена, мы установили ее или она поставлялась вместе с программой, но ошибка как была, так и есть. Причиной этому может быть то, что загрузчик Linux не может найти библиотеку.

Поиск библиотек выполняется по всех папках, которые указаны в конфигурационных файлах /etc/ld.conf.d/. По умолчанию, это такие каталоги, как /usr/lib, /lib, /usr/lib64, /lib64. Если библиотека установлена в другой каталог, то, возможно, это и есть причина проблемы.

Вы можете посмотреть какие библиотеки сейчас доступны загрузчику с помощью команды:

ldconfig -p

Найти, где находится ваша библиотека можно с помощью команды locate. Например, нас интересует библиотека librtfreader.so:

 locate librtfreader

Теперь мы знаем, что она находится по адресу /opt/kingsoft/wps-office/office6/. А значит, для работы программы необходимо сделать чтобы загрузчик библиотек ее видел. Для этого можно добавить путь в один из файлов /etc/ld.so.conf.d/ или же в переменную LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=/opt/kingsoft/wps-office/office6/

Опять же, так вы можете поставить с любой библиотекой, которая взывает ошибку. Еще один более простой метод – это просто создать символическую ссылку на нужную библиотеку в правильной папке:

ln -s /opt/kingsoft/wps-office/office6/librtfreader.so /usr/lib/librtfreader.so

Источники

  • https://appuals.com/how-to-fix-no-such-file-or-directory-error-in-scp/
  • https://losst.ru/oshibka-error-while-loading-shared-libraries
[свернуть]
Решите Вашу проблему!


×
Adblock
detector