встановити xclip на комп'ютері з Linux без доступу до кореня?


2

Я намагаюся встановити xclip на комп’ютер Linux без кореневого доступу, я завантажив, розпакував і запустив, ./configureале отримав помилку для відсутньої бібліотеки:

./configure --prefix=/home/user/bin/xclip/
checking for gcc... /usr/bin/gcc
[...]
checking for XmuClientWindow in -lXmu... no
configure: error: *** libXmu not found ***

Як я можу подолати цю помилку та встановити xclip?

Відповіді:


1

Вам потрібна libXmuбібліотека - якщо вона вже встановлена, вам, ймовірно, не вистачає заголовків розробок ( /usr/include/X11/Xmuта інших), які багато дистрибутивів потрібно встановити окремо.

Вам доведеться скомпілювати libXmuтак само вручну, або отримати libxmu-devабо libxmu-develпакет і витягти його, скажімо, на ~/usr.

Після цього встановіть:

export CFLAGS="-I$HOME/usr/include"
export LDFLAGS="-L$HOME/usr/lib"

Вам також можуть знадобитися:

export PKG_CONFIG_PATH="$HOME/usr/lib/pkgconfig:$HOME/usr/share/pkgconfig"

Також погляньте xsel, що робить майже те саме, але вимагає менших залежностей від бібліотеки.


Примітка: --prefix ~/bin/xclipце призведе до некрасивих шляхів, таких як ~/bin/xclip/bin/xclipі ~/bin/xclip/share/man/man1/xclip.1. Щось подібне --prefix ~/usrдасть приємніші результати.

Це особливо варто зазначити при установці бібліотек; набагато простіше скласти програму, коли є всі її бібліотеки --prefix ~/usr, а не кожна має свою власну --prefix.


Здається, там є заголовки xmu: ls / usr / include / X11 / Xmu Atoms.h CloseHook.h CurUtil.h DisplayQue.h Editres.h Error.h Initer.h Misc.h StdSel.h WidgetNode.h Xct.h CharSet.h Converters.h CvtCache.h Drawing.h EditresP.h ExtAgent.h Lookup.h StdCmap.h SysUtil.h WinUtil.h Xmu.h
— 719016

Можливо, воно занадто давнє (повідомлення про помилку насправді говорить про те, що XmuClientWindowв libXmu не існує; незрозуміло, відсутній цілий libXmu чи просто цей єдиний символ).
— grawity

0

Ось мій спосіб вирішення (вимагає gvim та bash):

# My workaround for not having xsel or xclip
function get_clip() {
    file=/tmp/$USER/clipboard_contents.txt
    /bin/rm -f $file
    # Help from:  http://stackoverflow.com/a/23237529/120681
    gvim $file -T dumb --noplugin -n -es -c 'set nomore' +'normal "*P' +'wq'
    cat $file
}

Який потім може бути використаний як :

clip=$( get_clip ) 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.