小编Mic*_*vko的帖子

添加自签名SSL证书而不禁用权限签名的证书

我有一个使用自签名证书通过https工作的企业git服务器.本地克隆包含两个遥控器 - 指向该服务器的原点,另一个指向github.默认情况下从原点拉出失败:

$ git pull
fatal: unable to access 'https://user@code.example.com/git/fizzbuzz.git/': SSL certificate problem: self signed certificate
Run Code Online (Sandbox Code Playgroud)

github遥控器工作正常.

有两种经常建议的解决方案:

git config http.sslVerify false
Run Code Online (Sandbox Code Playgroud)

这是一个坏主意,并且在配置Git中建议接受特定https远程的特定自签名服务器证书:

git config http.sslCAInfo <downloaded certificate>.pem
Run Code Online (Sandbox Code Playgroud)

修复了从原点拉动,但打破了github远程:

$ git pull github
fatal: unable to access 'https://github.com/user/fizzbuzz.git/': SSL certificate problem: unable to get local issuer certificate
Run Code Online (Sandbox Code Playgroud)

如何在不破坏github的情况下从公司服务器上工作?

git ssl github

30
推荐指数
2
解决办法
3万
查看次数

如何在Docker容器中使用GnuPG,因为它缺少熵?

我需要对apt存储库进行docker化.其中的包需要签名,目前已完成 aptly publish snapshot -distribution="stable" -gpg-key="<key id>" my-snapshot

在此之前,需要使用创建密钥gpg --gen-key.

但是这样私有密钥将在docker镜像中创建,这似乎不是一个好习惯.此外,id甚至不起作用; 跑步gpg --gen-key --batch <gpg.in卡住了:

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 284 more bytes)
Run Code Online (Sandbox Code Playgroud)

我不知道是否甚至可以在docker容器中生成一个gpg密钥,即使它是,也可能不是一个好主意.

有没有办法通过外部密钥签署回购的内容?

gnupg entropy openpgp docker

10
推荐指数
1
解决办法
4613
查看次数

设置java.library.path进行测试

其中一个测试使用本机库:

System.loadLibrary("mylib");
Run Code Online (Sandbox Code Playgroud)

libmylib.so位于/usr/local/lib,所以我在配置VM选项中添加此目录:-Djava.library.path=/usr/local/lib

但是,当我使用Maven运行测试时,此行抛出UnsatisfiedLinkError:

没有mylibjava.library.path

在没有此选项的情况下调用Java:

/usr/lib/jvm/java-8-oracle/bin/java -Dmaven.home=/opt/idea/plugins/maven/lib/maven3 -Dclassworlds.conf=/opt/idea/plugins/maven/lib/maven3/bin/m2.conf -Didea.launcher.port=7538 -Didea.launcher.bin.path=/opt/idea/bin -Dfile.encoding=UTF-8 -classpath /opt/idea/plugins/maven/lib/maven3/boot/plexus-classworlds-2.4.jar:/opt/idea/lib/idea_rt.jar com.intellij.rt.execution.application.AppMain org.codehaus.classworlds.Launcher -Didea.version=15.0.3 test
Run Code Online (Sandbox Code Playgroud)

System.getProperty("java.library.path")捕获异常时打印/opt/idea/bin::/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib.显然,运行配置中的VM选项对maven任务没有影响.

所以我尝试在Maven的VM选项中设置库路径:设置 - >构建,执行,部署 - >构建工具 - > Maven-> Runner-> VM选项.此选项对java调用命令有影响:

/usr/lib/jvm/java-8-oracle/bin/java -Djava.library.path=/usr/local/lib -Dmaven.home=/opt/idea/plugins/maven/lib/maven3 -Dclassworlds.conf=/opt/idea/plugins/maven/lib/maven3/bin/m2.conf -Didea.launcher.port=7539 -Didea.launcher.bin.path=/opt/idea/bin -Dfile.encoding=UTF-8 -classpath /opt/idea/plugins/maven/lib/maven3/boot/plexus-classworlds-2.4.jar:/opt/idea/lib/idea_rt.jar com.intellij.rt.execution.application.AppMain org.codehaus.classworlds.Launcher -Didea.version=15.0.3 test
Run Code Online (Sandbox Code Playgroud)

但即使现在使用此选项调用Java,它仍然无法加载库,并且System.getProperty("java.library.path")仍然包含相同的内容!

如何设置java.library.path使用Maven调用的测试?

java testing java-native-interface maven

7
推荐指数
2
解决办法
1万
查看次数

在 Deoplete 中使用 Ctrl-N 手动完成

我安装了 deoplete 并且它对我有用,但是默认情况下,只要您键入内容,它就会打开一个弹出窗口。这是不可取的。我希望弹出窗口仅在我点击Ctrl+时显示N。所以我禁用自动完成:

let b:deoplete_disable_auto_complete = 1
Run Code Online (Sandbox Code Playgroud)

但这使得Ctrl+ 的N行为与 deoplete 之前一样,即使用缓冲区中的所有单词作为完成源。

我也尝试从文档中添加代码,但无济于事:

            inoremap <silent><expr> <TAB>
            \ pumvisible() ? "\<C-n>" :
            \ <SID>check_back_space() ? "\<TAB>" :
            \ deoplete#mappings#manual_complete()
            function! s:check_back_space() abort "{{{
            let col = col('.') - 1
            return !col || getline('.')[col - 1]  =~ '\s'
            endfunction"}}}
Run Code Online (Sandbox Code Playgroud)

它重新映射 Tab 键,而不是Ctrl+ N。是否可以通过按Ctrl+来显示 Deoplete 手动完成N

vim autocomplete neovim

5
推荐指数
1
解决办法
1689
查看次数

比较定长数组

编者注:这个问题是在 Rust 1.0 之前提出的,并且使用了不再有效的语法。此外,这个问题中的具体问题在 Rust 1.0 中不再出现。

有一个结构体包含唯一的字段,一个固定宽度的字节数组。有人会认为从std::cmpfor实现特征很简单,但派生不起作用:

#[deriving(Eq)]
pub struct ID {
    bytes: [u8, ..::constants::ID_SIZE]
}

src/id.rs:3:5: 3:40 error: mismatched types: expected `&&[u8]` but found `&[u8, .. 20]` ([] storage differs: expected `&` but found `20`)
src/id.rs:3     bytes: [u8, ..::constants::ID_SIZE]
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: in expansion of #[deriving]
src/id.rs:1:1: 2:4 note: expansion site
Run Code Online (Sandbox Code Playgroud)

文档表明,等式为实现&[]~[],而不是固定的宽度阵列。手动强制&[]也不起作用:

impl Eq for ID {
    fn eq(&self, other: &ID) -> bool {
        (&self.bytes).eq(&other.bytes)
    }
}

src/id.rs:7:26: 7:38 …
Run Code Online (Sandbox Code Playgroud)

arrays rust rust-obsolete

4
推荐指数
1
解决办法
4941
查看次数

无法迭代其元素包含uniq_ptr的map

以下代码无法编译:

#include <iostream>
#include <memory>
#include <map>

struct HaveUniq {
    std::unique_ptr<int> uniq;
};

void print_hus(const std::map<int, HaveUniq>& hus) {
    for (const std::pair<int, HaveUniq>& p: hus)
        std::cout << *p.second.uniq << std::endl;
}

int main() {
    std::map<int, HaveUniq> hus;
    for (int i = 0; i < 10; ++i)
        hus[i].uniq = std::unique_ptr<int>(new int(i));
    print_hus(hus);
}
Run Code Online (Sandbox Code Playgroud)

出现以下错误:

uniq_wtf.cpp: In function ‘void print_hus(const std::map<int, HaveUniq>&)’:
uniq_wtf.cpp:10:42: error: invalid initialization of reference of type 
‘const std::pair<int, HaveUniq>&’ from expression of type
‘const std::pair<const int, HaveUniq>’
for …
Run Code Online (Sandbox Code Playgroud)

c++ unique-ptr c++11

0
推荐指数
2
解决办法
964
查看次数